Vzájemné zablokování (deadlock)
Ke vzájemnému blokování dochází, když počítače vzájemně čekají na prostředek, který drží jiný proces. Je důležité zabránit vzniku deadlocku dříve, než k němu dojde. Plánovač prostředků může detekovat výskyt deadlocku, což pomáhá operačnímu systému sledovat prostředky přidělené různým procesům. K deadlocku může dojít, pokud současně platí následující čtyři podmínky:
•Žádná preventivní akce – prostředek může být uvolněn pouze dobrovolně procesem, který jej drží, jakmile proces dokončí úlohu.
•Vzájemné vyloučení – speciální binární semafor používaný k řízení přístupu ke sdílenému prostředku, který umožňuje, aby aktuální úlohy s vyšší prioritou byly blokovány co nejkratší dobu.
•Držení a čekání – tento stav nastane, pokud proces drží jeden nebo více prostředků a současně čeká na přidělení dalších.
•Kruhové čekání – definuje celkové pořadí všech typů prostředků. Kruhové čekání také vyžaduje, aby každý proces požadoval prostředky ve vzestupném pořadí.
Vznik vzájemného zablokování můžete řešit třemi způsoby:
•Nedovolit, aby se systém dostal do stavu vzájemného zablokování.
•Počkat, až k zablokování dojde, a poté jej řešit.
•Pokud dojde k zablokování, restartovat systém.