पारस्परिक बहिष्करण के लिए सेमाफोर सभी सेमाफोर की एक उप-श्रेणी है। उनका उपयोग किसी संसाधन तक पहुंच को अवरुद्ध करने के लिए किया जाता है, आमतौर पर। … सभी प्रक्रियाएं शुरू करें और सेमाफोर को एक बार संकेत दें। प्रतीक्षा प्रक्रियाओं में से एक को जाना होगा; तो यह सेमाफोर को संकेत देगा, और प्रतीक्षा करने वाली दूसरी प्रक्रिया चली जाएगी; आदि
सेमाफोर आपसी बहिष्करण को कैसे लागू करता है?
एक लिंक्ड सूची जैसे संसाधन के उपयोग के लिए पारस्परिक बहिष्करण प्रदान करने के लिए, प्रक्रियाएं एक एकल सेमाफोर बनाती हैं जिसकी प्रारंभिक गणना 1 होती है। साझा संसाधन तक पहुँचने से पहले, एक प्रक्रिया कॉल सेमाफोर पर प्रतीक्षा करती है, और इसके पूरा होने के बाद सिग्नल को कॉल करती है।
सेमाफोर का उपयोग कैसे किया जाता है जब 2 प्रक्रियाओं को पारस्परिक बहिष्करण की आवश्यकता होती है?
दो प्रक्रियाएं एक बाइनरी सेमाफोर का उपयोग करके आपसी बहिष्करण को लागू कर सकती हैं। क्रिटिकल सेक्शन को P(S) और V(S) द्वारा ब्रैकेट किया गया है। P(S) एंट्री या ओपनिंग ब्रैकेट है; वी (एस) निकास या समापन ब्रैकेट है। बाइनरी सेमाफोर वाली दो प्रक्रियाओं के लिए: यदि S=1 है, तो कोई भी प्रक्रिया अपने महत्वपूर्ण खंड को निष्पादित नहीं कर रही है।
क्या बाइनरी सेमाफोर आपसी बहिष्करण प्रदान कर सकता है?
हालांकि, बाइनरी सेमाफोर सख्ती से आपसी बहिष्करण प्रदान करता है। यहां, क्रिटिकल सेक्शन में 1 से अधिक स्लॉट उपलब्ध होने के बजाय, हमारे पास क्रिटिकल सेक्शन में अधिकतम 1 प्रक्रिया ही हो सकती है। सेमाफोर में केवल दो मान हो सकते हैं, 0 या 1. आइए प्रोग्रामिंग देखेंबाइनरी सेमाफोर का कार्यान्वयन।
सेमाफोर का उपयोग करने का उद्देश्य क्या है?
एक सेमाफोर एक पूर्णांक चर है, जिसे कई प्रक्रियाओं के बीच साझा किया जाता है। एक सेमाफोर का उपयोग करने का मुख्य उद्देश्य प्रक्रिया सिंक्रनाइज़ेशन और समवर्ती वातावरण में एक सामान्य संसाधन के लिए अभिगम नियंत्रण है। सेमाफोर का प्रारंभिक मान समस्या पर निर्भर करता है।