Concetti Chiave
- Un programma diventa un processo solo quando viene eseguito e può essere avviato solo da un altro processo esistente.
- Esiste una gerarchia di processi organizzata ad albero, con il processo principale (root) generato dall'eseguibile init attivato dal kernel.
- Il kernel può avviare diversi programmi come processi principali, ma preferisce l'eseguibile /sbin/init per una gestione standard.
- Il kernel tiene traccia dei processi attraverso una tabella che registra lo stato e le informazioni rilevanti di ciascun processo.
- Le informazioni registrate includono nome dell'eseguibile, argomenti, identificazione del processo e dell'utente, e dispositivo di comunicazione.
Il processo e la sua gerarchia
Un programma singolo, nel momento in cui viene eseguito, è un processo. La nascita di un processo, cioè l'avvio di un programma, può avvenire solo tramite una richiesta da parte di un altro processo già esistente. Si forma quindi una sorta di gerarchia dei processi organizzata ad albero. Il processo principale (root) che genera tutti gli altri, è quello dell'eseguibile init che a sua volta è attivato direttamente dal kernel.
Il ruolo del kernel
In linea di principio, il programma avviato dal kernel come processo principale, può essere qualunque cosa, anche una shell (tenendo conto, comunque, che il kernel predilige l'eseguibile /sbin/init), ma in tal caso si tratta di applicazioni specifiche e non di un sistema standard.
Qui si preferisce utilizzare il nome Init per identificare il processo principale, tenendo conto che questo si concretizza generalmente nell'eseguibile init.
La gestione dei processi
Il kernel gestisce una tabella dei processi che serve a tenere traccia del loro stato. In particolare sono registrati i valori seguenti:
il nome dell'eseguibile in funzione;
gli eventuali argomenti passati all'eseguibile al momento dell'avvio attraverso la riga di comando;
il numero di identificazione del processo;
il numero di identificazione del processo che ha generato quello a cui si fa riferimento;
il nome del dispositivo di comunicazione se il processo è controllato da un terminale;
il numero di identificazione dell'utente;
il numero di identificazione del gruppo;
Domande da interrogazione
- Come si forma la gerarchia dei processi nel sistema operativo?
- Qual è il ruolo del kernel nella gestione dei processi?
- Quali informazioni sono registrate nella tabella dei processi dal kernel?
La gerarchia dei processi si forma ad albero, dove un processo principale (root), tipicamente l'eseguibile init, genera altri processi tramite richieste da parte di processi già esistenti.
Il kernel avvia il processo principale, generalmente l'eseguibile init, e gestisce una tabella dei processi per tenere traccia del loro stato e delle informazioni associate, come il nome dell'eseguibile e il numero di identificazione del processo.
Nella tabella dei processi sono registrati il nome dell'eseguibile, gli argomenti passati, i numeri di identificazione del processo e del suo genitore, il nome del dispositivo di comunicazione, e le identificazioni dell'utente e del gruppo.