Livelock: Čo je, príklad, rozdiel od zablokovania

Obsah:

Anonim

Čo je Livelock?

Livelock je situácia, kedy je žiadosť o exkluzívny zámok poprel opakovane toľkokrát, prekrývajúce zdieľané zámky ďalej rušivých navzájom. Procesy neustále menia svoj stav, čo im ďalej bráni v dokončení úlohy. To im ďalej bráni v dokončení úlohy.

V tomto výučbe operačného systému sa dozviete:

  • Čo je Livelock?
  • Príklady Livelock
  • Čo vedie k funkcii Livelock?
  • Čo je to zablokovanie?
  • Príklad zablokovania
  • Čo je to hladovka?
  • Rozdiel medzi blokovaním, hladovaním a blokovaním

Príklady Livelock

Príklad 1:

Najjednoduchším príkladom Livelocku by boli dvaja ľudia, ktorí sa stretnú zoči-voči na chodbe a obaja sa pohnú stranou a nechajú druhého prejsť. Skončia sa pohybom zo strany na stranu bez toho, aby dosiahli akýkoľvek pokrok, pretože sa v danom čase pohybujú rovnako. Tu sa nikdy nekrižujú.

Príklad 2:

Na vyššie uvedenom obrázku môžete vidieť, že každý z dvoch uvedených procesov potrebuje dva zdroje a na získanie zámkov potrebných pre tieto účely sa používa primitívny dopytovací register. Ak pokus zlyhá, metóda funguje znova.

  1. Spracujte prostriedok pozastavenia Y
  2. Proces B obsahuje prostriedok X
  3. Proces A vyžaduje zdroj X.
  4. Proces B vyžaduje zdroj Y

Za predpokladu, že proces A beží najskôr a získava dátový zdroj X a potom proces B beží a získava zdroj Y, bez ohľadu na to, ktorý proces beží ako prvý, žiadny z nich ďalej nepokračuje.

Nebude však blokovaný ani jeden z týchto dvoch procesov. Využívajú zdroje CPU opakovane bez toho, aby došlo k nejakému pokroku, ale tiež zastavia akýkoľvek blok spracovania.

Preto táto situácia nie je zablokovaná, pretože nie je blokovaný jediný proces, ale čelíme situácii, ktorá sa rovná zablokovaniu, ktorým je LIVELOCK.

Čo vedie k funkcii Livelock?

Živý zámok nastáva, keď by celkový počet povolených procesov v konkrétnom systéme mal byť definovaný celkovým počtom záznamov v tabuľke procesov. Preto by sa sloty tabuľky procesov mali označovať ako konečné zdroje.

Čo je to zablokovanie?

Zablokovanie je situácia, ktorá nastane v OS, keď akýkoľvek proces prejde do stavu čakania, pretože požadovaný proces zadržiava iný čakajúci proces. Zablokovanie je bežným problémom pri viacnásobnom spracovaní, keď niekoľko procesov zdieľa konkrétny typ vzájomne sa vylučujúceho zdroja známy ako soft lock alebo softvér.

Príklad zablokovania

  • Reálnym príkladom by mohla byť doprava, ktorá ide iba jedným smerom.
  • Tu sa most považuje za zdroj.
  • Takže keď dôjde k zablokovaniu, dá sa to ľahko vyriešiť, ak jedno auto zálohuje (Preempt resources and rollback).
  • Ak dôjde k slepej uličke, možno bude treba zálohovať niekoľko automobilov.
  • Hladovka je teda možná.
Príklad zablokovania

Čo je to hladovka?

Hladovka je situácia, keď boli zablokované všetky procesy s nízkou prioritou a procesy s vysokou prioritou pokračujú. V každom systéme sa požiadavky na zdroje s vysokou / nízkou prioritou dejú dynamicky. Preto je potrebné určitú politiku rozhodnúť, kto kedy dostane podporu.

Pri použití niektorých algoritmov nemusí niektoré procesy dostať požadovanú obsluhu, aj keď nie sú zablokované. Hladomor nastane, keď niektoré vlákna spôsobia, že zdieľané zdroje nebudú na dlhšiu dobu k dispozícii.

Príklad hladovania:

Napríklad objekt ponúka synchronizovanú metódu, ktorej návrat bude pravdepodobne trvať dlho. Ak jedno vlákno používa túto metódu často, ďalšie vlákna, ktoré tiež potrebujú častý synchronizovaný prístup k rovnakému objektu, budú často blokované.

Rozdiel medzi blokovaním, hladovaním a blokovaním

  • Zablokovanie je situácia, ktorá nastane v OS, keď sa akýkoľvek proces dostane do stavu čakania, pretože požadovaný prostriedok je zadržaný iným čakajúcim procesom.
  • Livelock je na druhej strane takmer podobný zablokovaniu, až na to, že stavy procesov, ktoré sú súčasťou livelocku, sa stále navzájom menia a žiadny nepostupuje.
  • Livelock je teda jedinečný prípad hladovania zdrojov.

Zhrnutie:

  • Definícia: Livelock je situácia, keď je žiadosť o exkluzívny zámok opakovane zamietnutá, pretože veľa vzájomne sa prekrývajúcich zdieľaných zámkov si navzájom prekáža.
  • Živý zámok nastáva, keď by celkový počet povolených procesov v konkrétnom systéme mal byť definovaný celkovým počtom záznamov v tabuľke procesov
  • Zablokovanie je situácia, ktorá nastane v OS, keď akýkoľvek proces prejde do stavu čakania, pretože požadovaný proces zadržiava iný čakajúci proces.
  • Reálnym príkladom by mohla byť doprava, ktorá ide iba jedným smerom.
  • Príkladom Livelocka by mohli byť dvaja ľudia, ktorí sa stretnú zoči-voči na chodbe a obaja sa pohnú stranou a nechajú druhého prejsť.
  • Hladovka je situácia, keď boli zablokované všetky procesy s nízkou prioritou a procesy s vysokou prioritou pokračujú.