आज हम computer course in hindi मे हम semaphore in os in hindi के बारे में जानकारी देते क्या होती है तो चलिए शुरु करते हैं-
semaphore in os in hindi:-
semaphore in os यहाँ अभी - अभी हमने पहले वाले artical में mutual exclusion के प्रोब्लम के लिए जिस algorithm मतलब solution की बात कि वह mutual exclusion के सभी problems को solve नहीं कर पाता है यह एक Dutch Mathematician , जिनका नाम Dekker था , ने सबसे पहले mutual exclusion प्रोब्लम को हल किया। लेकिन algorithm केवल दो ही प्रोसेसेस पर कार्य करता है तथा इसे दो से अधिक प्रोसेस पर लागू नहीं किया जा सकता है । Semaphore जो एक cynchronization tool है , जिसे Dijkstra नाम के वैज्ञानिक के द्वारा develope किया गया है और mutual exclusion प्रोबलम को solve करने के लिए कई ऑपरेटिंग सिस्टम में system call या built - in functions के रूप में implement किया गया है । यह सेमोफोर ( Semaphore ) एक integer वैरिएबल है जिसे S से सूचित किया जाता है । अत : S केवल non - negative intejer value को accept करता है तथा इसे दो primitive operations - wait और signal के द्वारा access तथा manipulate किया जा सकता है और ये दोनों ही primitives Semaphore वैरिएबल के रूप में argument accept करते हैं । इनके classical definition को pseudocode में इस तरह define किया जा सकता हैं-
1. pseudocode में wait का classic definition:-
wait ( S )
{
while ( S < O )
; // no - operation
S- -
}
2. Pseudocode में signal का classical definition :-
signal ( s )
{
S ++ ;
}
wait और signal operations में semaphore के integer value में modification अलग - अलग होना चाहिए और जब कोई प्रोसेस semaphore की वैल्यू को modify करता है , तो कोई भी दूसरा प्रोसेस उसी semaphore की value को उसी समय मतलब एक साथ modify नहीं कर सकता है और इसके wait ( S ) की स्थिति में S ( S < = 0 ) के integer value की जांच तथा इसके modification ( S -- ) भी बिना किसी intrruption के execute होने चाहिए और semaphores की functioning को समझने के लिए इस algorithm पर करते है।
3. Readers Writers Problem :-
इसमें फाइल या रिकॉर्ड एक से अधिक concurrent processes द्वारा share किया जा सकता है और जहाँ कुछ प्रोसेसेस shared object पर read operation कर सकते हैं वहीं कुछ write operation ।
वे प्रोसेसेस जो shared object पर रीड ऑपरेशन करते हैं और readers कहे जाते हैं तथा वे प्रोसेस जो shared object पर राइट ऑपरेशन करते हैं , writers कहे जाते हैं । यदि किसी shared object पर readers और writers एक साथ access करते हैं को कुछ समस्याएँ हो सकती हैं और इसी समस्या को Readers / Writers Problem कहा जाता है । Readers / Writers Problem के कई variation हैं । इनमें साधारण First Readers / Writers Problem है ।
First Readers / Writers problem में कोई भी reader तब तक wait नहीं करता है , जब तक किसी writer को shared object को use करने की permission नहीं दी जाती है।
Second Readers / Writers Problem में यदि कोई writer shared object को access करने के लिए wait करता रहता है , तो कोई भी नया reader ऑब्जेक्ट पर read ऑपरेशन start नहीं कर सकता है ।
इन दोनों में किसी भी समस्या का starvation हो सकता है । जहाँ
First Readers / Writers Problem को solve करने में writers starve कर सकते हैं , वहीं Second Readers / Writers Problem को solve करने में veaders , starve कर सकते हैं । starvation वह स्थिति है जिसमें प्रोसेसेस सेमाफोर ( semaphore ) के अन्दर indifinite time तक execution के लिए wait करते हैं । starvation को indefinite blocking भी कहते हैं ।
structure of a writer process :-
wait ( wrt ) ;
.........................
.........................
writing is being performed
........................
........................
........................
........................
signal ( wrt ) ;
........................
structure of a reader process:-
wait ( mutex ) ;
readerscount ++ ;
if ( readerscount == 1 )
wait ( wrt ) :
signal ( mutex ) ;
.......................
.......................
reading is being performed
.......................
.......................
wait ( mutex ) ;
readerscount - - ;
if ( readerscount == 0 )
signal ( wrt ) ;
signal ( mutex ) ;
टिप्पणियाँ
एक टिप्पणी भेजें