logo

Baņķiera algoritms operētājsistēmā (OS)

Tas ir baņķiera algoritms, ko izmanto izvairīties no strupceļa un piešķirt resursus droši katram datora sistēmas procesam. ' S-State' pārbauda visus iespējamos testus vai darbības, pirms pieņem lēmumu, vai piešķiršana ir jāatļauj katram procesam. Tas arī palīdz operētājsistēmai veiksmīgi koplietot resursus starp visiem procesiem. Baņķiera algoritms ir nosaukts, jo tas pārbauda, ​​vai personai ir jāpiemēro aizdevuma summa, lai palīdzētu bankas sistēmai droši simulēt resursu piešķiršanu. Šajā sadaļā mēs uzzināsim, Baņķiera algoritms detalizēti. Mēs arī atrisināsim problēmas, pamatojoties uz Baņķiera algoritms . Lai saprastu baņķiera algoritmu, vispirms mēs redzēsim īstu tā piemēru.

Pieņemsim, ka kontu turētāju skaits konkrētā bankā ir “n” un kopējā naudas summa bankā ir “T”. Ja konta īpašnieks piesakās aizdevumam; Pirmkārt, banka atņem aizdevuma summu no pilnas skaidras naudas un pēc tam lēš, ka skaidras naudas starpība ir lielāka par T, lai apstiprinātu aizdevuma summu. Šīs darbības tiek veiktas, jo, ja cita persona piesakās aizdevumam vai izņem kādu summu no bankas, tas palīdz bankai pārvaldīt un veikt visas lietas bez jebkādiem ierobežojumiem banku sistēmas funkcionalitātē.

Līdzīgi tas darbojas kā operētājsistēma . Kad datorsistēmā tiek izveidots jauns process, procesam ir jāsniedz operētājsistēmai visa veida informācija, piemēram, gaidāmie procesi, to resursu pieprasījumi, to skaitīšana un aizkaves. Pamatojoties uz šiem kritērijiem, operētājsistēma izlemj, kura procesa secība ir jāizpilda vai jāgaida, lai sistēmā nenotiktu strupceļš. Tāpēc to sauc arī par strupceļa izvairīšanās algoritms vai strupceļa noteikšana operētājsistēmā.

kat timpf māsa

Priekšrocības

Tālāk ir norādītas baņķiera algoritma galvenās īpašības:

  1. Tajā ir dažādi resursi, kas atbilst katra procesa prasībām.
  2. Katram procesam ir jāsniedz informācija operētājsistēmai par gaidāmajiem resursu pieprasījumiem, resursu skaitu un to glabāšanas laiku.
  3. Tas palīdz operētājsistēmai pārvaldīt un kontrolēt procesa pieprasījumus katram resursa veidam datorsistēmā.
  4. Algoritmam ir atribūts Max resurss, kas norāda, ka katrs process var saturēt maksimālo resursu skaitu sistēmā.

Trūkumi

  1. Tam nepieciešams noteikts procesu skaits, un procesa izpildes laikā sistēmā nevar startēt papildu procesus.
  2. Algoritms vairs neļauj procesiem apmainīties ar savām maksimālajām vajadzībām, apstrādājot savus uzdevumus.
  3. Katram procesam iepriekš ir jāzina un jānorāda savas maksimālās resursu prasības sistēmai.
  4. Resursu pieprasījumu skaitu var piešķirt ierobežotā laikā, bet resursu piešķiršanas termiņš ir viens gads.

Strādājot ar baņķiera algoritmu, tas prasa zināt trīs lietas:

  1. Cik katrs process var pieprasīt katram sistēmas resursam. To apzīmē ar [ MAX ] pieprasījumu.
  2. Cik daudz katrs process pašlaik satur katru resursu sistēmā. To apzīmē ar [ PIEŠĶIRTS ] resurss.
  3. Tas atspoguļo katra sistēmā pašlaik pieejamā resursa skaitu. To apzīmē ar [ PIEEJAMS ] resurss.

Tālāk ir norādīti svarīgi datu struktūru termini, kas tiek lietoti baņķiera algoritmā:

