Hello दोस्तों ! इस Post में आपको semaphore के बारें में बताया जायेगा तथा यह क्या और क्यों होती है इसके बारें में भी बात करेगे, तो चलिए शुरू करते है:-
Semaphores का प्रयोग threads या processes को किसी एक resource को access करने से रोकने के लिए किया जाता है।
दुसरें शब्दों में कहें तो, “इसका प्रयोग critical section की परेशानी को solve करने तथा process synchronization को solve करने के लिए किया जाता है।”
इसका प्रयोग multi-processing वातावरण में प्रोसेस synchronization को प्राप्त करने के लिए भी किया जाता है।
Multi-programming में, यदि बहुत सारी processes एक common resource का प्रयोग कर रही है तो उन्हें इस प्रकार उस resource को access करने की जरुरत होती है जिससे कि वे processes एक दूसरे को disturb या interfere ना करें. तो इस disturbance और interfere को रोकने के लिए semaphore का प्रयोग किया जाता है।
Semaphore का प्रयोग ज्यादातर दो उद्देश्यों के लिए किया जाता है।
Semaphores में दो operations डिफाइन होते है:- Wait तथा Signal.
critical section में entry को wait operation द्वारा control किया जाता है तथा critical section से exit को signal operation द्वारा हैंडल किया जाता है।
wait तथा signal ऑपरेशनों को P तथा V operation भी कहते है।
semaphores (S) की कार्यविधि इस प्रकार होती है:-
करना पड़ेगा।
इस operations को नीचे define किया गया है:-
P(S) or wait(S):
If S > 0 then
Set S to S-1
Else
Block the calling process (i.e. Wait on S)
V(S) or signal(S):
If any processes are waiting on S
Start one of these processes
Else
Set S to S+1
तो हम कह सकते है कि semaphore एक तकनीक है जो कि processes के मध्य mutual exclusion को सुनिश्चित करती है।
C programming language में interfaces या functions का समूह होता है जो कि semaphores को manage करता है।
What is Semaphores?
Operating System के semaphore को आप simple तौर पर एक variable के रूप में use कर सकते हैं। इस variable का प्रयोग critical section problem को हल करने के लिए किया जाता है।Semaphores का प्रयोग threads या processes को किसी एक resource को access करने से रोकने के लिए किया जाता है।
दुसरें शब्दों में कहें तो, “इसका प्रयोग critical section की परेशानी को solve करने तथा process synchronization को solve करने के लिए किया जाता है।”
इसका प्रयोग multi-processing वातावरण में प्रोसेस synchronization को प्राप्त करने के लिए भी किया जाता है।
Multi-programming में, यदि बहुत सारी processes एक common resource का प्रयोग कर रही है तो उन्हें इस प्रकार उस resource को access करने की जरुरत होती है जिससे कि वे processes एक दूसरे को disturb या interfere ना करें. तो इस disturbance और interfere को रोकने के लिए semaphore का प्रयोग किया जाता है।
Semaphore का प्रयोग ज्यादातर दो उद्देश्यों के लिए किया जाता है।
- पहला, एक ही memory space को share करने के लिए।
- दूसरा, फाइलों के access को share करने के लिए।
- Counting semaphore
- Binary semaphore
Semaphores में दो operations डिफाइन होते है:- Wait तथा Signal.
critical section में entry को wait operation द्वारा control किया जाता है तथा critical section से exit को signal operation द्वारा हैंडल किया जाता है।
wait तथा signal ऑपरेशनों को P तथा V operation भी कहते है।
semaphores (S) की कार्यविधि इस प्रकार होती है:-
1. Wait P(S)
कमांड जो है वह semaphore की value को 1 से घटा देती है. यदि फिर उसकी वैल्यू नकारात्मक आती है तो P ऑपरेशन को तब तक wait करना पड़ता है जब तक कि condition satisfy नहीं हो जाती है।2. Signal V(S)
कमांड जो है वह semaphore की value में 1 जोड़ देती है। Semaphores में mutual exclusion जो है वह वह P(S) तथा V(S) के अन्दर ही लागू होता है. यदि बहुत सारें process एक साथ P(S) को access करने की कोशिश करेंगे तो केवल एक process को ही allow किया जायेगा जबकि अन्य processes को waitकरना पड़ेगा।
इस operations को नीचे define किया गया है:-
P(S) or wait(S):
If S > 0 then
Set S to S-1
Else
Block the calling process (i.e. Wait on S)
V(S) or signal(S):
If any processes are waiting on S
Start one of these processes
Else
Set S to S+1
तो हम कह सकते है कि semaphore एक तकनीक है जो कि processes के मध्य mutual exclusion को सुनिश्चित करती है।
C programming language में interfaces या functions का समूह होता है जो कि semaphores को manage करता है।