Livelock: Co je, příklad, rozdíl s zablokováním

Obsah:

Anonim

Co je Livelock?

Livelock je situace, kdy je žádost o exkluzivní zámek popřel opakovaně tolikrát, překrývající sdílené zámky dál rušivých navzájem. Procesy neustále mění svůj stav, což jim dále brání v dokončení úkolu. To jim dále brání v dokončení úkolu.

V tomto kurzu operačního systému se naučíte:

  • Co je Livelock?
  • Příklady Livelock
  • Co vede k Livelocku?
  • Co je zablokování?
  • Příklad zablokování
  • Co je to hladovění?
  • Rozdíl mezi zablokováním, hladem a živým blokováním

Příklady Livelock

Příklad 1:

Nejjednodušším příkladem Livelocka by byli dva lidé, kteří se potkali tváří v tvář na chodbě, a oba se vzdálili stranou, aby toho druhého nechali projít. Nakonec se pohybují ze strany na stranu, aniž by udělali jakýkoli pokrok, protože se pohybují stejným způsobem v té době. Tady se nikdy nepřekračují.

Příklad 2:

Na výše uvedeném obrázku vidíte, že každý ze dvou daných procesů potřebuje dva prostředky a ony se pomocí primitivního dotazovacího registru zadávání pokusí získat zámky, které jsou pro ně nezbytné. Pokud pokus selže, metoda funguje znovu.

  1. Zpracovat prostředek zadržení Y
  2. Proces B obsahuje prostředek X
  3. Proces A vyžaduje zdroj X.
  4. Proces B vyžaduje zdroj Y.

Za předpokladu, že proces A běží nejprve a získá datový zdroj X a poté proces B běží a získá zdroj Y, bez ohledu na to, který proces běží jako první, žádný z nich dále nepostupuje.

Žádný z těchto dvou procesů však není blokován. Využívají zdroje CPU opakovaně, aniž by došlo k jakémukoli pokroku, ale také zastaví jakýkoli blok zpracování.

Tato situace tedy není situace zablokování, protože neexistuje jediný proces, který je blokován, ale čelíme situaci, která je ekvivalentem zablokování, což je LIVELOCK.

Co vede k Livelocku?

K živému zámku dochází, když by měl být celkový počet povolených procesů v konkrétním systému definován celkovým počtem položek v tabulce procesů. Proto by sloty tabulky procesů měly být označovány jako konečné zdroje.

Co je zablokování?

Zablokování je situace, ke které v OS dojde, když jakýkoli proces přejde do stavu čekání, protože požadovaný proces drží jiný čekající proces. Zablokování je běžným problémem při vícenásobném zpracování, kdy několik procesů sdílí konkrétní typ vzájemně se vylučujícího prostředku známý jako softwarový zámek nebo software.

Příklad zablokování

  • Příkladem v reálném světě by byl provoz, který jde pouze jedním směrem.
  • Zde je most považován za zdroj.
  • Když tedy dojde k zablokování, lze jej snadno vyřešit, pokud jedno auto zálohuje (Preempt resources and rollback).
  • V případě zablokování může být nutné zálohovat několik automobilů.
  • Takže hlad je možný.
Příklad zablokování

Co je to hladovění?

Hladovění je situace, kdy byly blokovány všechny procesy s nízkou prioritou a procesy s vysokou prioritou pokračují. V každém systému se požadavky na zdroje s vysokou / nízkou prioritou dějí dynamicky. Některé politiky proto vyžadují rozhodnutí, kdo kdy dostane podporu.

Pomocí některých algoritmů nemusí některé procesy získat požadovanou obsluhu, i když nejsou zablokované. Hladovění nastane, když některá vlákna způsobí, že sdílené zdroje nebudou po dlouhou dobu k dispozici.

Příklad hladovění:

Například objekt nabízí synchronizovanou metodu, jejíž návrat bude pravděpodobně trvat dlouho. Pokud jedno vlákno používá tuto metodu často, ostatní vlákna, která také potřebují častý synchronizovaný přístup ke stejnému objektu, budou často blokována.

Rozdíl mezi zablokováním, hladem a živým blokováním

  • Zablokování je situace, ke které dochází v OS, když se jakýkoli proces dostane do stavu čekání, protože požadovaný prostředek je zadržen jiným procesem čekání.
  • Livelock je na druhé straně téměř podobný zablokování, až na to, že stavy procesů, které jsou zapojeny do livelocku, se stále navzájem mění a žádný nepostupuje.
  • Livelock je tedy jedinečný případ hladovění zdrojů.

Souhrn:

  • Definice: Livelock je situace, kdy je požadavek na exkluzivní zámek opakovaně zamítnut, protože mnoho překrývajících se sdílených zámků se navzájem ruší.
  • K živému zámku dochází, když by měl být celkový počet povolených procesů v konkrétním systému definován celkovým počtem položek v tabulce procesů
  • Zablokování je situace, ke které v OS dojde, když jakýkoli proces přejde do stavu čekání, protože požadovaný proces drží jiný čekající proces.
  • Příkladem v reálném světě by byl provoz, který jde pouze jedním směrem.
  • Příkladem Livelocka by byli dva lidé, kteří se setkali tváří v tvář na chodbě, a oba se pohnuli stranou a nechali toho druhého projít.
  • Hladovění je situace, kdy byly blokovány všechny procesy s nízkou prioritou a procesy s vysokou prioritou pokračují.