Zablokovanie (deadlock)
Zablokovanie (deadlock) predstavuje situáciu, keď počítačový proces čaká na uvoľnenie prostriedkov, ktoré sú priradené k inému procesu. V tejto situácii sa žiadny z procesov nespustí, pretože požadované prostriedky zadržiava proces, ktorý tiež čaká na uvoľnenie iných prostriedkov. Je dôležité zabrániť zablokovaniu skôr, ako k nemu vôbec dôjde. Výskyt zablokovania môže odhaliť plánovač prostriedkov, ktorý pomáha operačnému systému sledovať všetky prostriedky pridelené rôznym procesom. Zablokovanie môže nastať, ak sú súčasne splnené tieto štyri podmienky:
•Zákaz preempcie – prostriedky môže dobrovoľne uvoľniť len samotný proces, ktorý ich zadržiava, a to po dokončení svojej úlohy.
•Vzájomné vylúčenie – špeciálny typ binárneho semafora, ktorý sa používa na riadenie prístupu k zdieľaným prostriedkom. Umožňuje, aby boli aktuálne úlohy s vyššou prioritou blokované čo najkratší čas.
•Zadržiavanie a čakanie – v tomto prípade je potrebné zabrániť tomu, aby procesy zadržiavali jedny prostriedky a zároveň čakali na ďalšie.
•Kruhové čakanie – určuje celkové usporiadanie všetkých typov prostriedkov. Pri kruhovom čakaní sa takisto vyžaduje, aby každý proces žiadal o prostriedky vo vzostupnom poradí.
Existujú tri spôsoby, ako riešiť zablokovanie:
•Nedovoľte, aby sa systém dostal do zablokovaného stavu.
•Dovoľte, aby došlo k zablokovaniu, a keď sa tak stane, využite preempciu, teda odobratie zadržiavaných prostriedkov.
•Ak dôjde k zablokovaniu, reštartujte systém.