Pieņemsim, ka n ir procesu skaits, un m ir katra datorsistēmā izmantotā resursa veida numurs.

    Pieejams: tas ir “m” garuma masīvs, kas nosaka katru sistēmā pieejamo resursu veidu. Ja Pieejams[j] = K, nozīmē, ka sistēmā ir pieejami R[j] resursu tipa “K” gadījumi.Maks.:Tā ir [n x m] matrica, kas norāda, ka katrs process P[i] var saglabāt maksimālo resursu skaitu R[j] (katrs veids) sistēmā.Sadalīšana:Tā ir m x n pasūtījumu matrica, kas norāda resursu veidu, kas pašlaik ir piešķirti katram procesam sistēmā. Ja Allocation [i, j] = K, tas nozīmē, ka procesam P[i] pašlaik sistēmā ir piešķirti K Resursu tipa R[j] gadījumi.Nepieciešams:Tā ir M x N matricas secība, kas atspoguļo atlikušo resursu skaitu katram procesam. Ja Nepieciešamība[i] [j] = k, procesam P[i] var būt nepieciešami vēl K Rj veida resursu gadījumi, lai pabeigtu piešķirto darbu.
    Nedd[i][j] = Max[i][j] — piešķiršana[i][j].Pabeigt: Tas ir pasūtījuma vektors m . Tas ietver Būla vērtību (true/false), kas norāda, vai process ir piešķirts pieprasītajiem resursiem un visi resursi ir atbrīvoti pēc tā uzdevuma pabeigšanas.

Bankera algoritms ir drošības algoritma un resursu pieprasījuma algoritma kombinācija, lai kontrolētu procesus un izvairītos no strupceļa sistēmā:

Drošības algoritms

Tas ir drošības algoritms, ko izmanto, lai pārbaudītu, vai sistēma ir drošā stāvoklī vai ievēro baņķiera algoritma drošo secību:

1. Ir divi vektori Wok un Pabeigt ar garumu m un n drošības algoritmā.

Inicializēt: darbs = pieejams
Finish [i] = nepatiess; ja I = 0, 1, 2, 3, 4… n - 1.

2. Pārbaudiet pieejamības statusu katram resursu veidam [i], piemēram:

Vajag [i]<= work
Finish[i] == nepatiess
Ja i neeksistē, pārejiet uz 4. darbību.

3. Darbs = Darbs +Piešķiršana(i) // lai iegūtu jaunu resursu piešķiršanu

Finish [i] = patiess

Pārejiet uz 2. darbību, lai pārbaudītu resursu pieejamības statusu nākamajam procesam.

4. Ja Finish[i] == true; tas nozīmē, ka sistēma ir droša visiem procesiem.

Resursu pieprasījuma algoritms

Resursu pieprasījuma algoritms pārbauda, ​​kā sistēma izturēsies, kad process katra veida resursa pieprasījumu sistēmā veic kā pieprasījuma matricu.

Izveidosim resursu pieprasījuma masīvu R[i] katram procesam P[i]. Ja resursa pieprasījumsi[j] ir vienāds ar “K”, kas nozīmē, ka procesam P[i] sistēmā ir nepieciešami “k” R[j] resursu tipa gadījumi.

1. Kad skaits pieprasītos resursus katra veida ir mazāks par Vajag resursi, pārejiet uz 2. darbību un, ja nosacījums neizdodas, tas nozīmē, ka process P[i] pārsniedz maksimālo resursa pieprasījumu. Kā norāda izteiciens:

Ja pieprasījums (i)<= need
Pārejiet uz 2. darbību;

2. Un, kad katra veida pieprasīto resursu skaits ir mazāks par katram procesam pieejamo resursu, pārejiet uz darbību (3). Kā norāda izteiciens:

Ja pieprasījums (i)<= available
Citādi procesam P[i] jāgaida resurss, jo tas nav pieejams lietošanai.

3. Kad pieprasītais resurss tiek piešķirts procesam, mainot stāvokli:

java programmatūras modeļi

Pieejams = Pieejams - Pieprasīt
Piešķīrums(i) = piešķīrums(i) + pieprasījums (i)
Vajagi= Vajagi- Pieprasījumsi

Kad resursu piešķiršanas stāvoklis ir drošs, tā resursi tiek piešķirti procesam P(i). Un, ja jaunais stāvoklis ir nedrošs, procesam P (i) ir jāgaida katrs pieprasījuma veids R (i) un jāatjauno vecais resursu piešķiršanas stāvoklis.

Piemērs: Apsveriet sistēmu, kas satur piecus procesus P1, P2, P3, P4, P5 un trīs resursu tipus A, B un C. Tālāk ir norādīti resursu veidi: A ir 10, B ir 5 un resursa tipam C ir 7 gadījumi.

