Zastoj u Operating sustav: Što je, kružno čekanje (primjeri)
⚡ Pametni sažetak
Zastoj u operativnom sustavu nastaje kada je skup procesa blokiran jer svaki drži resurs i čeka drugi koji drži drugi proces, stvarajući kružni lanac u kojem nijedan proces ne može nastaviti.

Što je Deadlock?
Zastoj je situacija koja se događa u operativni sustav kada proces uđe u stanje čekanja jer drugi proces koji čeka drži traženi resurs. Zastoj je čest problem u multiprocesiranju, gdje nekoliko procesa dijeli određenu vrstu međusobno isključivog resursa poznatog kao meka brava ili softverska brava.
Kada dođe do zastoja, nijedan od uključenih procesa ne može nastaviti, pa se pogođeni rad zaustavlja dok operacijski sustav ne intervenira.
Primjer zastoja
- Primjer iz stvarnog svijeta bio bi promet koji ide samo u jednom smjeru.
- Ovdje se most smatra resursom.
- Dakle, kada dođe do zastoja, može se riješiti ako se jedan automobil vrati unatrag (preuzme resurse i vrati se unatrag).
- Nekoliko automobila će možda morati biti rezervno u slučaju zastoja.
- Dakle, gladovanje je moguće.
Primjer zastoja
Što je kružno čekanje?
Jedan proces čeka resurs koji drži drugi proces, koji također čeka resurs koji drži treći proces i tako dalje. To se nastavlja sve dok posljednji proces ne čeka resurs koji drži prvi proces. Time se stvara kružni lanac.
Na primjer, Procesu A se dodjeljuje Resurs B dok zahtijeva Resurs A. Na isti način, Procesu B se dodjeljuje Resurs A dok zahtijeva Resurs B. To stvara kružnu petlju čekanja.
Primjer kružnog čekanja
Na primjer, računalo ima tri USB pogona i tri procesa. Svaki od tri procesa posjeduje jedan od USB pogona. Dakle, kada svaki proces zatraži drugi pogon, tri procesa dođu do zastoja, jer svaki od njih čeka da se oslobodi USB pogon dok je još uvijek u upotrebi. To rezultira kružnim lancem.
Primjer kružnog čekanja
Detekcija zastoja u OS-u
Pojavu zastoja može otkriti raspoređivač resursa. Raspoređivač resursa pomaže OS-u da track svih resursa koji su dodijeljeni različitim procesima. Nakon što se otkrije zastoj, može se riješiti preuzimanjem resursa, vraćanjem procesa unatrag ili prekidom jednog ili više procesa u zastoju.
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 osiguralo da ne dovede do zastoja. Čak ni mala operacija koja bi u budućnosti mogla uzrokovati zastoj nikada se ne smije izvršiti.
Sprječavanje zastoja je skup metoda kojima se osigurava da barem jedan od četiri potrebna uvjeta ne može biti ispunjen.
Nema preuzimanja
Resurs može osloboditi samo dobrovoljno proces koji ga drži, nakon što je taj proces završio svoj zadatak.
- Ako proces koji drži neke resurse zatraži drugi resurs koji mu se ne može odmah dodijeliti, tada se svi njegovi resursi oslobađaju.
- Preemptirani resursi dodaju se na popis resursa koje proces čeka.
- Proces se ponovno pokreće tek kada može ponovno dobiti stare resurse, kao i nove koje traži.
Međusobno isključivanje
Međusobno isključivanje je puni oblik Mutexa. To je posebna vrsta binarnog programa. semafor koji se koristi za kontrolu pristupa dijeljenom resursu. Uključuje mehanizam nasljeđivanja prioriteta kako bi se izbjegli problemi s produženom inverzijom prioriteta i blokiraju zadaci višeg prioriteta na najkraće moguće vrijeme.
Dijeljeni resursi poput datoteka samo za čitanje nikada ne dovode do zastoja, ali resursi poput pisača i magnetskih traka trebaju ekskluzivan pristup od strane jednog procesa.
Stani i čekaj
U ovom stanju, procesi moraju biti zaustavljeni od držanja jednog ili više resursa dok istovremeno čekaju jedan ili više drugih.
Kružno čekanje
Ova metoda nameće potpuno uređenje svih vrsta resursa. Sprječavanje kružnog čekanja također zahtijeva da svaki proces zahtijeva resurse u rastućem redoslijedu nabrajanja.
Izbjegavanje zastoja Algorithms
Bolje je izbjeći zastoj nego poduzimati mjere nakon što se zastoj dogodio. Izbjegavanje zahtijeva dodatne informacije, poput toga kako će se resursi koristiti. Izbjegavanje zastoja je koristan model u kojem svaki proces deklarira maksimalan broj resursa svake vrste koji mu mogu biti potrebni.
Izbjegavanje Algorithms
Algoritam za izbjegavanje zastoja dinamički procjenjuje stanje alokacije resursa tako da se nikada ne može dogoditi situacija kružnog čekanja.
Za jednu instancu tipa resursa:
- Koristite graf raspodjele resursa.
- Ciklus u grafu je nužan i dovoljan za zastoj.
Za više instanci tipa resursa:
- Ciklus je potreban, ali nije dovoljan za zastoj.
- Koristite Bankarski algoritam.
Razlika između gladovanja i slijepe ulice
Evo nekih važnih razlika između zastoja i gladovanja:
| Zastoj | Gladovanje |
|---|---|
| Do zastoja dolazi kada se jedan od procesa blokira. | Gladovanje je situacija u kojoj se svi procesi niskog prioriteta blokiraju dok se procesi visokog prioriteta izvršavaju. |
| Zastoj je beskonačan proces. | Izgladnjivanje je dugo čekanje, ali ne i beskonačan proces. |
| Svaka zastoja uvijek ima glad. | Svako gladovanje ne mora nužno imati zastoj. |
| Do zastoja dolazi zbog međusobnog isključivanja, zadržavanja i čekanja, bez preempcije i kružnog čekanja koje se javljaju zajedno. | To se događa zbog nekontroliranog određivanja prioriteta i lošeg upravljanja resursima. |
Prednosti Deadlock-a
Evo prednosti korištenja metode rješavanja zastoja:
- Ova situacija dobro funkcionira za procese koji izvode jedan nalet aktivnosti.
- Za zastoj nije potrebna preempcija.
- To je prikladna metoda kada se primjenjuje na resurse čije se stanje može lako spremiti i vratiti.
- Izvedivo je provesti provjere tijekom kompajliranja.
- Ne zahtijeva računanje tijekom izvođenja, budući da je problem riješen u dizajnu sustava.
Nedostaci zastoja
Evo nedostataka korištenja metode rukovanja zastojem:
- To odgađa početak procesa.
- Procesi moraju unaprijed znati svoje buduće potrebe za resursima.
- Preduhitriva češće nego što je potrebno.
- Onemogućuje inkrementalne zahtjeve za resursima.
- Ima inherentne gubitke zbog preempcije.


