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
editovatV 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
editovatProtož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]