Lez1 ProcessiThread
Lez1 ProcessiThread
2 a
PROGRAMMA e PROCESSO pag.8 e da pag.21
Processo = programma in esecuzione. a pag.28
interruzione
salvataggio dello stato di evoluzione del processo in esecuzione che lascia la CPU nel suo descrittore
e caricamento dello stato di esecuzione del nuovo processo nei registri della CPU.
Modelli di computazione
➢ generare un processo figlio (child), che è copia del processo padre (parent) in esecuzione:
pid fork();
➢ attendere la terminazione di un processo figlio: pid wait ();
➢ terminare un processo figlio restituendo un codice di stato (di terminazione) al processo
padre: void exit ();
Creazione di processi
Cosa succede se il padre termina prima del figlio?
▪ il processo figlio viene "adottato" dal processo init (PID=1), in quanto il kernel
vuole evitare che un processo divenga "orfano" (cioè senza un PPID)
▪ quando un processo termina, il kernel esamina la tabella dei processi per vedere
se aveva figli; in tal caso, il PPID di ogni figlio viene posto uguale a 1
codice e dati non sono caratteristiche del singolo thread, ma del task al quale appartiene: