275/00
A.A. 2000/01
CORSO DI LAUREA
PROGRAMMA DEL CORSO DI
DOCENTE








UNIVERSITA' DEGLI STUDI DI TRIESTE
INGEGNERIA ELETTRONICA
SISTEMI OPERATIVI
Enzo MUMOLO
Introduzione al corso: obiettivi del corso, definizioni di base, servizi di un S.O., il S.O. come
rete di code, come gestore risorse, come macchina astratta.
Storia dei S.O.; classificazione secondo la organizzazione interna; sistemi monolitici,
stratificati, client/server
Nozioni di base sui S.O.; risorse, processi, PCB, stati di un processo, file, protezione delle
risorse, processi demoni
Introduzione a Unix dal punto di vista dell’utente, file mode, PID, GID, ID effettivo,
ereditarieta’, redirezione, processi in foregroud, background, struttura del file system
Unix come macchina astratta: comandi utente, shell, editors, programmazione in shell,
espressioni regolari, Perl, esempi di programmazione, esercitazioni pratiche
Processi concorrenti in un ambiente a memoria condivisa. Sequenze di esecuzione,
determinatezza di un sistema di task, condizioni necessarie e sufficienti. Mutua esclusione,
soluzioni software, algoritmo di Peterson, soluzioni hardware, sleep/wakeup, semafori,
costrutti linguistici. Stallo, prevenzione, rilevamento e recupero, evitare lo stallo, algoritmo
del banchiere, rilevare lo stallo con piu’ risorse e piu’ istanze per risorsa.
Il S.O. Unix
o Buffer cache, algoritmi di basso livello per la gestione del file system e dei processi,
tabella processi, area-U, gestione memoria
o Chiamate di sistema per la gestione del file system e dei processi. Primitive di IPC,
pipe, fifo, messaggi, semafori, memoria condivisa, segnali, equivalenza tra le
primitive. Chiamate di sistema per la gestione di IPC tramite socket.
o Programmazione di sistema in C. Programmazione multithreaded in Solaris. Esempi
di programmazione, esercitazioni pratiche
Gestione risorse.
o Gestione dell’unita’ centrale. Schedulazione ottima, processi CPU-bound e I/O
bound, predizione del tempo di elaborazione, schedulazione prioritaria,
schedulazione Round Robin, soluzioni ibride, importanza del tempo di context
switch
o Gestione memoria in multiprogrammazione. Partizioni fisse/variabili, compattazione
della memoria, gestione della memoria contigua, regola del 50%, liste concatenate,
bitmap, buddy system. Frammentazione interna ed esterna. Memoria virtuale, tempo
reale/tempo virtuale, rimpiazzamento, anomalia FIFO, approccio NUR, orologio,
rimpiazzamento ottimo di Belady, PMT, tabella delle pagine invertite, supporto HW,
MMU, TLB. Working set, descrizione formale, algoritmo PFF, contatore.
o Gestione del file system, allocazione blocchi dati, vettore di bit, concatenazione,
raggruppamento, conteggio. Inconsistenza del fs. Efficienza del fs, cluster, cache,
ram disk
o Gestione dischi, cache, controller, schedulazione del disco, posizione di riposo delle
testine, dischi RAID, livelli, organizzazione, codice di Hamming




o Gestione delle reti di calcolatori
Cenni di sistemi operativi in tempo reale: problematiche, algoritmi di schedulazione di
processi aperiodici e periodici.
Progetto e analisi di un S.O. mediante simulazione ad eventi discreti; richiami di variabili
aleatorie, funzioni di distribuzione, generazione di v.a. uniformi, test chi-quadro, gaussiane,
metodo della funzione inversa, generazione esponenziale, proprieta’ markoviava,
programmazione, schema di principio di un simulatore, meccanismi di avanzamento del
tempo, analisi dei risultati, stima puntuale, intervallare. Esempi di simulazione di un sistema
batch, con piu’ processori, con piu’ code di priorita’. Esempi di analisi di un sistema time
sharing, della schedulazione, della gestione memoria e dei dischi con simulazione discreta
Cenni sulla realizzazione di un S.O.: il sistema sperimentale Yatos (Yet Another Tiny OS)
Conclusioni