विषय-सूचि
बैंकर अल्गोरिथम क्या है? (banker algorithm in operating system in hindi)
ऑपरेटिंग सिस्टम में बैंकर अल्गोरिथम एक रिसोर्स एलोकेशन और डेडलॉक avoidance अल्गोरिथम है जो सुरक्षा के लिए जांच करता है। ऐसा ये सारे रिसोर्सेज के पहले से तय किये हुए अधिकतम संभव मात्रा के एलोकेशन को सिमुलेट कर के करता है।
इसके बाद यह “s-state” बनाकर ये चेक करता है किनते संभव एक्टिविटीज हो सकते हैं और ये निर्णय लेता है कि एलोकेशन को जारी रखना चाहिए या नहीं।
बैंकर अल्गोरिथम को implement करने के लिए निम्नलिखित अल्गोरिथम लगाए जाते हैं:
मान लीजिये कि ‘n’ सिस्टम में प्रोसेस की संख्या है और ‘m’ रिसोर्स के प्रकार की संख्या है।
अवेलेबल:
- आकार का एक 1-d ऐरे है जो हर टाइप के रिसोर्सेज की संख्या बताता है।
- Available[ j ] =k का अर्थ हुआ कि यहाँ पर रिसोर्स टाइप Rj के ‘k’ इंस्टैंस हैं।
मैक्स:
- ये एक 2-d ऐरे है जिसका आकार ‘n*m’ है और ये सिस्टम के हर एक प्रोसेस के अधिकतम मांग को दिखाता है।
- Max[ i, j ] = k का अर्थ हुआ कि प्रोसेस Pi Rj रिसोर्स टाइप के ‘k’ इंस्टैंस का निवेदन कर सकता है।
एलोकेशन:
- It is a 2-d array of size that defines the number of resources of each type currently allocated to each process. ये ‘n*m’ आकार का एक 2-d ऐरे है जो हर प्रोसेस को अभी allocate हुए हर एक टाइप के रिसोर्सेज की संख्या बताता है।
- Allocation[ i, j ] = k का अर्थ हुआ कि प्रोसेस Pi रिसोर्स टाइप Rj के अभी ‘k’ इंस्टैंस को allocate किया गया है।
नीड:
ये ‘n*m’ आकार का एक 2-d ऐरे है जो प्रत्येक प्रोसेस के बचे हुए रिसोर्सेज की जरूरत को बताता है।
- Need [ i, j ] = k का अर्थ हुआ कि प्रोसेस Pi अभी allocate किया हुआ है रिसोर्स टाइप Rj के ‘k’इंस्टैंस को।
- Need [ i, j ] = Max [ i, j ] – Allocation [ i, j ]
specifies the resources currently allocated to process specifies the additional resources that process may still request to complete its task.
Allocationi ये बताता है कि अभी प्रोसेस Pi और Needi को कौन सा प्रोसेस allocate किया गया है और साथ ही वो अतिरिक्त रिसोर्स जो प्रोसेस Pi निवेदन कर सकता है ताकि टास्क पूरा हो जाये।
बैंकर अल्गोरिथम दो अल्गोरिथम से मिल कर बना होता है- सेफ्टी अल्गोरिथम और रिसोर्स रिक्वेस्ट अल्गोरिथम।
सेफ्टी अल्गोरिथम (safety algorithm in hindi)
ये एक ऐसा अल्गोरिथम है जो यहपता करता है कि कोई सिस्टम सुरक्षित स्टेट में है भी या नहीं। इसे ऐसे दिखाया जा सकता है:
1) सबसे पहले लेंथ ‘m’ और ‘n’ के वेक्टर को अपना कार्य पूरा करने दीजिये
Initialize: Work = Available
Finish[i] = false; for i=1, 2, 3, 4….n
2) i को खोजिये जिसमे,
a) Finish[i] = false
b) Needi <= Work if no such i exists goto step (4)
3) Work = Work + Allocation
Finish[i] = true
goto step (2)
4) if finish [i] = true for all i
अगर ये है तब सिस्टम सुरक्षित स्टेट में है।
रिसोर्स रिक्वेस्ट अल्गोरिथम (resource request algorithm in hindi)
मान लीजिये कि Requesti एक रिक्वेस्ट ऐरे है जो कि प्रोसेस Pi का है। Requesti [j] = k का अर्थ हुआ कि प्रोसेस Pi रिसोर्स टाइप Rj का k इंस्टैंस चाहता है। जब प्रोसेस Pi द्वारा कोई निवेदन किया जाता है तब निम्नलिखित एक्शन लिए जाते हैं:
1) If Requesti <= Needi
Goto step (2) ; नहीं तो एक एरर कंडीशन उठाया जाएगा क्योंकि प्रोसेस अपने अधिकतम क्लेम को पार कर चुका है।
2) If Requesti <= Available Goto step (3); नहीं तो Pi को इन्तजार करना पड़ेगा क्योंकि रिसोर्स अभी उपलब्ध नहीं है।
3) सिस्टम Pi को उस्का निवेदन स्वीकार कर रिसोर्सेज allocate करना दिखाने के लिए ये करेगा:
Available = Available – Requesti
Allocationi = Allocationi + Requesti
Needi = Needi– Requesti
इस तरह आपने समझा कि कैसे बैंकर्स अल्गोरिथम द्वारा हम इस प्रक्रिया को पूरा करते हैं। आप इसे अपने सिस्टम में भी प्रैक्टिस कर के देख सकते हैं।
इस लेख से सम्बंधित यदि आपका कोई भी सवाल या सुझाव है, तो आप उसे नीचे कमेंट में लिख सकते हैं।