title: Process control block
text: # Process control block
  
  Il process control block o PCB (in italiano: blocco di controllo del processo) è la struttura dati di un processo, del nucleo del sistema operativo, che contiene le informazioni essenziali per la gestione del processo stesso.
  
  ## Informazioni generali
  
  Le informazioni contenute variano a seconda delle implementazioni, ma in generale sono presenti:
  
  * Program counter
  * Area per il salvataggio dei registri general purpose, di indirizzamento
  * Area salvataggio registro di stato
  * Area di salvataggio per i flag
  * Stato corrente di avanzamento del processo (Pronto, In Esecuzione, Bloccato)
  * Identificatore unico del process
  * 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 o tempo stimato di esecuzione rimanente
  * Informazioni di accounting di un processo
  * Segnali che pendono
  * 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
  
  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.
  * Stack pointer.
  