Što je zastoj u operacijskom sustavu: uvjeti i algoritam otkrivanja

Isprobajte Naš Instrument Za Uklanjanje Problema





Glavni cilj operativnog sustava je pružiti odgovarajuću komunikaciju između hardverskih i softverskih resursa, a također pružiti zajedničke usluge programima. Kada postupak operativnog sustava želi pristupiti bilo kojem resursu, prvo šalje zahtjev određenom resursu kojem želi pristupiti, zatim koristi resurs i konačno oslobađa resurs nakon upotrebe. Pretpostavimo da mnogi procesi istodobno pokušavaju pristupiti jednom resursu, postaje teško osigurati po jedan resurs svim procesima u istoj situaciji u kojoj nastaje koncept nazvan zastoj. Stoga ovaj članak opisuje kako dolazi do zastoja i kako ga prevladati.

Što je zastoj u operacijskom sustavu?

Definicija: Dead-Lock je situacija kada dva ili više procesora čekaju da se dogodi neki događaj, ali takvi događaji koji se ne dogode stanje su mrtve točke, a za procesore se kaže da su u stanju mrtve točke. Na primjer, pretpostavimo scenarij u stvarnom vremenu, gdje se nalaze dva automobila A i B, kojima dva vozača voze jednosmjernom cestom. Sada se pojavljuje situacija kada vozač automobila A kaže da je kretanje prema sjeveru ispravan smjer, dok vozač automobila B kaže da je kretanje prema smjeru juga ispravan. Ali niti jedan se ne pomiče natrag kako bi omogućio da se drugi automobil kreće naprijed, ovo se stanje naziva mrtvom situacijom.




Primjer automobila

auto-primjer

Za bolje razumijevanje, razmotrimo još jedan primjer gdje postoje dva resursa R1, R2 i dva procesa P1 i P2, gdje je R1 dodijeljen P1, a R2 P2. Sada, ako P1 želi pristupiti R2, kao što već znamo da R2 drži P2, a sada P2 želi pristupiti R1, što je P1, izvršava se samo kad mu se pristupi R2, također se P2 izvršava samo kada mu se pristupi R1, ova situacija je stanje mrtve točke.



Primjer procesora

procesor-primjer

Dead-Lock uvjeti

Slijede četiri važna uvjeta zastoja koji se moraju dogoditi ako se svi uvjeti javljaju istovremeno, postoje određene šanse da se zastoj dogodi.

Međusobno isključivanje

Znači da se bilo koji resurs koji koristimo mora koristiti na međusobno isključiv način. Gdje samo jedan proces istovremeno koristi samo jedan resurs. Na primjer, postupak ispisa traje i najednom drugi postupak pokušava prekinuti postupak ispisa. Dakle, ovdje u situaciji međusobnog isključivanja, tek nakon dovršetka zadatka ispisa obrađuje se samo sljedeći zadatak. Uzajamno isključivanje može se eliminirati istodobnom dijeljenjem resursa, što praktički nije moguće.

Međusobno isključivanje

međusobno isključivanje

Nema predujma

Prema preventivni na temelju algoritama, ako postoji prioritetni zadatak koji pokušava prekinuti trenutni zadatak. Preventivni algoritam sadrži trenutni zadatak, prvo izvršava prioritetni zadatak i vraća se svom prvom zadatku. Situacija objašnjena prema gornjem primjeru kada proces drži resurs sve dok se izvršava, to jest P1 može otpustiti R1 tek nakon izvršenja, slično P2 otpustiti R2 samo nakon izvršenja. Ako nema predujma, može doći do zastoja.


Primjer bez preuzimanja

ne-preemption-primjer

Držite i pričekajte

Proces drži neke resurse i čeka dodatne resurse, ali ti resursi se pribavljaju nekim drugim procesom. Iz gornjeg primjera, P1 drži R1 i čeka R2, gdje P2 stječe R2, a P2 drži R2 i čeka R1, gdje R1 dobiva P1, u sustavu se može dogoditi zastoj u situaciji čekanja i čekanja.

Primjer čekanja i čekanja

držite i pričekajte-primjer

Kružno čekanje

Za skup procesa se kaže da je u zastoju ako jedan proces čeka resurs koji je dodijeljen drugom procesu, a taj proces čeka resurs, sličan je gore objašnjenom primjeru gdje je u obliku petlje. Tamo gdje P1 čeka R2, a R2 je dodijeljen P2, a P2 čeka R1 i R1 dodijeljeni P1, što je kružni oblik čekanja ako ovaj uvjet zadovoljava zastoj.

Primjer kružnog čekanja

primjer kružnog čekanja

Algoritam otkrivanja mrtvih blokada

