ESET Online pomocník

Vyhľadať Slovenčina
Vyberte kapitolu

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.