Banker’s algorithm in hindi:-
Banker’s algorithm को Edger Dijkstra ने विकसित किया था.
banker’s algorithm को कभी कभी detection algorithm भी कहते है.
banker’s algorithm एक resource allocation तथा deadlock avoidance अल्गोरिथम है.
इसका नाम banker’s algorithm इसलिए पड़ा क्योंकि इसका प्रयोग बैंकिंग सिस्टम में loan को दिया जा सकता है या नहीं, यह निर्धारित करने के लिए किया जाता है.
इसमें पहले से निर्धारित अधिकतम संभावित resources के allocation की safety को टेस्ट किया जाता है. तथा इसके बाद यह resource allocation state को बनाता है, जिससे वह यह निर्णय लेता है कि allocation किया जा सकता है या नही.
resource allocation state जो है वह resources की उपलब्ध संख्या तथा allocated resources और processes की जरुरत के आधार पर निर्धारित होता है.
जब process किसी उपलब्ध resource के लिए request करता है तब सिस्टम निर्णय लेता है इस resources के allocation से सिस्टम safe state में रहेगा या नहीं.
banker’s algorithm example in hindi
banker’s algorithm उदाहरण:- आपके पास exam में इस प्रकार का question आता है-
सिस्टम में 5 processes (P0, P1, P2, P3, P4) है.
1:- इसकी need matrix क्या है.
2:- अगर यह safe state में है तो इसकी safety sequence क्या है?
need matrix का फार्मूला है:-
need matrix= max – available
NEED MATRIX
A | B | C |
---|---|---|
7-0 | 5-1 | 3-0 |
3-2 | 2-0 | 2-0 |
9-3 | 0-0 | 2-2 |
2-2 | 2-1 | 2-1 |
4-0 | 3-0 | 3-2 |
NEED MATRIX
A | B | C |
---|---|---|
7 | 4 | 3 |
1 | 2 | 2 |
6 | 0 | 0 |
0 | 1 | 1 |
4 | 3 | 1 |
safety algorithm:-
इसका सूत्र है.
If
need <=available
then
execute process
new available = available + allocation
elese
do not execute go ahead
यदि need जो है वह available से छोटी या बराबर है तो प्रोसेस execute होगा और नया available बनेगा. नहीं तो आगे की प्रोसेस को देखेंगे.
पद 1:-
प्रोसेस P0 के लिए
need = (7,4,3)
if need <= available
if (7,4,3) <= (3,3,2)
यह execute नहीं होगा.
पद 2:-
प्रोसेस P1 के लिए
need = (1,2,2)
if need <= available
if (1,2,2,) <= (3,2,2)
P1 execute होगा.
new available = available + allocation
= (3,3,2) + (2,0,0)
= (5,3,2)
पद 3:-
प्रोसेस P2 के लिए
need = (6,0,0)
if (6,0,0) <= (5,3,2)
P2 execute नहीं होगा.
पद 4:-
प्रोसेस P3 के लिए
need = (0,1,1)
if need <= available
(0,1,1) <= (5,3,2)
P3 को execute करेंगे.
new available = available + allocation
= (5,3,2) + (2,1,1)
= (7,4,3)
पद 5:-
प्रोसेस P4 के लिए
need = (4,3,1)
if need <= available
(4,3,1) <= (7, 4, 3)
P4 को execute करेंगे.
new available = available + allocation
= (7,4,3) + (0,0,2)
= (7,4,5)
पद 6:-
P0 पहले execute नहीं हुआ था तो उसे देखते है-
P0 के लिए
need = (7,4,3)
if (7,4,3) <= (7,4,5)
P0 को execute करेंगे.
new available = available + allocation
= (7,4,5) + (0,1,0)
= (7,5,5)
पद 7:-
P2 भी execute नहीं हुआ था उसे देखते है.
प्रोसेस P2 के लिए
need = (6,0,0)
if need <= available
(6,0,0) <= (7,5,5)
P2 execute होगा.
new available = available + allocation
= (7,5,5) + (3,0,2)
= (7,5,5) + (3,0,2)
= (10,5,7)
तो हमने अब सभी प्रोसेस को execute कर लिया तो अब हमारा safe sequence होगा-
safe sequence:- (P1, P3, P4, P0, P2)
इसे भी पढ़ें:- डेडलॉक क्या है?
निवेदन:- अगर आपको banker’s algorithm की यह पोस्ट अच्छी लगी हों तो कृपया कमेंट में बताइए तथा इसे अपने दोस्तों के साथ share करें.
Sir plz mera answer bi dijiye
aapka question kya hai dubara puchiye
Need matrix=max-available this is wrong,
The Correct formula of need matrix=max-allocation
yes boss
this is nyc information thanks for sharing your good knowledge