Ce este impasul în sistemul de operare: condiții și algoritm de detectare

Încercați Instrumentul Nostru Pentru Eliminarea Problemelor





Obiectivul principal al unui sistem de operare este de a asigura o comunicare adecvată între resursele hardware și software și, de asemenea, să ofere servicii comune programelor. Când un proces de sistem de operare dorește să acceseze orice resursă, acesta trimite mai întâi o cerere la resursa specială pe care dorește să o acceseze, apoi utilizează resursa și, în cele din urmă, eliberează resursa după utilizare. Dacă presupunem că multe procese încearcă să acceseze o resursă în același timp, devine dificil să furnizați o singură resursă tuturor proceselor la un moment dat într-o astfel de situație, apare conceptul numit blocaj. Prin urmare, acest articol descrie modul în care apare impasul și cum să depășească această situație de impas.

Ce este blocajul în sistemul de operare?

Definiție: Blocajul mort este o situație în care doi sau mai mulți procesoare așteaptă să se întâmple un eveniment, dar astfel de evenimente care nu se întâmplă sunt o condiție de blocaj, iar procesorii se spune că sunt într-un blocaj. De exemplu, să presupunem un scenariu în timp real, în care există două mașini A & B, conduse de doi șoferi individuali pe un drum cu sens unic. Acum apare situația în care șoferul mașinii A spune că deplasarea spre nord este o direcție corectă, în timp ce șoferul mașinii B spune că mișcarea către direcția sud este corectă. Dar niciuna dintre ele nu se mișcă înapoi pentru a permite unei alte mașini să avanseze, această condiție se numește condiție de blocare.




Exemplu de mașină

masina-exemplu

Pentru o mai bună înțelegere, să luăm în considerare un alt exemplu în care există două resurse R1, R2 și două procese P1 și P2, unde R1 este atribuit lui P1 și R2 este atribuit lui P2. Acum, dacă P1 vrea să acceseze R2, așa cum știm deja, R2 este deținut de P2, iar acum P2 vrea să acceseze R1, care este P1 se execută numai când este accesat la R2, de asemenea, P2 execută doar când este accesat la R1 această situație este un stat impas.



Procesor-Exemplu

procesor-exemplu

Condiții de blocare

Următoarele sunt cele patru condiții importante de blocare care trebuie să apară dacă toate condițiile apar simultan, există anumite șanse ca blocajul să apară.

Excludere mutuala

Înseamnă că orice resursă pe care o folosim trebuie utilizată într-un mod care se exclude reciproc. Acolo unde un singur proces utilizează o singură resursă la un moment dat. De exemplu, procesul de imprimare este în curs și dintr-o dată un alt proces încearcă să întrerupă procesul de imprimare. Deci, aici, în situația de excludere reciprocă, numai după finalizarea sarcinii de imprimare, este procesată doar următoarea sarcină. Excluderea reciprocă poate fi eliminată prin partajarea simultană a resurselor, ceea ce nu este posibil practic.

Excludere mutuala

excludere mutuala

Fără Prevenire

Conform preventiv bazate pe algoritmi, dacă există o sarcină prioritară care încearcă să întrerupă sarcina curentă. Algoritmul preventiv care deține sarcina curentă și execută mai întâi sarcina prioritară și revine la prima sarcină. O situație explicată conform exemplului de mai sus în care un proces deține resursa atâta timp cât este executat, adică P1 poate elibera R1 numai după executare, în mod similar P2 eliberează R2 numai după executare. Dacă nu există preemțiune, poate apărea blocajul.


Exemplu fără prevenire

fără-preempțiune-exemplu

Țineți și așteptați

Un proces reține unele resurse și așteaptă resurse suplimentare, dar acele resurse sunt achiziționate de un alt proces. Din exemplul de mai sus, P1 ține R1 și așteaptă R2, unde R2 este achiziționat de P2, iar P2 ține R2 și așteaptă R1, unde R1 este achiziționat de P1, este o situație de blocare și așteptare.

Așteptați și așteptați-Exemplu

așteptați și așteptați-exemplu

Așteptați circular

Se spune că un set de procese se află în impas dacă un proces așteaptă o resursă care este alocată unui alt proces și acel proces așteaptă o resursă, este similar cu exemplul explicat mai sus, unde este în formă de buclă. În cazul în care P1 așteaptă R2 și R2 este alocat pentru P2 și P2 așteaptă R1 și R1 alocate pentru P1, care este o formă circulară de așteptare dacă această condiție satisface blocajul.

Exemplu de așteptare circulară

circular-wait-example

Algoritmul de detectare a blocării

Cazurile în care alocăm resurse proceselor și sistemul de operare verifică din nou dacă s-a produs un blocaj în sistem sau nu folosind 2 algoritmi principali de detectare a blocajului, acestea sunt

  • Instanță unică
  • Mai multe instanțe de tip resursă

