Srovnávací graf
Základ pro porovnání | Zablokování | Hladovění |
---|---|---|
Základní | Zablokování je tam, kde žádný proces neprobíhá, a zablokovat. | Hladovění je tam, kde jsou procesy s nízkou prioritou blokovány a proces s vysokou prioritou pokračuje. |
Vzniklý stav | Výskyt vzájemného vyloučení, podržení a čekání, žádné předčasné vyřazení a cyklické čekání současně. | Prosazování priorit, nekontrolované řízení zdrojů. |
Jiné jméno | Kruhové čekání. | Lifelock. |
Zdroje | V zablokovaném stavu jsou požadované zdroje blokovány jinými procesy. | Při hladovění jsou požadované zdroje průběžně využívány procesy s vysokou prioritou. |
Prevence | Vyhnout se vzájemnému vyloučení, podržet a čekat a čekat na okružní jízdu a umožnit předčasné vyřízení. | Stárnutí. |
Definice zablokování
Zablokování je situace, kdy několik procesů v CPU soutěží o omezený počet zdrojů dostupných v rámci CPU. Každý proces zde obsahuje zdroj a čeká na získání zdroje, který je držen nějakým jiným procesem. Všechny procesy čekají na zdroje kruhovým způsobem. Na následujícím obrázku je vidět, že proces P1 získal zdroj R2, který je vyžadován procesem P2 a proces P1 požaduje zdroj R1, který je opět držen R2. Takže proces P1 a P2 tvoří zablokování.
- Vzájemné vyloučení: Pouze jeden proces najednou může použít zdroj, pokud jiný proces požaduje stejný zdroj, musí počkat, až proces pomocí zdroje uvolní.
- Podržet a čekat: Proces musí držet zdroj a čekat na získání jiného zdroje, který je držen nějakým jiným procesem.
- Žádná Preemption: Proces, který drží zdroje, nelze předcházet. Proces, který drží zdroj, musí uvolnit zdroj dobrovolně, když dokončí svůj úkol.
- Kruhové čekání: Proces musí počkat na zdroje v kruhovém režimu. Předpokládejme, že máme tři procesy {P0, P1, P2}. P0 musí počkat na zdroj, který drží P1; P1 musí čekat na získání zdroje drženého procesem P2 a P2 musí čekat na získání procesu, který drží P0.
Ačkoli existují některé aplikace, které mohou detekovat programy, které mohou být zablokované. Operační systém však není nikdy zodpovědný za zabránění zablokování. Je povinností programátorů navrhnout programy bez uvíznutí. To lze provést tak, že se vyhnete výše uvedeným podmínkám, které jsou nezbytné pro výskyt zablokování
Definice hladovění
Hladovění může být definováno jako když procesní požadavek na zdroj a tento zdroj byl nepřetržitě používán jinými procesy, pak proces žádání čelí hladovění. V hladovění proces připravený ke spuštění čeká na CPU, aby přidělil zdroj. Proces však musí čekat donekonečna, protože ostatní procesy neustále blokují požadované zdroje.
Problém hladovění obecně nastává v algoritmu plánování priorit . V algoritmu plánování priorit je proces s vyšší prioritou vždy přidělen zdroj, což zabraňuje procesu nižší priority získat požadovaný zdroj.
Stárnutí může vyřešit problém hladovění. Stárnutí postupně zvyšuje prioritu procesu, který čeká na zdroje. Stárnutí zabraňuje procesu s nízkou prioritou čekat donekonečna na zdroj.
Klíčové rozdíly mezi mrtvým bodem a hladovění v OS
- V mrtvém bodě žádný z procesů neprobíhá k provedení, každý proces je blokován a čeká na prostředky získané jiným procesem. Na druhé straně, hladovění je podmínka, kdy procesy, které mají vyšší prioritu, mohou získávat zdroje nepřetržitě tím, že zabraňují procesům s nízkou prioritou získávat zdroje, což má za následek neomezené blokování procesů s nízkou prioritou.
- Deadlock vzniká, když čtyři podmínky Vzájemné vyloučení, Hold a počkejte, Žádná předtucha a Kruhové čekání nastane současně. Hladování však nastane, když byly priority priority vynuceny při přidělování zdrojů, nebo v systému existuje nekontrolovaná správa prostředků.
- Zablokování je často nazýváno názvem kruhové čekání, zatímco hladovění se nazývá Lived lock .
- V Deadlock jsou zdroje blokovány procesem, zatímco v hladovění jsou procesy neustále využívány procesy s vysokými prioritami.
- Zablokování může být zabráněno vyhýbáním se podmínkám, jako je vzájemné vyloučení, zadržení a čekání, a cyklické čekání a umožněním předcházení procesům, které drží zdroje po dlouhou dobu. Na druhé straně může být hladovění zabráněno stárnutím .
Závěr:
Deadlock i Starvation zpozdí provádění procesu tím, že jej zablokují. Na jedné straně, kde zablokování může způsobit procesy hladovění, a na druhé straně může hladovění dostat procesy z mrtvého bodu.