Blocco di controllo del processo - Process control block

Un blocco di controllo del processo (PCB) è una struttura dati utilizzata dai sistemi operativi dei computer per memorizzare tutte le informazioni su un processo. È anche noto come descrittore di processo. Quando un processo viene creato (inizializzato o installato), il sistema operativo crea un corrispondente blocco di controllo del processo.

Specifica lo stato del processo, ovvero nuovo, pronto, in esecuzione, in attesa o terminato.

Ruolo

Il ruolo dei PCB è centrale nella gestione dei processi : sono accessibili e/o modificati dalla maggior parte delle utility, in particolare da quelle coinvolte nella pianificazione e nella gestione delle risorse.

Struttura

Nei sistemi operativi multitasking , il PCB memorizza i dati necessari per una corretta ed efficiente gestione dei processi. Sebbene i dettagli di queste strutture siano dipendenti dal sistema, gli elementi comuni rientrano in tre categorie principali:

  • Identificazione del processo
  • Stato del processo
  • Controllo di processo

Esistono tabelle di stato per ogni entità rilevante, come la descrizione della memoria, dei dispositivi I/O, dei file e dei processi.

Le tabelle di memoria, ad esempio, contengono informazioni sull'assegnazione della memoria principale e secondaria (virtuale) per ciascun processo, attributi di autorizzazione per l'accesso ad aree di memoria condivise tra processi diversi, ecc. Le tabelle di I/O possono avere voci che attestano la disponibilità di un dispositivo o la sua assegnazione a un processo, lo stato delle operazioni di I/O, la posizione dei buffer di memoria utilizzati per esse, ecc.

I dati di identificazione del processo includono un identificatore univoco per il processo (quasi sempre un numero intero) e, in un sistema multiutente multitasking, dati come l'identificatore del processo padre, l'identificatore utente, l'identificatore del gruppo utente, ecc. L'ID del processo è particolarmente rilevante poiché è spesso usato per incrociare le tabelle sopra definite, ad esempio mostrando quale processo sta utilizzando quali dispositivi di I/O o aree di memoria.

I dati sullo stato del processo definiscono lo stato di un processo quando è sospeso, consentendo al sistema operativo di riavviarlo in un secondo momento. Ciò include sempre il contenuto dei registri CPU generici, la parola di stato del processo CPU, i puntatori a stack e frame, ecc. Durante il cambio di contesto , il processo in esecuzione viene interrotto e ne viene eseguito un altro. Il kernel deve interrompere l'esecuzione del processo in esecuzione, copiare i valori nei registri hardware sul suo PCB e aggiornare i registri hardware con i valori dal PCB del nuovo processo.

Le informazioni di controllo del processo vengono utilizzate dal sistema operativo per gestire il processo stesso. Ciò comprende:

  • Stato di pianificazione del processo: lo stato del processo in termini di "pronto", "sospeso", ecc. e anche altre informazioni di pianificazione, come il valore di priorità, la quantità di tempo trascorso da quando il processo ha acquisito il controllo della CPU o da quando è stato sospeso. Inoltre, in caso di processo sospeso, i dati identificativi dell'evento devono essere registrati per l'evento che il processo è in attesa.
  • Informazioni sulla strutturazione del processo: gli id ​​figli del processo o gli id ​​di altri processi correlati a quello corrente in qualche modo funzionale, che possono essere rappresentati come una coda, un anello o altre strutture dati
  • Informazioni sulla comunicazione tra processi: bandiere, segnali e messaggi associati alla comunicazione tra processi indipendenti
  • Privilegi di processo: accesso consentito/non consentito alle risorse di sistema
  • Stato del processo: nuovo, pronto, in esecuzione, in attesa, morto
  • Numero di processo (PID): numero di identificazione univoco per ogni processo (noto anche come ID processo )
  • Program Counter (PC): un puntatore all'indirizzo della prossima istruzione da eseguire per questo processo
  • Registri CPU: registro impostato in cui il processo deve essere archiviato per l'esecuzione per lo stato di esecuzione
  • Informazioni sulla pianificazione della CPU: informazioni sulla pianificazione del tempo della CPU
  • Informazioni sulla gestione della memoria: tabella delle pagine, limiti di memoria, tabella dei segmenti
  • Informazioni contabili: quantità di CPU utilizzata per l'esecuzione del processo, limiti di tempo, ID di esecuzione, ecc.
  • Informazioni sullo stato degli I/O: elenco dei dispositivi I/O assegnati al processo.

Posizione

Il PCB deve essere conservato in un'area di memoria protetta dal normale accesso al processo. In alcuni sistemi operativi il PCB è posizionato all'inizio dello stack del kernel del processo.

Guarda anche

Appunti