Operační systém je nejzákladnější software, který běží na počítači. Je zodpovědný za správu paměti a procesů počítače a za stínění podrobností hardwaru před aplikačními programy, které jej používají. Počítačový operační systém také zajišťuje spravedlivé přidělování zdrojů uživatelům a programům, na rozdíl od rovnoměrného rozdělení mezi procesy. Spravedlivý plánovací systém umožňuje jednomu procesu používat CPU, zatímco druhý čeká ve frontě. Výsledkem je, že každé vlákno získá dostatečný přístup k omezeným zdrojům, což brání dvěma nejběžnějším podmínkám, které by jinak zpozdily proces: Deadlock a Starvation. Oba jsou související pojmy, kde procesy nemají přístup ke zdrojům. Tento článek upozorňuje na některé klíčové body, které porovnávají dva na různých frontách.
Deadlock je stav, kdy je blokována sada podprocesů, protože každý proces, který drží prostředek, se pokouší získat přístup k některým jiným zdrojům, které jsou drženy jiným procesem, nakonec brání spravedlivému plánování systému. K zablokování dochází, když jsou splněny následující čtyři podmínky: Vzájemné vyloučení znamená, že ke zdroji může přistupovat pouze jeden proces; Žádná podmínka preempce znamená, že zdroj může být uvolněn pouze dobrovolně procesem, který zdroj drží; Hold & wait znamená, že proces zadržující zdroje může vyžadovat další zdroje držené jinými procesy a; Kruhové čekání znamená, že v kruhovém řetězci jsou zaseknuty dva nebo více procesů, které čekají, až každý proces uvolní své příslušné zdroje.
Hladovění je stav, který vzniká, když proces přechází do čekací doby na neurčito, protože proces s nízkou prioritou nikdy nemá šanci získat přístup ke zdroji kvůli neustálému toku procesů s vysokou prioritou, které přistupují ke stejnému zdroji. Jedná se o problém se správou prostředků, protože procesu je odepřen přístup ke zdroji, který vyžaduje, čímž se proces posouvá na dobu neurčitou. Stává se to proto, že požadovaný zdroj není nikdy přidělen procesu, který způsobuje, že proces hladoví prostředky, odtud název. Nejlepší způsob, jak se vyhnout hladovění, je použít techniku stárnutí, která postupně zvyšuje prioritu procesů, které jsou v čekací době po dlouhou dobu, aby se zajistil spravedlivý plánovací systém.
Jak zablokování, tak hladovění jsou související pojmy, které brání spravedlivému plánování systému, kde jsou procesy blokovány v získávání přístupu ke zdrojům. Deadlock, jak název napovídá, se týká stavu, kdy je blokována sada podprocesů nebo procesů, protože každý proces čeká na získání zdroje, který je držen jiným procesem, což má za následek situaci zablokování, kdy programy přestanou fungovat. Hladovění je naproti tomu vyvoláno zablokováním, které způsobuje zmrazení procesu, protože procesu s nízkou prioritou je odepřen přístup ke zdroji, který je přidělen k procesu s vysokou prioritou..
Deadlock označuje konkrétní stav, ke kterému dochází, když podproces nebo proces přechází do čekací doby, protože požadovaný systémový prostředek je držen jiným procesem, který zase čeká na další proces, aby uvolnil svůj prostředek, čímž vytvoří zablokování. To je způsobeno špatným využitím zdrojů. Hladovění je neomezená podmínka odkladu, kdy je procesu s nízkou prioritou odepřen přístup ke zdrojům, které vyžaduje, protože zdroje jsou přidělovány jinému procesu s vysokou prioritou. Je to problém správy zdrojů, který nutí systém k přidělování zdrojů pouze pro procesy s vysokou prioritou.
Deadlock je konečná forma hladovění, která je způsobena, když nastanou současně následující čtyři podmínky: Vzájemné vyloučení, Bez výjimky, Hold & Wait a Circular Wait. K zablokování dochází pouze v systémech, ve kterých platí všechny čtyři podmínky. Hladovění nastává na základě různých podmínek, například když není dostatek prostředků, které by mohly obejít, a priorita procesů se začne snižovat nebo když procesy začnou předávat prostředky jiným procesům bez kontroly. Pokud proces s nízkou prioritou požaduje zdroj vyhrazený pro procesy s nejvyšší prioritou, proces bude hladovět navždy. Hladování také nastane, když jsou prostředky přidělovány libovolně, což způsobuje, že procesy čekají delší dobu.
Hladovění lze zabránit použitím správného algoritmu plánování s frontou priorit, který ve skutečnosti také používá techniku stárnutí - techniku plánování, která přidává faktor stárnutí k prioritě každého požadavku, což znamená, že zvyšuje úroveň priority procesů s nízkou prioritou, které čekají na dlouhou dobu. Rovněž poskytování více zdrojů programům by se mělo vyhnout nepřetržitému přetížení zdrojů. Chcete-li zabránit tomu, aby se systém dostal do slepé uličky, musí být procesům odepřen přístup k jednomu nebo více prostředkům při současném čekání na ostatní a pouze jeden proces by měl mít povolen přístup k prostředku současně..
Jak zablokování, tak hladovění jsou související pojmy ve víceprocesových operačních systémech nebo distribuovaných systémech, které způsobují, že jedno nebo více vláken nebo procesů uvízly v čekání na zdroje, které potřebují. Deadlock je situace, která nastává, když jeden nebo více procesů požaduje přístup ke stejnému zdroji, což způsobuje zmrazení procesu, zatímco hladovění je způsobeno zablokováním, které posouvá proces do stavu neurčitého odkladu, protože procesům je odepřen přístup ke zdroji v držení proces s vysokou prioritou a musí čekat věčně.