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á preemptivní akce – prostředek může být uvolněn pouze dobrovolně procesem, který jej drží, poté, co tento proces dokončí svůj úkol.
•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 vyřešit třemi způsoby:
•Nedovolte, aby se systém dostal do stavu vzájemného blokování.
•Nechte vzájemné zablokování nastat, poté se pokuste mu zabránit, zatímco probíhá.
•Pokud dojde ke vzájemnému zablokování, restartujte systém.