Patthelyzet Operatingrendszer: Mi az, körkörös várakozás (példák)
⚡ Okos összefoglaló
Egy operációs rendszerben patthelyzet akkor következik be, amikor egy folyamatcsoport blokkolva van, mivel mindegyik egy erőforrást tart fenn, és egy másikra vár, amelyet egy másik folyamat tart fenn, így egy körkörös láncot hozva létre, ahol egyetlen folyamat sem tud továbbhaladni.
Mi az a holtpont?
Holtpont egy olyan helyzet, amely egy operációs rendszer amikor egy folyamat várakozó állapotba kerül, mert egy másik várakozó folyamat birtokolja a kért erőforrást. A holtpont gyakori probléma a többfeldolgozásos folyamatokban, ahol több folyamat oszt meg egy bizonyos típusú, kölcsönösen kizáró erőforrást, amelyet szoftveres zárnak vagy szoftveres zárnak neveznek.
Holtpont bekövetkeztekor az érintett folyamatok egyike sem folytatható, így az érintett munka leáll, amíg az operációs rendszer be nem avatkozik.
Példa a holtpontra
- Egy valós példa erre az a forgalom, amely csak egy irányba halad.
- Itt a híd erőforrásnak számít.
- Tehát, amikor patthelyzet történik, azt úgy lehet megoldani, hogy az egyik autó tolat (előveszi az erőforrásokat és visszagurul).
- 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
Mi az a körkörös várakozás?
Az egyik folyamat egy olyan erőforrásra vár, amelyet egy második folyamat tart fenn, amely szintén egy harmadik folyamat által birtokolt erőforrásra vár, és így tovább. Ez addig folytatódik, amíg az utolsó folyamat az első folyamat által birtokolt erőforrásra nem vár. Ez egy körkörös láncot hoz létre.
Például az A folyamathoz a B erőforrást rendelik hozzá, miközben az A erőforrást kéri. Ugyanígy a B folyamathoz az A erőforrást rendelik hozzá, miközben a B erőforrást kéri. Ez egy körkörös várakozási hurkot hoz létre.
Példa a körkörös várakozásra
Például egy számítógépnek három USB-meghajtója és három folyamata van. Mindhárom folyamat egy-egy USB-meghajtót tart fenn. Tehát, amikor mindegyik folyamat egy másik meghajtót kér, a három folyamat patthelyzetbe kerül, mivel mindegyik egy használatban lévő USB-meghajtó feloldására vár. Ez egy körkörös láncot eredményez.
Körkörös várakozás példa
Holtpont-észlelés az operációs rendszerben
A holtpont előfordulását az erőforrás-ütemező képes észlelni. Az erőforrás-ütemező segít az operációs rendszernek a következők fenntartásában: track az összes olyan erőforrás, amelyek különböző folyamatokhoz vannak lefoglalva. A holtpont észlelése után az feloldható erőforrások idő előtti lefoglalásával, egy folyamat visszagörgetésével, vagy egy vagy több holtpontra jutott folyamat leállításával.
Holtpont megelőzése az operációs rendszerben
Fontos megelőzni a patthelyzetet, mielőtt az bekövetkezne. A rendszer minden tranzakciót ellenőrz a végrehajtás előtt, hogy megbizonyosodjon arról, hogy az nem vezet patthelyzethez. Még egy olyan kis műveletet sem szabad végrehajtani, amely a jövőben patthelyzetet okozhat.
A holtpont-megelőzés olyan módszerek összessége, amelyek biztosítják, hogy a négy szükséges feltétel közül legalább egy ne teljesüljön.
Nincs előjog
Egy erőforrást csak az azt tartalmazó folyamat szabadíthat fel önkéntesen, miután befejezte a feladatát.
- Ha egy folyamat, amely bizonyos erőforrásokat birtokol, egy másik, számára azonnal lefoglalható erőforrást kér, akkor az összes erőforrása felszabadul.
- Az előre lefoglalt erőforrások hozzáadódnak azon erőforrások listájához, amelyekre a folyamat vár.
- A folyamat csak akkor indul újra, ha vissza tudja szerezni a régi erőforrásait, valamint a kért új erőforrásokat is.
Kölcsönös kizárás
A kölcsönös kizárás a Mutex teljes formája. Ez egy speciális bináris fájltípus. szemafor amelyet egy megosztott erőforráshoz való hozzáférés szabályozására használnak. Tartalmaz egy prioritásöröklési mechanizmust a kiterjedt prioritásinverziós problémák elkerülése érdekében, és a lehető legrövidebb ideig blokkolja a magasabb prioritású feladatokat.
A megosztott erőforrások, mint például az írásvédett fájlok, soha nem vezetnek holtponthoz, de az olyan erőforrásokhoz, mint a nyomtatók és a szalagos meghajtók, egyetlen folyamat kizárólagos hozzáférésére van szükségük.
Tarts és várj
Ebben az állapotban a folyamatokat le kell állítani abban, hogy egy vagy több erőforrást tartsanak, miközben egyidejűleg egy vagy több másikra várnak.
Körkörös Várj
Ez a módszer az összes erőforrástípus teljes sorrendbe állítását írja elő. A körkörös várakozás megakadályozása azt is megköveteli, hogy minden folyamat növekvő felsorolási sorrendben kérjen erőforrásokat.
Holtpont elkerülése Algorithms
Jobb elkerülni a patthelyzetet, mint ahelyett, hogy a patthelyzet bekövetkezése után cselekednénk. Az elkerüléshez további információkra van szükség, például arra, hogyan fogják felhasználni az erőforrásokat. A patthelyzet elkerülése egy hasznos modell, amelyben minden folyamat deklarálja az egyes típusú erőforrások maximális számát, amelyre szüksége lehet.
Elkerülés Algorithms
A holtpont-elkerülő algoritmus dinamikusan felméri az erőforrás-allokáció állapotát, így soha nem alakulhat ki körkörös várakozási helyzet.
Egy erőforrástípus egyetlen példánya esetén:
- Használjon erőforrás-elosztási grafikont.
- A gráfban egy ciklus szükséges és elégséges a patthelyzethez.
Egy erőforrástípus több példánya esetén:
- Egy ciklus szükséges, de nem elégséges a patthelyzethez.
- Használja a Bankár algoritmusa.
Különbség az éhezés és a holtpont között
Íme néhány fontos különbség a patthelyzet és az éhezés között:
| Holtpont | éhezés |
|---|---|
| A patthelyzet akkor fordul elő, amikor az egyik folyamat blokkolódik. | Az éhezés olyan helyzet, amikor az összes alacsony prioritású folyamat blokkolódik, miközben a magas prioritású folyamatok végrehajtódnak. |
| A holtpont egy végtelen folyamat. | Az éhezés hosszú várakozás, de nem egy végtelen folyamat. |
| Minden patthelyzetben mindig ott van az éhezés. | Nem feltétlenül jár patthelyzettel minden éhezés. |
| A patthelyzet a kölcsönös kizárás, a tartás és várakozás, az elővétel hiánya és a körkörös várakozás együttes előfordulása miatt következik be. | Ez a kontrollálatlan prioritások és a rossz erőforrás-gazdálkodás miatt történik. |
A holtpont előnyei
Íme a holtpontkezelési módszer használatának előnyei:
- Ez a helyzet jól működik azoknál a folyamatoknál, amelyek egyetlen tevékenységsorozatot hajtanak végre.
- Nincs szükség elővételre a patthelyzethez.
- Ez egy kényelmes módszer olyan erőforrásokra alkalmazva, amelyek állapota könnyen menthető és visszaállítható.
- Fordítási idejű ellenőrzésekkel kikényszeríthető.
- Nincs szükség futásidejű számításra, mivel a probléma a rendszertervezésben megoldódott.
A holtpont hátrányai
Íme a holtpontkezelési módszer használatának hátrányai:
- Késlelteti a folyamat elindítását.
- A folyamatoknak előre ismerniük kell a jövőbeli erőforrásigényeiket.
- Gyakrabban előz meg, mint kellene.
- Letiltja a növekményes erőforrás-kérelmeket.
- Vele járó elővásárlási veszteségekkel jár.



