Livelock: Mi az, példa, különbség a holtponttal
⚡ Okos összefoglaló
A Livelock egy olyan párhuzamos működési szituáció, amelyben a folyamatok egymásra reagálva folyamatosan változtatják állapotukat, mégis valódi előrelépést nem tesznek, aktívak maradnak és CPU-ciklusokat fogyasztanak anélkül, hogy valaha is befejeznék a feladataikat, vagy blokkolódnának.

Mi az a Livelock?
A Livelock olyan helyzet, amikor a kizárólagos zárolásra vonatkozó kérést ismételten elutasítják, mivel sok átfedés van.ping A megosztott zárak folyamatosan zavarják egymást. A folyamatok állapota folyamatosan változik, ami megakadályozza őket a feladat végrehajtásában.
Példák a Livelockra
Példa 1:
A Livelock legegyszerűbb példája két ember esete, akik szemtől szemben találkoznak egy folyosón, és mindketten félreállnak, hogy a másik elhaladhasson. Folyamatosan ide-oda mozognak anélkül, hogy előrehaladnának, mert egyszerre ugyanabba az irányba haladnak. Itt soha nem keresztezik egymást.
Példa 2:
A fenti képen mindkét folyamatnak két erőforrásra van szüksége, és primitív lekérdezést használnak a szükséges zárak beszerzéséhez. Ha egy kísérlet sikertelen, a metódus újra próbálkozik.
- Az A folyamat az Y erőforrást tárolja
- A B folyamat az X erőforrást tartalmazza
- Az A folyamathoz X erőforrás szükséges
- A B folyamat Y erőforrást igényel
Tegyük fel, hogy az A folyamat először lefut és megszerzi az X erőforrást, majd a B folyamat lefut és megszerzi az Y erőforrást. Bármelyik folyamat fut le először, egyik sem halad tovább.
Azonban egyik folyamat sincs blokkolva. Újra és újra felhasználják a CPU-erőforrásokat anélkül, hogy bármilyen előrelépést tennének, mégis soha nem állnak meg egy feldolgozási blokk miatt.
Ezért ez a helyzet nem egy holtpont, mivel egyetlen folyamat sincs blokkolva; ehelyett egy patthelyzettel egyenértékű helyzettel szembesülünk, amelyet LIVELOCK-nak nevezünk.
Mi vezet a Livelockhoz?
Az élő zárolás (livelock) a rendszer által engedélyezett folyamatok számához kötött, amelyet a folyamattábla bejegyzéseinek teljes száma határoz meg. Ezeket a folyamattábla-helyeket ezért véges erőforrásoknak tekintjük. Amikor a folyamatok ismételten megpróbálkoznak ezen korlátozott erőforrások elérésével, miközben folyamatosan átadják az időt egymásnak, egyikük sem halad előre, és a rendszer élő zárolásba kerül.
Mi az a holtpont?
A holtpont egy olyan helyzet, amely egy operációs rendszerben akkor fordul elő, amikor egy folyamat várakozó állapotba kerül, mert egy másik várakozó folyamat birtokolja a kért erőforrást. A holtpont (deadlock) gyakori probléma a többfeldolgozásos folyamatokban, ahol több folyamat egy bizonyos típusú, kölcsönösen kizáró erőforrást oszt meg, amelyet szoftveres zárnak vagy szoftveres zárnak neveznek.
Példa a holtpontra
- Egy valós példa erre az a forgalom, amely csak egy irányba halad.
- Itt a híd erőforrásnak számít.
- Amikor patthelyzet adódik, könnyen megoldható, ha egy autó tolat (előveszi az erőforrásokat és visszagurul).
- Előfordulhat, hogy több autót is tolatni kell, ha holtpont áll fenn.
- Ezért lehetséges az éhezés.
Példa a holtpontra
Mi az az éhezés?
Az erőforrás-éhezés olyan helyzet, amikor az alacsony prioritású folyamatok blokkolva vannak, miközben a magas prioritású folyamatok folytatódnak. Bármely rendszerben dinamikusan érkeznek kérések a magas és alacsony prioritású erőforrásokra. Ezért valamilyen szabályzatra van szükség annak eldöntéséhez, hogy kit és mikor szolgálnak ki.
Bizonyos algoritmusok esetén bizonyos folyamatok nem kapják meg a kívánt szolgáltatást, még akkor sem, ha nincsenek holtponton. Az erőforrás-éhezés akkor következik be, amikor egyes szálak hosszú időre elérhetetlenné teszik a megosztott erőforrásokat.
Példa az éhezésre
Például egy objektum egy szinkronizált metódust kínál, amelynek a visszaadása valószínűleg hosszú időt vesz igénybe. Ha egy szál gyakran használja ezt a metódust, akkor más szálak, amelyeknek szintén gyakori szinkronizált hozzáférésre van szükségük ugyanahhoz az objektumhoz, gyakran blokkolva lesznek.
Különbség a holtpont, az éhezés és a Livelock között
- A holtpont egy olyan helyzet egy operációs rendszerben, amely akkor fordul elő, amikor egy folyamat várakozó állapotba kerül, mert a kért erőforrást egy másik várakozó folyamat birtokolja.
- Egy élő zár ezzel szemben majdnem olyan, mint egy holtpont, azzal a különbséggel, hogy az élő zárban részt vevő folyamatok állapotai folyamatosan változnak egymásra reagálva, és egyik sem halad előre.
- Tehát az élőhely-elvonás az erőforrás-hiány egyedülálló esete.