Instanță unică

O singură instanță este o situație în care un sistem are instanțe unice din toate resursele. Este, de asemenea, cunoscut sub numele de algoritm de așteptare pentru grafic sau grafic de alocare a resurselor. Graficul de alocare a resurselor constă dintr-un set de procese și un set de resurse care sunt reprezentate ca două vârfuri diferite. Resursele din graficul de alocare a resurselor sunt modificate și sunt reprezentate ca așteptare pentru forma graficului. În cazul în care așteptați forma graficului are doar procese care sunt reprezentate ca vârfuri așa cum se arată mai jos în care,

  • Graficul de alocare a resurselor: Procesele P1, P2, P3 și resursele R1, R2, R3 sunt reprezentate în graficul de alocare a resurselor.
  • Așteptați graficul: numai procesele P1, P2, P3 sunt menționate în așteptarea graficului.
  • Dacă există o condiție de ciclu, că dacă există un flux continuu al unui proces într-o direcție, înseamnă că starea ciclului iese și așteptați ca graficul să fie într-o condiție de blocare.

Exemplul 1: Exemplul de mai jos arată că nu există o stare de blocare, deoarece nu se observă un flux continuu în așteptarea graficului.

Single-Instance-Example1

single-instance-example1

Exemplul 2: Condiția de blocare a avut loc deoarece există un flux continuu de ciclu de la P1 la P4.

Instanță unică - Exemplu2

single-instance-example2

Dacă blocajul apare foarte frecvent în sistem, atunci algoritmul de detectare este utilizat frecvent. Dacă se folosește mai mult algoritmul de detectare, atunci va exista mai mult timp și mai mult timp de calcul. Prin urmare, pentru a depăși acest lucru, invocăm algoritmul după, acordând o cantitate egală de timp, așa se folosește greutatea graficului pentru a detecta impasul.

Mai multe instanțe de tip resursă

Instanțele multiple de tipul resursei sunt o situație în care un sistem are instanțe multiple din toate resursele, este cunoscut și ca algoritm Bankers. Conform algoritmului bancherilor, de îndată ce procesul își obține toate resursele necesare, atunci eliberează resursele sale.

Să luăm în considerare următorul exemplu, să presupunem că există 3 procese P0, P1, P2 și tipul de resursă A, B, C unde A poate fi CPU , B poate fi imprimantă și C poate fi tastatura. Cifrele „0” din coloană reprezintă disponibilitatea resurselor.

Cazul (i): Să presupunem că dacă luăm cererea de condiție este „000” condiție care este prezentă în P0 și P2, ar trebui să verificăm care cerere este îndeplinită, procesele P0 eliberează procesele după ce sunt alocate, apoi procesele următoare P2 se eliberează după ce sunt alocate. Astfel, într-o secvență, unul câte unul, eliberează P0, P2, P3, P1, P4 într-o secvență. În cele din urmă, obținem resurse disponibile ca P7, P2, P6. Secvența disponibilă este o condiție în care nu există impas.

Bankers-Algorithm-Example1

algoritmi-bancheri-exemplu1

Case(ii): Să presupunem că dacă P2 este 001 în loc de 000, acum aplică algoritmul bancherului pentru a verifica starea de blocare, unde singurul P0 este executat între toate cele 5 procese. Prin urmare, P1, P2, P3, P4 sunt în starea de blocare, cu excepția P0.

Bancheri-Exemplu2

bancheri-exemplu2

Aplicații de blocare

Aplicațiile blocajului pot fi explicate cu un exemplu în timp real al rezultatelor examinării online, unde mai mulți studenți încearcă să acceseze site-ul universității lor la momentul lansării. Se poate observa că uneori pagina web nu se încarcă simultan pentru mai mulți utilizatori, aceasta este o condiție de blocare. Acest lucru poate fi depășit folosind oricare dintre algoritmi.

Avantaje

Avantajele blocajului sunt

  • Nu se observă nicio preempțiune în evitarea impasului
  • Fără întârziere în proces

Dezavantaje

Dezavantajul blocajului este

  • Resursa care trebuie utilizată trebuie cunoscută în prealabil
  • Blocarea procesului pentru o lungă perioadă de timp
  • Pierderile de preferință sunt moștenite.

Acest articol face o prezentare generală despre modul în care apare blocajul atunci când există două sau mai multe procese și cele trei condiții care este cauza apariției unui blocaj și cele două tipuri de algoritmi și anume algoritmul de partajare a resurselor care detectează că există un starea de impas și algoritmul bancherilor, care este algoritmul de evitare a impasului. Iată întrebarea „Ce se întâmplă dacă impasul este ignorat?”.