Livelock: Mi az, példa, különbség a holtponttal

Mi az a Livelock?

A Livelock Ez egy olyan helyzet, amikor a kizárólagos zárolás iránti kérelmet ismételten elutasítják, mivel sok átfedő megosztott zár továbbra is zavarja egymást. A folyamatok folyamatosan változtatják állapotukat, ami tovább akadályozza őket a feladat elvégzésében. Ez tovább akadályozza őket a feladat elvégzésében.

Példák a Livelockra

Példa 1:

A Livelock legegyszerűbb példája az lenne, ha két ember szemtől szembe találkozik egy folyosón, és mindketten félrevonulnak, hogy átengedjék a másikat. Végül egyik oldalról a másikra mozognak anélkül, hogy bármiféle előrelépést tennének, mivel akkoriban ugyanúgy mozognak. Itt soha nem tesznek keresztbe egymásnak.

Példa 2:

Példák a Livelockra

A fenti képen látható, hogy a két adott folyamatnak két-két erőforrásra van szüksége, és a primitív polling enter registry segítségével próbálják megszerezni a számukra szükséges zárakat. Ha a kísérlet sikertelen, a módszer újra működik.

  1. Az A folyamat tartási Y erőforrása
  2. A B folyamat az X erőforrást tartalmazza
  3. Az A folyamat X erőforrást igényel
  4. A B folyamat Y erőforrást igényel

Feltételezve, hogy az A folyamat fut le először, és beszerzi az X adaterőforrást, majd a B folyamat lefut és beszerzi az Y erőforrást, függetlenül attól, hogy melyik folyamat fut először, egyik sem halad tovább.

Azonban a két folyamat egyike sincs blokkolva. A CPU erőforrásokat ismételten felhasználják anélkül, hogy bármiféle előrelépés történt volna, de leállítanak minden feldolgozási blokkot.

Ezért ez a helyzet nem az a holtpont mert nincs egyetlen folyamat sem blokkolva, hanem a holtponttal egyenértékű helyzettel nézünk szembe, ami a LIVELOCK.

Mi vezet a Livelockhoz?

Élő zárolás akkor fordul elő, ha egy adott rendszerben az engedélyezett folyamatok teljes számát a folyamattábla bejegyzéseinek teljes számával kell meghatározni. Ezért a folyamattábla-helyeket véges erőforrásoknak kell nevezni.

Mi az a holtpont?

A holtpont egy olyan helyzet, amely akkor fordul elő az operációs rendszerben, amikor bármely folyamat várakozási állapotba kerül, mert egy másik várakozási folyamat tartja a keresett erőforrást. A holtpont gyakori probléma a többfeldolgozásban, ahol több folyamat egy meghatározott típusú, egymást kölcsönösen kizáró erőforráson osztozik, amelyet soft locknak ​​vagy szoftvernek neveznek.

Példa a holtpontra

  • Valós példa erre a forgalom, amely csak egy irányba halad.
  • Itt a híd erőforrásnak számít.
  • Tehát, amikor a holtpont megtörténik, könnyen megoldható, ha az egyik autó visszaáll (erőforrások előzése és visszaállítása).
  • Előfordulhat, hogy több autót is tolatni kell, ha holtpont áll fenn.
  • Tehát az éhezés lehetséges.
Példa a holtpontra
Példa a holtpontra

Mi az az éhezés?

Az éhezés egy olyan helyzet, amikor az összes alacsony prioritású folyamat leblokkol, és a magas prioritású folyamatok folytatódnak. Bármely rendszerben a magas/alacsony prioritású erőforrásokra vonatkozó kérések továbbra is dinamikusan történnek. Ezért bizonyos irányelvekre van szükség annak eldöntéséhez, hogy 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, még akkor is, ha nincsenek holtponton. Az éhezés akkor következik be, amikor egyes szálak a megosztott erőforrásokat hosszú ideig elérhetetlenné teszik.

Példa az éhezésre

Például egy objektum szinkronizált metódust kínál, amelynek visszatérése valószínűleg hosszú ideig tart. Ha az egyik szál gyakran használja ezt a módszert, a többi szál, amelyeknek szintén gyakori szinkronizálásra 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, amely akkor fordul elő az operációs rendszerben, amikor bármely folyamat várakozó állapotba kerül, mert az igényelt erőforrást egy másik várakozási folyamat tartja.
  • Az éles zárolás viszont szinte hasonló a holtponthoz, azzal a különbséggel, hogy az éles zárolásban részt vevő folyamatok állapotai folyamatosan változnak egymáson, egyik sem halad előre.
  • Tehát a Livelock az erőforrás-éhezés egyedi esete.

Összegzésként

  • Definíció: A Livelock egy olyan helyzet, amikor a kizárólagos zárolásra vonatkozó kérelmet ismételten elutasítják, mivel sok egymást átfedő megosztott zárolás folyamatosan zavarja egymást.
  • Élő zárolás akkor fordul elő, ha egy adott rendszerben az engedélyezett folyamatok teljes számát a folyamattábla bejegyzéseinek teljes számával kell meghatározni.
  • A holtpont egy olyan helyzet, amely akkor fordul elő az operációs rendszerben, amikor bármely folyamat várakozási állapotba kerül, mert egy másik várakozási folyamat tartja a keresett erőforrást.
  • Valós példa erre a forgalom, amely csak egy irányba halad.
  • A Livelock példája két ember, akik szemtől szembe találkoznak egy folyosón, és mindketten félrevonulnak, hogy átengedjék a másikat.
  • Az éhezés egy olyan helyzet, amikor az összes alacsony prioritású folyamat leblokkol, és a magas prioritású folyamatok folytatódnak.