Inter-Process Communication
Inter-process Communication Operating System द्वारा Provide किया जाने वाला Mechanism है जो Process को एक-दूसरे के साथ Communicate करने के लिए Allow करते है | इस Communication में Multiple Process Involve होती है जो अन्य Process को बताती है कि कौन-सा Event Occurs हुआ है, या Data को एक Process से दूसरी Process में Transfer करना है |
“Inter-process Communication का Use एक या अधिक Process (Program) में कई Thread के बीच Information को Exchange करने के लिए किया जाता है |”
Synchronization in Inter-process Communication
Synchronization Inter-process का एक Important Part है | यह Inter-process Control Mechanism द्वारा Provide किया जाता है एवं Communicating Process द्वारा Control किया जाता है | Synchronization Provide करने के लिए निम्न Method का प्रयोग किया जाता है –
Semaphore
Semaphore एक Variable है, जो कई Process द्वारा Common Resource के Access को Control करता है | Semaphore दो प्रकार के होते है –
(i) Binary Semaphores
(ii) Counting Semaphores
Mutual Exclusion
Mutual Exclusion के अनुसार एक Time में केवल एक Process Thread Critical Section में Enter कर सकता है | यह Synchronization के लिए Useful है तथा यह Race Condition को Prevent करता है |
Barrier
Barrier एक Individual Process को तब तक आगे बढ़ने की अनुमति नहीं देता है जब अन्य Process अपना Execution Complete नहीं कर लेते है | कई Parallel Language और Collective Routine Barrier को Impose करती है |
Spinlock
यह एक प्रकार का Lock है | Lock Available है या नहीं, Check करते समय इस Lock को प्राप्त करने की कोशिश करने वाली Process Loop में Wait करती है | इसे Busy Waiting भी कहते है, क्योंकि Active होने के बावजूद कोई Useful Operation नहीं कर रही है |
Approaches to inter-process Communication
Inter-process Communication को Implement करने लिए निम्नलिखित Approach का Use किया जाता है –
Pipe
Pipe एक Data Channel है जो Unidirectional होता है | दो Process के बीच Two Ways Data Channel बनाने के लिए Two Pipe का Use किया जाता है | यह Standard I/O Method का उपयोग करता है | सभी POSIX System के साथ-साथ Windows Operating में भी Pipe का उपयोग किया जाता है |
Socket
Socket, Data को Send तथा Receive करने का Endpoint है | अधिकांश Operating System Inter-process Communication के लिए Socket का उपयोग करते है |
File
File एक Data Record है जिसे Disk पर Store किया जा सकता है या File Server से Demand पर Acquire किया जा सकता है | एक से अधिक Process आवश्यकतानुसार एक File को Access कर सकते है | सभी Operating System Data Storage के लिए File का उपयोग करते है |
Signal
Signal Limited Way में Inter-process Communication के उपयोगी है | ये वे System Message है जो एक Process से दूसरे Process को भेजे जाते है | आमतौर पर Signal Data Transfer के लिए नहीं किया जाता है बल्कि Processes के बीच Remote Command के लिए Use किया जाता है |
Shared Memory
Shared Memory वह Memory है जिसे एक साथ कई Process द्वारा Access किया जा सकता है | ऐसा इसलिए किया जाता है ताकि Process आपस में एक-दूसरे से Communicate कर सके | सभी POSIX System के साथ-साथ Windows Operating में भी Shared Memory का उपयोग किया जाता है |
Message Queue
Multiple Process एक दूसरे से जुड़े बिना Message Queue में Data Read व Write कर सकती है | Message को Queue में तब तक Store किया जाता है जब तक उसका Receiver उसको Retrieve न कर ले | Message Queue Inter-process Communication के लिए महत्वपूर्ण है एवं इनका उपयोग अधिकांश Operating System द्वारा किया जाता है |
Approaches to Inter-process Communication