Process control block
Process control block (zkratka PCB, Task Control Block nebo Task Struct) je v informatice označení pro datovou strukturu uloženou v jádře operačního systému, která obsahuje informace potřebné pro správu a běh procesů. Každý proces má svoji vlastní PCB, přičemž jejich maximální počet může být pevně určen nebo mohou být vytvářeny dynamicky (omezením bude jen dostupná paměť).
Obsažené informace
V různých implementacích se obsah PCB může lišit, avšak všeobecně obsahuje o procesu následující informace:
- identifikaci procesu (číslo procesu, PID)
- obsah registrů procesoru, zejména
- čítač instrukcí (program counter) – adresa následující strojové instrukce
- adresní prostor procesu
- priorita
- účtovací informace o procesu (kdy naposledy běžel, kolik času procesoru již spotřeboval apod.)
- odkaz na další PCB
- I/O informace (alokovaná I/O zařízení, seznam otevřených souborů apod.)
Během změny kontextu (anglicky context switch) je běžící proces zastaven a jiný proces je vybrán, aby mohl běžet. Jádro operačního systému musí zastavit proces a uložit stav procesoru do PCB, aby při opětovném spuštění mohl být stav procesu obnoven a pokračovat tak, jako kdyby nebyl přerušen.
Umístění PCB
Protože PCB obsahuje důležité informace o procesech, musí být umístěn v části paměti, která je chráněna před přístupem ostatních uživatelů a procesů. V některých operačních systémech je PCB umístěna na začátku zásobníku jádra operačního systému pro daný proces, protože je to vhodně chráněné místo.[1]