Process control block
Da Wikipedia, l'enciclopedia libera.
Il Process Control Block (in italiano: Blocco di Controllo del Processo) o PCB di un processo è una struttura dati del nucleo del sistema operativo che contiene le informazioni essenziali per la gestione del processo.
Informazioni contenute [modifica]
Le informazioni contenute variano a seconda delle implementazioni, ma in generale sono presenti:
- Program counter
- Area per il salvataggio dei registri general purpose e floating point
- Area salvataggio registro di stato
- Stato corrente di avanzamento del processo (Pronto, In Esecuzione, Bloccato)
- Identificatore unico del processo
- Un puntatore al processo padre
- Puntatore ai processi figli se esistenti
- Livello di priorità
- Informazioni per il memory management(Gestione della memoria) (in particolare memoria virtuale) del processo
- Identificatore della CPU su cui è in esecuzione
- Informazioni per lo scheduling (gestione) del processo, come il tempo di run (esecuzione) o wait (attesa) accumulato
- Informazioni di accounting di un processo
- Segnali pendenti
- Informazioni sullo stato di I/O del processo
- Registro nel quale è presente un puntatore alla page table
Durante la commutazione di contesto, è necessario salvare in memoria centrale lo stato di esecuzione del processo che viene fermato. Queste informazioni vengono memorizzate proprio nel PCB del processo, e sarà sempre dal PCB che esse verranno ricaricate quando si dovrà proseguire l'esecuzione.
Informazioni superflue [modifica]
Alcuni sistemi operativi inseriscono nel PCB di ogni processo delle informazioni superflue per la sua gestione:
- Lo stato del processo. Per gestire i processi in stato di pronto è sufficiente la coda pronti, mentre per quelli in stato di attesa l'informazione è contenuta nel canale di comunicazione relativo alla chiamata bloccante.