Blokování (výpočet) - Blocking (computing)

Při práci na počítači je proces instancí počítačového programu, který se právě spouští. Proces vždy existuje přesně v jednom stavu procesu . Proces, který je blokován, je proces, který čeká na nějakou událost , například na zpřístupnění zdroje nebo dokončení operace I/O .

Ve víceúlohovém počítačovém systému musí jednotlivé úkoly nebo vlákna provádění sdílet prostředky systému. Mezi sdílené prostředky patří: CPU, síťová a síťová rozhraní, paměť a disk.

Když jeden úkol používá zdroj, obecně není možné nebo žádoucí, aby k němu měl přístup jiný úkol. K zamezení tohoto souběžného používání se používají techniky vzájemného vyloučení . Když je druhý úkol zablokován, nemůže se spustit, dokud není první úkol dokončen pomocí sdíleného prostředku.

Programovací jazyky a plánovací algoritmy jsou navrženy tak, aby minimalizovaly blokování všech efektů. Proces, který blokuje, může zabránit postupu místních pracovních úkolů. V tomto případě je „blokování“ často považováno za nechtěné. Takové pracovní úkoly však mohly být místo toho přiřazeny nezávislým procesům, kde zastavení jednoho nemá na ostatní žádný nebo malý vliv, protože plánování bude pokračovat. Příkladem je „blokování na kanálu “, kde pasivní čekání na druhou část (žádné polling nebo spin loop) je součástí sémantiky kanálů. Správně navržený kterýkoli z nich může být použit k implementaci reaktivních systémů.

Zablokování znamená, že procesy na sebe patologicky čekají v kruhu. Jako takový není přímo spojen s blokováním.

Jakmile nastane událost, na kterou proces čeká („je blokováno“), proces se přesune ze zablokovaného stavu do bezprostředního stavu, například spustitelný .

Viz také

Reference