Összehasonlító táblázat
Az összehasonlítás alapja | Holtpont | É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 állapot | A 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év | Körkörös várakozás. | Lifelock. |
Erőforrások | A 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és | A 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.
- 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
- 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.
- 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.
- A halottakat gyakran nevezik a körkörös várakozásnak, míg az éhezést Lived lock- nak hívják.
- 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.
- 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.