Što je Livelock?
Livelock je situacija u kojoj je zahtjev za ekskluzivni zaključavanje je odbijen u više navrata, kao i mnogi preklapaju dijeli brave zadržati na ometanja jedni druge. Procesi neprestano mijenjaju svoj status, što ih dalje sprječava da izvrše zadatak. To ih dalje sprječava da izvrše zadatak.
U ovom vodiču za operativni sustav naučit ćete:
- Što je Livelock?
- Primjeri Livelocka
- Što dovodi do Livelock-a?
- Što je Deadlock?
- Primjer mrtve točke
- Što je izgladnjivanje?
- Razlika između mrtve točke, gladi i blokade uživo
Primjeri Livelocka
Primjer 1:
Najlakši primjer Livelocka bilo bi dvoje ljudi koji se sretnu licem u lice u hodniku, a obojica se pomaknu u stranu da puste drugu. Na kraju se kreću s jedne strane na drugu bez ikakvog napretka jer se u isto vrijeme kreću na isti način. Ovdje se nikad ne križaju.
Primjer 2:
Možete vidjeti na gornjoj slici, svakom od dva zadana procesa potrebna su dva resursa, a oni koriste primitivni registar za upisivanje kako bi pokušali dobiti zaključavanja potrebna za njih. Ako pokušaj ne uspije, metoda ponovno radi.
- Obradite resurs Y hold Y
- Proces B sadrži resurs X
- Proces A zahtijeva X resurs
- Proces B zahtijeva Y resurs
Pod pretpostavkom da se postupak A prvo izvodi i pribavlja resurs podataka X, a zatim se postupak B izvodi i pribavlja resurs Y, bez obzira koji se proces prvi pokrene, niti jedan od njih ne napreduje.
Međutim, niti jedan od dva procesa nije blokiran. Oni više puta koriste CPU resurse bez ikakvog napretka, ali također zaustavljaju bilo koji blok obrade.
Stoga ova situacija nije zastoj jer nema niti jednog postupka koji je blokiran, već se suočavamo sa situacijom koja je jednaka zastoju, a to je LIVELOCK.
Što dovodi do Livelock-a?
Do zaključavanja uživo dolazi kada ukupni broj dopuštenih procesa u određenom sustavu treba definirati ukupnim brojem unosa u tablici procesa. Stoga bi se slotovi tablice procesa trebali nazivati konačnim resursima.
Što je Deadlock?
Zastoj je situacija koja se događa u OS-u kada bilo koji proces uđe u stanje čekanja jer drugi postupak čekanja drži traženi resurs. Zastoj je čest problem u višestrukoj obradi gdje nekoliko procesa dijeli određenu vrstu međusobno isključivih resursa poznatih kao soft lock ili softver.
Primjer mrtve točke
- Primjer u stvarnom svijetu bio bi promet koji ide samo u jednom smjeru.
- Ovdje se most smatra resursom.
- Dakle, kad se dogodi Deadlock, to se lako može riješiti ako jedan automobil napravi sigurnosnu kopiju (sprečavanje resursa i povrat).
- Možda će se trebati napraviti sigurnosna kopija nekoliko automobila ako se dogodi zastoj.
- Dakle, izgladnjivanje je moguće.
Što je izgladnjivanje?
Izgladnjivanje je situacija u kojoj su blokirani svi procesi niskog prioriteta, a procesi visokog prioriteta nastavljaju se. U bilo kojem sustavu zahtjevi za resursima visokog / niskog prioriteta nastavljaju se dinamički događati. Stoga su potrebne neke politike kako bi se odlučilo tko će kad dobiti podršku.
Koristeći neke algoritme, neki procesi možda neće dobiti željeni servis, iako nisu u mrtvoj točki. Izgladnjivanje se događa kad neke niti dulje vrijeme čine dostupne dijeljene resurse nedostupnima.
Primjer gladi:
Na primjer, objekt nudi sinkroniziranu metodu kojoj će vjerojatno trebati puno vremena da se vrati. Ako jedna nit često koristi ovu metodu, druge niti koje također trebaju česti sinkronizirani pristup istom objektu često će biti blokirane.
Razlika između mrtve točke, gladi i blokade uživo
- Zastoj je situacija koja se događa u OS-u kada bilo koji proces uđe u stanje čekanja jer se traženi resurs zadržava u drugom procesu čekanja.
- S druge strane, livelock je gotovo sličan mrtvoj točki, osim što se stanja procesa koji su uključeni u livelock neprestano mijenjaju, a nijedno ne napreduje.
- Dakle, Livelock je jedinstveni slučaj gladovanja resursima.
Sažetak:
- Definicija: Livelock je situacija u kojoj se zahtjev za ekskluzivnom bravom više puta odbija, jer se mnoge preklapajuće zajedničke brave i dalje međusobno ometaju.
- Do zaključavanja uživo dolazi kada ukupni broj dopuštenih procesa u određenom sustavu treba definirati ukupnim brojem unosa u tablici procesa
- Zastoj je situacija koja se događa u OS-u kada bilo koji proces uđe u stanje čekanja jer drugi postupak čekanja drži traženi resurs.
- Primjer u stvarnom svijetu bio bi promet koji ide samo u jednom smjeru.
- Primjer Livelocka bila bi dvoje ljudi koji se sretnu licem u lice u hodniku, a obojica se pomaknu u stranu da puste drugu.
- Izgladnjivanje je situacija u kojoj su blokirani svi procesi niskog prioriteta, a procesi visokog prioriteta nastavljaju se.