Blocaj în impas OperaSistemul de control: Ce este, Așteptare circulară (Exemple)

Ce este Deadlock?

Impas este o situație care apare în sistemul de operare când orice proces intră într-o stare de așteptare deoarece un alt proces de așteptare deține resursa cerută. Blocarea este o problemă comună în procesarea multiplă, în care mai multe procese împărtășesc un anumit tip de resursă care se exclud reciproc, cunoscut sub numele de blocare soft sau software.

Exemplu de blocaj

  • Un exemplu real ar fi traficul, care merge doar într-o singură direcție.
  • Aici, un pod este considerat o resursă.
  • Deci, atunci când are loc Deadlock, poate fi rezolvat cu ușurință dacă o mașină face backup (Preempt resurse și rollback).
  • Este posibil ca mai multe mașini să fie nevoite să facă backup dacă apare o situație de blocaj.
  • Deci foametea este posibilă.
Exemplu de blocaj
Exemplu de blocaj

Ce este așteptarea circulară?

Un proces așteaptă resursa, care este deținută de al doilea proces, care așteaptă și resursa deținută de al treilea proces etc. Acest lucru va continua până când ultimul proces așteaptă o resursă deținută de primul proces. Acest lucru creează un lanț circular.

De exemplu, Procesului A i se alocă Resursa B deoarece solicită Resursa A. În același mod, Procesului B i se alocă Resursa A și solicită Resursa B. Aceasta creează o buclă circulară de așteptare.

Exemplu de așteptare circulară

De exemplu, un computer are trei unități USB și trei procese. Fiecare dintre cele trei procese capabile să dețină una dintre unitățile USB. Deci, atunci când fiecare proces solicită o altă unitate, cele trei procese vor avea situația de blocaj, deoarece fiecare proces va aștepta eliberarea unității USB, care este în prezent în uz. Acest lucru va avea ca rezultat un lanț circular.

Exemplu de așteptare circulară

Exemplu de așteptare circulară

Detectarea blocajului în sistemul de operare

O apariție a blocajului poate fi detectată de planificatorul de resurse. Un planificator de resurse ajută sistemul de operare să țină evidența tuturor resurselor care sunt alocate diferitelor procese. Deci, atunci când este detectat un blocaj, acesta poate fi rezolvat folosind metodele de mai jos:

Prevenirea blocajului în sistemul de operare

Este important să preveniți un impas înainte ca acesta să apară. Sistemul verifică fiecare tranzacție înainte de a fi executată pentru a se asigura că nu duce la situații de blocaj. Astfel încât chiar și o mică schimbare să apară moartă, încât o operațiune care poate duce la Deadlock în viitor nu a permis niciodată executarea procesului.

Este un set de metode pentru a se asigura că cel puțin una dintre condiții nu poate fi valabilă.

Nicio acțiune preventivă

Fără preempțiune – O resursă poate fi eliberată numai voluntar de către procesul care o deține după ce procesul respectiv și-a încheiat sarcina

  • Dacă un proces care deține anumite resurse solicită o altă resursă care nu îi poate fi alocată imediat, în această situație, toate resursele vor fi eliberate.
  • Resursele anticipate necesită lista de resurse pentru un proces care așteaptă.
  • Procesul va fi repornit numai dacă își poate recâștiga resursa veche și una nouă pe care o solicită.
  • Dacă procesul solicită o altă resursă, atunci când aceasta este disponibilă, atunci aceasta a fost dată procesului solicitant.
  • Dacă este deținut de un alt proces care așteaptă o altă resursă, îl eliberăm și îl dăm procesului solicitant.

Excludere mutuala

Excluderea reciprocă este o formă completă de Mutex. Este un tip special de semafor binar care este folosit pentru controlul accesului la resursa partajată. Include un mecanism de moștenire a priorităților pentru a evita problemele de inversare a priorității extinse. Permite ca sarcinile curente cu prioritate mai mare să fie menținute în starea blocată pentru cel mai scurt timp posibil.

Resursele partajate, cum ar fi fișierele numai pentru citire, nu duc niciodată la blocaje, dar resursele, cum ar fi imprimantele și unitățile de bandă, au nevoie de acces exclusiv printr-un singur proces.

