Zastoj u Operating sustav: Što je, kružno čekanje (primjeri)

Što je Deadlock?

Zastoj je situacija koja se događa u OS-u kada bilo koji proces uđe u stanje čekanja jer drugi proces na čekanju drži traženi resurs. Zastoj je čest problem u multi-procesiranju gdje nekoliko procesa dijeli određenu vrstu međusobno isključivih resursa poznatih kao meko zaključavanje ili softver.

Primjer zastoja

  • Primjer iz stvarnog svijeta bio bi promet koji se odvija samo u jednom smjeru.
  • Ovdje se most smatra resursom.
  • Dakle, kada dođe do zastoja, može se lako riješiti ako se jedan automobil vrati (Preempt resursi i vraćanje).
  • Nekoliko automobila će možda morati biti rezervno u slučaju zastoja.
  • Dakle, gladovanje je moguće.
Primjer zastoja
Primjer zastoja

Što je kružno čekanje?

Jedan proces čeka na resurs koji drži drugi proces, koji također čeka na resurs koji drži treći proces itd. To će se nastaviti sve dok posljednji proces ne bude čekao na resurs koji drži prvi proces. Ovo stvara kružni lanac.

Na primjer, procesu A dodijeljen je resurs B jer zahtijeva resurs A. Na isti način, procesu B je dodijeljen resurs A, a on zahtijeva resurs B. Ovo stvara kružnu petlju čekanja.

Primjer kružnog čekanja

Na primjer, računalo ima tri USB pogona i tri procesa. Svaki od tri procesa može držati jedan od USB pogona. Dakle, kada svaki proces zatraži još jedan disk, tri procesa će imati situaciju zastoja jer će svaki proces čekati da se oslobodi USB pogon, koji je trenutno u upotrebi. To će rezultirati kružnim lancem.

Primjer kružnog čekanja

Primjer kružnog čekanja

Detekcija zastoja u OS-u

Planer resursa može otkriti pojavu zastoja. Planer resursa pomaže OS-u da prati sve resurse koji su dodijeljeni različitim procesima. Dakle, kada se otkrije zastoj, može se riješiti pomoću dolje navedenih metoda:

Prevencija zastoja u OS-u

Važno je spriječiti zastoj prije nego što se dogodi. Sustav provjerava svaku transakciju prije nego što se izvrši kako bi se uvjerio da ne dovodi do zastoja. Takva da se čak i mala promjena dogodi mrtva da operacija koja može dovesti do zastoja u budućnosti također nikada ne dopušta procesu da se izvrši.

To je skup metoda za osiguranje da se barem jedan od uvjeta ne može održati.

Nema preventivnih radnji

Bez preempcije – Resurs se može osloboditi samo dobrovoljno od strane procesa koji ga drži nakon što taj proces završi svoj zadatak

  • Ako proces koji drži neke resurse zatraži drugi resurs koji mu se ne može odmah dodijeliti, u toj će situaciji svi resursi biti oslobođeni.
  • Preuzeti resursi zahtijevaju popis resursa za proces koji je na čekanju.
  • Proces će se ponovno pokrenuti samo ako može povratiti svoj stari resurs i novi koji zahtijeva.
  • Ako proces zahtijeva neki drugi resurs, kada je dostupan, tada je dan procesu koji zahtijeva.
  • Ako ga drži drugi proces koji čeka na drugi resurs, oslobađamo ga i dajemo procesu koji zahtijeva.

Međusobno isključivanje

Uzajamno isključivanje puni je oblik Mutexa. To je posebna vrsta binarnog semafora koji se koristi za kontrolu pristupa dijeljenom resursu. Uključuje mehanizam nasljeđivanja prioriteta kako bi se izbjegli problemi proširene inverzije prioriteta. Omogućuje da trenutni zadaci višeg prioriteta ostanu u blokiranom stanju najkraće moguće vrijeme.

Resursi koji se dijele, poput datoteka samo za čitanje, nikada ne dovode do zastoja, ali resursima, poput pisača i pogona trake, potreban je ekskluzivan pristup od strane jednog procesa.

Stani i čekaj

U ovom stanju procesi moraju biti zaustavljeni tako da ne drže jedan ili više resursa dok istovremeno čekaju jedan ili više drugih.

