Ajánlott, 2024

Szerkesztő Választása

Különbség a Deadlock és az éhezés között az operációs rendszerben

A holtpont és az éhezés mind olyan feltételek, amikor az erőforrást igénylő folyamatok hosszú ideig késleltetve vannak. Bár a holtpont és az éhezés mindketten különböznek egymástól sok szempontból. A letiltás olyan állapot, ahol a folyamat nem folytatódik a végrehajtásra, és mindegyik olyan erőforrásokra vár, amelyeket a többi folyamat szerzett. Másrészt az éhezés során a kiemelt prioritású folyamatok folyamatosan használják az erőforrások megszerzését megakadályozó erőforrásokat. Az alábbiakban bemutatott összehasonlító táblázat segítségével vitassuk meg a holtpont és az éhezés közötti további különbségeket.

Összehasonlító táblázat

Az összehasonlítás alapjaHoltpontÉhezés
AlapvetőA letiltás az, ahol nem folyik folyamat, és blokkolva van.Az éhezés az, ahol az alacsony prioritású folyamatok blokkolódnak, és a magas prioritású folyamat folytatódik.
Feltételes állapotA kölcsönös kizárás előfordulása, tartás és várakozás, nincs előzetes és körkörös várakozás egyszerre.A prioritások végrehajtása, ellenőrizetlen erőforrás-gazdálkodás.
Másik névKörkörös várakozás.Lifelock.
ErőforrásokA holtpontban a kért erőforrásokat a többi folyamat blokkolja.Az éhezés során a kiemelt folyamatok folyamatosan igénybe veszik a kért erőforrásokat.
MegelőzésA kölcsönös kirekesztés elkerülése, várakozás és várakozás, körkörös várakozás és előzetes engedélyezés.Öregedés.

A Deadlock meghatározása

A késleltetés olyan helyzet, amikor a CPU számos folyamata versenyez a CPU-n belül rendelkezésre álló erőforrások véges számáért. Itt mindegyik folyamat erőforrást tartalmaz, és várakozik arra, hogy olyan erőforrást szerezzen, amelyet más folyamat tart. Minden folyamat körkörös módon várja az erőforrásokat. Az alábbi képen látható, hogy a P1 folyamat megszerezte az R2 erőforrást, amelyet a P2 eljárás követel meg, és a P1 folyamat az R1 erőforrást kéri, amelyet ismét az R2 tart. Tehát a P1 és P2 folyamat holtpontot képez.

A letiltás gyakori probléma a többprocesszoros operációs rendszerek, az elosztott rendszerek és a párhuzamos számítástechnikai rendszerek esetében. Négy feltételnek kell egyidejűleg előfordulnia, hogy felemelje a holtpont állapotát, amely kölcsönös kizárás, tartás és várakozás, nincs előfeltétel és körkörös várakozás.

  • Kölcsönös kizárás: csak egy folyamat egyszerre használhatja az erőforrást, ha más folyamat ugyanezt az erőforrást kéri, meg kell várnia, amíg az erőforrást használó folyamat elengedi azt.
  • Tartás és várakozás: A folyamatnak erőforrást kell tartania, és egy másik erőforrás megszerzésére várnia kell.
  • Nincs előfeltétel: Az erőforrásokat tartó folyamatot nem lehet előfeltételezni. Az erőforrást tartó folyamatnak önként kell kiadnia az erőforrást, amikor befejezte a feladatot.
  • Körkörös várakozás: A folyamatnak körkörös módon kell várnia az erőforrásokat. Tegyük fel, hogy három folyamatunk van {P0, P1, P2}. A P0-nak meg kell várnia a P1 által tartott erőforrást; A P1-nek meg kell várnia, hogy megszerezze a P2 folyamat által tartott erőforrást, és a P2-nek meg kell várnia a P0 által tartott folyamat megszerzését.

Bár vannak olyan alkalmazások, amelyek észlelhetik a holtpontra jutó programokat. Az operációs rendszer azonban soha nem felelős a zárak megakadályozásáért. A programozók feladata a holtpontmentes programok megtervezése. Ezt úgy lehet megtenni, hogy elkerüljük a fenti feltételeket, amelyek szükségesek a holtpont előfordulásához

Az éhezés meghatározása

Az éhezés úgy definiálható, mintha egy erőforrás és az erőforrás folyamatkérelmét a többi folyamat folyamatosan használná, akkor a megkereső folyamat éhezésnek van kitéve. Az éhezésnél a végrehajtásra kész folyamat arra vár, hogy a CPU hozzárendelje az erőforrást. A folyamatnak azonban határozatlan időre kell várnia, mivel a többi folyamat folyamatosan blokkolja a kért erőforrásokat.

Az éhezés problémája általában a prioritási ütemezési algoritmusban fordul elő. Az elsőbbségi ütemezési algoritmusban a magasabb prioritású folyamatot mindig az erőforrás hozzárendeli, megakadályozva az alacsonyabb prioritású folyamatot a kért erőforrás megszerzésétől.

Az öregedés megoldhatja az éhezés problémáját. Az öregedés fokozatosan növeli annak a folyamatnak a prioritását, amely hosszú ideig várta az erőforrásokat. Az öregedés megakadályozza, hogy az alacsony prioritású folyamat határozatlan időre várjon egy erőforrás számára.

Kulcsfontosságú különbségek a Deadlock és az éhezés között az OS-ben

  1. Holtponton belül egyik folyamat sem hajtódik végre a végrehajtásra, minden folyamat blokkolva várja a másik folyamat által szerzett erőforrásokat. Másrészt az éhezés olyan állapot, ahol a magasabb prioritású folyamatok lehetővé teszik az erőforrások folyamatos megszerzését azáltal, hogy megakadályozzák az alacsony prioritású folyamatok olyan erőforrások megszerzését, amelyek az alacsony prioritású folyamatok végtelen blokkolását eredményezik.
  2. A zárójel akkor jelentkezik, ha négy feltétel kölcsönös kizárás, várakozás és várakozás, nincs elővétel, és a körkörös várakozás egyszerre történik. Az éhezés azonban akkor fordul elő, amikor a folyamatok prioritásait erőforrások kiosztása során hajtották végre, vagy a rendszerben nincs ellenőrzött erőforrás-gazdálkodás.
  3. A halottakat gyakran nevezik a körkörös várakozásnak, míg az éhezést Lived lock- nak hívják.
  4. A Deadlock-ban az erőforrásokat a folyamat blokkolja, míg az éhezés során a folyamatokat folyamatosan a magas prioritású folyamatok használják.
  5. A holtpontot megakadályozhatja az olyan feltételek elkerülése, mint a kölcsönös kirekesztés, tartás és várakozás, körkörös várakozás és azáltal, hogy lehetővé teszik, hogy az erőforrásokat hosszú ideig tartó folyamatok megelőlegezzenek. Másrészről az éhezés megelőzhető az öregedéssel .

Következtetés:

Mind a Deadlock, mind az éhezés késlelteti a folyamat végrehajtását a blokkolással. Egyrészt, ahol a patthelyzet éhezést okozhat, másrészről az éhezés a folyamatból kikerülhet a holtpontból.

Top