Țineți și așteptați

În această condiție, procesele trebuie oprite să dețină o singură sau mai multe resurse în timp ce se așteaptă simultan una sau mai multe altele.

Așteptați circular

Ea impune o ordonare totală a tuturor tipurilor de resurse. Așteptarea circulară necesită, de asemenea, ca fiecare proces să solicite resurse în ordine crescătoare de enumerare.

Evitarea blocajului Algorithms

Este mai bine să evitați un blocaj în loc să luați măsuri după ce a apărut blocajul. Are nevoie de informații suplimentare, cum ar fi modul în care trebuie utilizate resursele. Evitarea blocajului este cel mai simplu și util model de care fiecare proces declară numărul maxim de resurse de fiecare tip de care ar putea avea nevoie.

Evitare Algorithms

Algoritmul de evitare a blocajului vă ajută să evaluați dinamic starea de alocare a resurselor, astfel încât să nu existe niciodată o situație de așteptare circulară.

O singură instanță a unui tip de resursă.

  • Utilizați un grafic de alocare a resurselor
  • Sunt necesare cicluri care sunt suficiente pentru Deadlock

Instanțe multiple ale unui tip de resursă.

Diferența dintre foame și blocaj

Iată câteva diferențe importante între Deadlock și foamete:

Impas înfometare
Situația de blocare apare atunci când unul dintre procese a fost blocat. Înfometarea este o situație în care toate procesele cu prioritate scăzută au fost blocate, iar procesele cu prioritate înaltă se execută.
Blocajul este un proces infinit. Foametea este o lungă așteptare, dar nu un proces infinit.
Fiecare Deadlock are întotdeauna foamete. Fiecare înfometare nu are neapărat un impas.
Intervine blocarea, apoi excluderea reciprocă, așteptați și așteptați. Aici, preempțiunea și așteptarea circulară nu apar simultan. Se întâmplă din cauza priorităților necontrolate și gestionării resurselor.

Avantajele Deadlock

Iată avantajele/beneficiile utilizării metodei Deadlock

  • Această situație funcționează bine pentru procesele care efectuează o singură explozie de activitate
  • Nu este nevoie de preempțiune pentru Deadlock.
  • Metodă convenabilă atunci când este aplicată resurselor a căror stare poate fi salvată și restaurată cu ușurință
  • Fezabil de aplicat prin verificări în timp de compilare
  • Nu are nevoie de calcul în timpul rulării, deoarece problema este rezolvată în proiectarea sistemului

Dezavantajele Deadlock

Iată dezavantajele / dezavantajele utilizării metodei de blocaj

  • Întârzie inițierea procesului
  • Procesele trebuie să cunoască nevoia viitoare de resurse
  • Preempționează mai des decât este necesar
  • Nu permite solicitări de resurse incrementale
  • Pierderi inerente de preempțiune.

Rezumat

  • Deadlock Definiție: Este o situație care apare în OS când orice proces intră într-o stare de așteptare deoarece un alt proces de așteptare deține resursa cerută
  • Așteptarea circulară are loc atunci când un proces așteaptă resursa, care este deținută de al doilea proces, care așteaptă și resursa deținută de al treilea proces etc.
  • O apariție a blocajului poate fi detectată de planificatorul de resurse.
  • Este important să preveniți un impas înainte ca acesta să apară.
  • O resursă poate fi eliberată numai voluntar de către procesul care o deține după ce procesul respectiv și-a încheiat sarcina.
  • Excluderea reciprocă este o formă completă de Mutex. Este un tip special de binar semafor care a folosit pentru controlul accesului la resursa partajată.
  • Reținere și așteptare este o condiție în care procesele trebuie să fie oprite să nu dețină resurse individuale sau multiple, în timp ce așteaptă simultan una sau mai multe alte resurse.
  • Evitarea blocajului este cel mai simplu și util model de care fiecare proces declară numărul maxim de resurse de fiecare tip de care ar putea avea nevoie.
  • Algoritmul de evitare a blocajului vă ajută să evaluați dinamic starea de alocare a resurselor, astfel încât să nu existe niciodată o situație de așteptare circulară.
  • Blocajul este un proces infinit, în timp ce foametea este o așteptare lungă, dar nu un proces infinit.