Mi a Livelock?
A Livelock olyan helyzet, amikor az exkluzív zár kérését többször elutasítják, mivel sok átfedésben lévő megosztott zár folyamatosan zavarja egymást. A folyamatok folyamatosan változtatják állapotukat, ami tovább akadályozza őket a feladat végrehajtásában. Ez tovább akadályozza őket a feladat végrehajtásában.
Ebben az operációs rendszer bemutatóban megtudhatja:
- Mi a Livelock?
- Példák Livelockra
- Mi vezet a Livelockhoz?
- Mi az a holtpont?
- Példa a holtpontra
- Mi az éhezés?
- Különbség a holtpont, az éhezés és a Livelock között
Példák Livelockra
1. példa:
A Livelock legegyszerűbb példája két olyan ember lenne, akik négyszemközt találkoznak egy folyosón, és mindketten félrelépnek, hogy elengedjék a másikat. Végül egyik oldalról a másikra haladnak, anélkül, hogy bármilyen előrelépést végeznének, amikor ugyanúgy haladnak abban az időben. Itt soha nem keresztezik egymást.
2. példa:
A fenti képen látható, hogy a két adott folyamatnak mindegyikéhez két erőforrás szükséges, és a primitív polling enter nyilvántartás segítségével megpróbálják megszerezni a számukra szükséges zárakat. Ha a kísérlet nem sikerül, a módszer újra működik.
- Folyamat A visszatartás Y erőforrás
- A B folyamat tartalmazza az X erőforrást
- Az A folyamat X erőforrást igényel
- A B folyamat Y erőforrást igényel
Feltételezve, hogy az A folyamat először fut, és megszerzi az X adatforrást, majd a B folyamat fut és megszerzi az Y erőforrást, függetlenül attól, hogy melyik folyamat fut először, egyik sem halad tovább.
A két folyamat egyikét sem blokkolják. Ismételten felhasználják a CPU erőforrásait, anélkül, hogy bármilyen előrelépés történne, de leállítanak minden feldolgozási blokkot.
Ezért ez a helyzet nem holtpont, mert nincs egyetlen folyamat sem blokkolva, de a holtponttal egyenértékű szituációval szembesülünk, ami az ÉLŐZÁR.
Mi vezet a Livelockhoz?
Livelock akkor fordul elő, ha egy adott rendszerben az összes megengedett folyamatot meg kell határozni a folyamattáblázat összes bejegyzésének számával. Ezért a folyamattábla-helyeket véges erőforrásoknak kell nevezni.
Mi az a holtpont?
A holtpont az a helyzet, amely akkor fordul elő az operációs rendszerben, amikor bármely folyamat várakozási állapotba lép, mert egy másik várakozási folyamat tartja a kért erőforrást. A holtpont gyakori probléma a többszörös feldolgozásban, ahol több folyamat osztozik egy bizonyos típusú, egymást kizáró erőforrásban, amelyet soft lockként vagy szoftverként ismerünk.
Példa a holtpontra
- Valódi példa lenne a forgalom, amely csak egy irányba halad.
- Itt a hidat erőforrásnak tekintik.
- Tehát, amikor a holtpont bekövetkezik, könnyen megoldható, ha az egyik autó biztonsági mentést hajt végre (megelőzze az erőforrásokat és a visszagörgetést).
- Előfordulhat, hogy holtpont esetén több autót kell támogatni.
- Tehát éhezés lehetséges.
Mi az éhezés?
Az éhezés olyan helyzet, amikor az alacsony prioritású folyamatokat blokkolták, és a magas prioritású folyamatok folytatódtak. Bármely rendszerben a magas / alacsony prioritású erőforrások iránti kérelmek dinamikusan zajlanak. Ezért bizonyos politikákra van szükség ahhoz, hogy eldöntsék, ki mikor kap támogatást.
Egyes algoritmusok használatával előfordulhat, hogy egyes folyamatok nem kapják meg a kívánt szervizelést, annak ellenére, hogy nincsenek holtpontban. Az éhezés akkor fordul elő, amikor egyes szálak miatt a megosztott erőforrások hosszú ideig nem állnak rendelkezésre.
Példa az éhezésre:
Például egy objektum egy szinkronizált módszert kínál, amelynek visszatérése valószínűleg hosszú ideig tart. Ha egy szál gyakran használja ezt a módszert, akkor más szálak is blokkolásra kerülnek, amelyek szintén gyakran szinkronizált hozzáférést igényelnek ugyanahhoz az objektumhoz.
Különbség a holtpont, az éhezés és a Livelock között
- A holtpont az a helyzet, amely akkor fordul elő az operációs rendszerben, amikor bármely folyamat várakozási állapotba lép, mert a kért erőforrást egy másik várakozási folyamat tartja.
- A megélhetés viszont majdnem hasonló a holtponthoz, azzal a különbséggel, hogy az elevenben részt vevő folyamatok állapota mindig változik, és egyik sem halad.
- Tehát a Livelock az erőforrások éhezésének egyedülálló esete.
Összegzés:
- Meghatározás: A Livelock olyan helyzet, amikor az exkluzív zár kérését ismételten elutasítják, mivel sok átfedésben lévő megosztott zár folyamatosan zavarja egymást.
- Livelock akkor fordul elő, ha egy adott rendszerben az összes megengedett folyamatot meg kell határozni a folyamattáblázat összes bejegyzésének számával
- A holtpont az a helyzet, amely akkor fordul elő az operációs rendszerben, amikor bármely folyamat várakozási állapotba lép, mert egy másik várakozási folyamat tartja a kért erőforrást.
- Valódi példa lenne a forgalom, amely csak egy irányba halad.
- Livelockra példa lehet két ember, akik négyszemközt találkoznak egy folyosón, és mindketten félre mozdulnak, hogy elengedjék a másikat.
- Az éhezés olyan helyzet, amikor az alacsony prioritású folyamatokat blokkolták, és a magas prioritású folyamatok folytatódtak.