Slučajevi kada alociramo resurse na procese i operativni sustav ponovno provjerava je li došlo do zastoja u sustavu ili ga nije primijenio pomoću dva glavna algoritma za otkrivanje zastoja, oni su

  • Pojedinačna instanca
  • Više primjeraka vrste resursa

Jedna instanca

Jedna instanca je situacija kada sustav ima pojedinačne instance svih resursa. Također je poznato kao algoritam za čekanje grafa ili graf za dodjelu resursa. Grafikon raspodjele resursa sastoji se od skupa procesa i skupa resursa koji su predstavljeni kao dva različita vrha. Resursi u grafikonu raspodjele resursa su izmijenjeni i prikazani su kao oblik čekanja grafa. Gdje oblik čekanja grafa ima samo procese koji su predstavljeni kao vrhovi kao što je prikazano dolje, gdje,

  • Grafikon raspodjele resursa: Procesi P1, P2, P3 i resursi R1, R2, R3 predstavljeni su u grafu raspodjele resursa.
  • Čekajte graf: U čekanju na graf spominju se samo procesi P1, P2, P3.
  • Ako postoji uvjet ciklusa, to znači da ako postoji kontinuirani tok procesa u jednom smjeru, to znači da stanje ciklusa izlazi i pričekajte da se graf zaustavi.

Primjer 1: Sljedeći primjer pokazuje da nema stanja mrtve točke jer nema kontinuiranog protoka uočenog u iščekivanju grafa.

Primjer pojedinačne instance1

jednostupanjski-primjer1

Primjer 2: Došlo je do stanja mrtve točke jer postoji kontinuirani protok ciklusa od P1 do P4.

Jednostupanjska - Primjer2

jednostupanjski-primjer2

Ako se zastoj vrlo često događa u sustavu, algoritam otkrivanja često se koristi. Ako se više koristi algoritam otkrivanja, bit će više dodatnih troškova i više vremena za računanje. Stoga da bismo to prevladali, algoritam pozivamo nakon što, dajući jednaku količinu vremena, na taj se način težina grafa koristi za otkrivanje mrtve točke.

Više primjeraka vrste resursa

Više instanci vrste resursa je situacija u kojoj sustav ima više instanci svih resursa, poznat je i pod nazivom Bankarski algoritam. Prema algoritmu Bankers, čim proces dobije sve potrebne resurse, tada oslobađa svoje resurse.

Razmotrimo sljedeći primjer, pretpostavimo da postoje 3 procesa P0, P1, P2 i vrsta resursa A, B, C gdje A može biti CPU , B može biti pisač, a C može biti tipkovnica. Znamenke '0' u stupcu predstavljaju dostupnost resursa.

Slučaj (i): Pretpostavimo ako uzmemo da je zahtjev za uvjet uvjet '000' koji je prisutan u P0 i P2, trebali bismo provjeriti koji je zahtjev ispunjen, procesi P0 oslobađaju procese nakon dodjele, a zatim se slijedeći P2 procesi objavljuju nakon dodjele. Ovako, u slijedu, jedan po jedan proces oslobađa P0, P2, P3, P1, P4 u nizu. Napokon, dobivamo dostupne resurse kao P7, P2, P6. Dostupni slijed je stanje u kojem nema zastoja.

Bankarski algoritam-primjer1

bankari-algoritam-primjer1

Kuće (ii): Pretpostavimo da ako je P2 001 umjesto 000, sada primijenite bankarski algoritam za provjeru stanja mrtve točke, gdje se jedini P0 izvršava među svih 5 procesa. Stoga su P1, P2, P3, P4 u stanju mrtve točke, osim za P0.

Bankari-Primjer2

bankari-primjer2

Primjene mrtve točke

Primjene mrtve točke mogu se objasniti primjerom internetskih rezultata ispita u stvarnom vremenu, gdje nekoliko studenata pokušava pristupiti svojoj web stranici sveučilišta u vrijeme objavljivanja. Može se primijetiti da se web-stranica ponekad ne učita odjednom za više korisnika, to je stanje mrtve točke. To se može prevladati pomoću bilo kojeg od algoritama.

Prednosti

Prednosti mrtve točke su

  • U slučaju izbjegavanja mrtve točke ne uočava se nikakvo predukup
  • Bez odgađanja postupka

Mane

Nedostatak mrtve točke je

  • Resurs koji se koristi mora biti poznat unaprijed
  • Blokada procesa dugo vremena
  • Predkupni gubici se nasljeđuju.

Ovaj članak daje pregled pojave mrtve točke kada postoje dva ili više procesa i tri stanja koja su uzrok nastanka mrtve točke, te dvije vrste algoritama, naime algoritam dijeljenja resursa koji otkriva da postoji stanje mrtve točke i algoritam bankara koji je algoritam izbjegavanja mrtve točke. Evo pitanja 'Što će se dogoditi ako se zastoj zanemari?'.