Process Sadalīšana
A B C
Maks
A B C
Pieejams
A B C
P1 0 1 0 7 5 3 3 3 2
P2 200 3 2 2
P3 3 0 2 9 0 2
P4 2 1 1 2 2 2
P5 0 0 2 4 3 3

Atbildiet uz šādiem jautājumiem, izmantojot baņķiera algoritmu:

  1. Kāda ir vajadzību matricas atsauce?
  2. Nosakiet, vai sistēma ir droša vai nē.
  3. Kas notiks, ja resursa pieprasījums (1, 0, 0) procesam P1 sistēma var pieņemt šo pieprasījumu nekavējoties?

Gadiem. 2: Nepieciešamības matricas konteksts ir šāds:

Nepieciešamība [i] = maks. [i] — piešķīrums [i]
Nepieciešamība pēc P1: (7, 5, 3) - (0, 1, 0) = 7, 4, 3
Nepieciešamība pēc P2: (3, 2, 2) - (2, 0, 0) = 1, 2, 2
Nepieciešamība pēc P3: (9, 0, 2) - (3, 0, 2) = 6, 0, 0
Nepieciešamība pēc P4: (2, 2, 2) - (2, 1, 1) = 0, 1, 1
Nepieciešamība pēc P5: (4, 3, 3) - (0, 0, 2) = 4, 3, 1

Process Vajag
A B C
P1 7 4 3
P2 1 2 2
P3 6 0 0
P4 0 1 1
P5 4 3 1

Tādējādi mēs izveidojām vajadzību matricas kontekstu.

Ans. 2: izmantojiet baņķiera algoritmu:

Pieejamie A, B un C resursi ir 3, 3 un 2.

Tagad mēs pārbaudām, vai katram procesam ir pieejams katrs resursa pieprasījuma veids.

1. darbība: Procesam P1:

Vajag<= available< p>

7, 4, 3<= 2 3, condition is viltus .

Tātad, mēs pārbaudām citu procesu, P2.

2. darbība: Procesam P2:

Vajag<= available< p>

1, 2, 2<= 2 3, condition taisnība

Pieejams jauns = pieejams + piešķīrums

(3, 3, 2) + (2, 0, 0) => 5, 3, 2

Līdzīgi mēs pārbaudām citu procesu P3.

3. darbība: Procesam P3:

java dubultā līdz virknei

P3 Nepieciešams<= available< p>

6, 0, 0<= 2 5, 3, condition is viltus .

Līdzīgi mēs pārbaudām citu procesu, P4.

4. darbība: Procesam P4:

P4 Nepieciešams<= available< p>

0, 1, 1<= 2 5, 3, condition is taisnība

Jauns pieejamais resurss = pieejams + piešķīrums

5, 3, 2 + 2, 1, 1 => 7, 4, 3

Līdzīgi mēs pārbaudām citu procesu P5.

5. darbība: Procesam P5:

P5 Nepieciešams<= available< p>

4, 3, 1<= 3 7, 4, condition is taisnība

Jauns pieejamais resurss = pieejams + piešķīrums

7, 4, 3 + 0, 0, 2 => 7, 4, 5

Tagad mēs vēlreiz pārbaudām katru resursu pieprasījuma veidu procesiem P1 un P3.

6. darbība: Procesam P1:

P1 Nepieciešams<= available< p>

7, 4, 3<= 5 7, 4, condition is taisnība

Jauns pieejamais resurss = pieejams + piešķīrums

7, 4, 5 + 0, 1, 0 => 7, 5, 5

Tātad, mēs pārbaudām citu procesu P2.

7. darbība: Procesam P3:

P3 Nepieciešams<= available< p>

6, 0, 0<= 5 7, 5, condition is true< p>

Jauns pieejamais resurss = pieejams + piešķīrums

string.valueof java

7, 5, 5 + 3, 0, 2 => 10, 5, 7

Tādējādi mēs izpildām baņķiera algoritmu, lai atrastu drošo stāvokli un drošo secību, piemēram, P2, P4, P5, P1 un P3.

Gadiem. 3: Lai izpildītu Pieprasījumu (1, 0, 2), vispirms mums tas ir jāpārbauda Pieprasīt<= available< strong>, tas ir (1, 0, 2)<= (3, 3, 2), since the condition is true. so process p1 gets request immediately.< p>