Kružno čekanje

Nameće potpuni poredak svih vrsta resursa. Kružno čekanje također zahtijeva da svaki proces zahtijeva resurse rastućim redoslijedom nabrajanja.

Izbjegavanje zastoja Algorithms

Bolje je izbjeći zastoj umjesto poduzimanja radnji nakon što se zastoj dogodi. Potrebne su mu dodatne informacije, primjerice kako se resursi trebaju koristiti. Izbjegavanje zastoja je najjednostavniji i najkorisniji model prema kojem svaki proces deklarira maksimalni broj resursa svake vrste koji mu mogu biti potrebni.

Izbjegavanje Algorithms

Algoritam za izbjegavanje zastoja pomaže vam da dinamički procijenite stanje raspodjele resursa tako da nikada ne može doći do situacije kružnog čekanja.

Jedna instanca tipa resursa.

  • Koristite grafikon raspodjele resursa
  • Nužni su ciklusi koji su dovoljni za Deadlock

Više instanci vrste resursa.

  • Ciklusi su potrebni, ali nikada dovoljni za mrtvu blokadu.
  • Koristi se bankarov algoritam

Razlika između gladovanja i slijepe ulice

Evo nekoliko važnih razlika između mrtve točke i gladovanja:

Zastoj Gladovanje
Situacija zastoja se događa kada se jedan od procesa blokira. Izgladnjivanje je situacija u kojoj su svi procesi niskog prioriteta blokirani, a procesi visokog prioriteta se izvršavaju.
Zastoj je beskonačan proces. Gladovanje je dugo čekanje, ali ne i beskonačan proces.
Svaki Deadlock uvijek ima glad. Svako gladovanje ne mora nužno imati mrtvu točku.
Zastoj se događa tada Međusobno isključenje, čekajte i čekajte. Ovdje se prednost i kružno čekanje ne događaju istovremeno. To se događa zbog nekontroliranog upravljanja prioritetima i resursima.

Prednosti Deadlock-a

Ovdje su prednosti/prednosti korištenja metode mrtvog zaključavanja

  • Ova situacija dobro funkcionira za procese koji izvode jednu buru aktivnosti
  • Nije potrebna prednost za Deadlock.
  • Zgodna metoda kada se primjenjuje na resurse čije se stanje može lako spremiti i vratiti
  • Izvedivo za provedbu putem provjera tijekom kompilacije
  • Ne zahtijeva računanje vremena izvođenja jer je problem riješen u dizajnu sustava

Nedostaci zastoja

Ovdje su mane/mane korištenja metode zastoja

  • Odgađa pokretanje procesa
  • Procesi moraju znati buduće potrebe za resursima
  • Prethodi češće nego što je potrebno
  • Onemogućuje inkrementalne zahtjeve za resursima
  • Inherentni gubici prednosti.

rezime

  • Definicija zastoja: To je situacija koja se događa u OS kada bilo koji proces uđe u stanje čekanja jer drugi proces na čekanju drži traženi resurs
  • Kružno čekanje događa se kada jedan proces čeka na resurs koji drži drugi proces, koji također čeka na resurs koji drži treći proces itd.
  • Planer resursa može otkriti pojavu zastoja.
  • Važno je spriječiti zastoj prije nego što se dogodi.
  • Resurs se može osloboditi samo dobrovoljno od strane procesa koji ga drži nakon što taj proces završi svoj zadatak.
  • Uzajamno isključivanje puni je oblik Mutexa. To je posebna vrsta binarnog zapisa semafor koji se koristi za kontrolu pristupa dijeljenom resursu.
  • Čekaj i čekaj je stanje u kojem procesi moraju biti zaustavljeni da ne drže jedan ili više resursa dok istovremeno čekaju jedan ili više drugih.
  • Izbjegavanje zastoja je najjednostavniji i najkorisniji model prema kojem svaki proces deklarira maksimalan broj resursa svake vrste koji mu mogu biti potrebni.
  • Algoritam za izbjegavanje zastoja pomaže vam da dinamički procijenite stanje raspodjele resursa tako da nikada ne može doći do situacije kružnog čekanja.
  • Zastoj je beskonačan proces, dok je gladovanje dugo čekanje, ali ne i beskonačan proces.