Lunedì 16/02/04 ore 11-13 (lezione)
Processi UNIX: modello ad ambiente locale e sue eccezioni (file system e
codice). Scheduling,
swapping e modi di esecuzione dei processi. Immagine di un processo: parte
utente e di kernel.
Tabelle di sistema: Process Table e Text Table. Descrittore di
processo in LINUX. Stati di
un processo. Primitive per la gestione dei processi: creazione ===> fork.
Primo esempio semplice:
due versioni (la seconda con primitive getpid, geuid e getgid). Uso del valore di
ritorno della fork: secondo
esempio semplice. Condivisione I/O pointer file aperti. Fork in Linux.
File relativi alla pagina: pagina.
Mercoledì 18/02/04 ore 11-13 (lezione)
Ripreso primitiva fork. Primitiva per l'attesa dei processi (WAIT) e primitiva per
la terminazione volontaria dei processi (EXIT). Due esempi di wait
ed exit (con macro lasciato come esercizio). Presentato problema Produttore(i)/Consumatore(i) e quindi esempio di condivisione file e I/O pointer: figlio scrive e padre legge.
Processi ZOMBIE ed ereditati da INIT (due esempi).
File relativi alla pagina: pagina.
Venerdì 20/02/04 ore 11-13 (esercitazione)
C - Esempio di uso di lseek. Esercizio 1 (parte C) dell'esame del
30/6/2000 (FI2).
Strumenti C: compilatore, make e debugger.
PROCESSI UNIX - Esercizi
semplici con fork e wait: generazione di N processi (fratelli e
discendenti), attesa di tutti, del primo, del k-esimo.