Docente
|
MELATTI IGOR
(programma)
1. Struttura di un elaboratore
CPU, memoria, dispositivi di I/O; registri dati e di stato del processore, memoria, cache. Ciclo di esecuzione delle istruzioni, gestione delle interruzioni e loro elaborazione. Tecniche di I/O: programmato, interrupt-based, DMA.
(approx. 2 ore)
2. Concetti generali sui sistemi operativi
Cenni sull'evoluzione storica dei sistemi operativi: monoprogrammazione batch, multiprogrammazione batch, time sharing. Servizi e funzioni di un OS: gestione risorse, interfaccia utente, astrazione dei dispositivi hardware. Architettura del sistema operativo UNIX.
(approx. 3 ore)
3. I processi
Concetto di processo. Modello di processo a 2, 5 e 7 stati. Strutture dati di descrizione e gestione dei processi, Process Control Block, immagine in memoria. Chiamate di sistema, modalità di esecuzione, alternanza tra processi, esecuzione del sistema operativo. Creazione e terminazione di processi in UNIX.
(approx. 7 ore)
4. Scheduling dei processi
Velocità relativa di esecuzione dei processi, scheduling a breve, medio e lungo termine. Priorità; prerilascio; valutazione quantitativa degli scheduler; algoritmi di scheduling: FCFS, RR, SPN, SRT, HRRn. Scheduler di UNIX. Scheduler di Windows.
(approx. 7 ore)
5. Gestione della memoria
Linking e caricamento di programmi. Protezione e condivisione di memoria. Partizionamento fisso e dinamico, buddy system, segmentazione, paginazione. Traduzione degli indirizzi, page table, TLB. Swapping e algoritmi di sostituzione: LRU, Clock, page buffering.
(approx. 8 ore)
6. Gestione dell'I/O
Dispositivi di I/O. Organizzazione della funzione di I/O. Buffering. Struttura e prestazioni dei dischi; scheduling dell'I/O su disco. Cache di disco.
(approx. 6 ore)
7. Protezione
Concetti di sicurezza, minacce, attacchi. Autenticazione e controllo di accesso. Funzionamento del processo di login in UNIX. SETUID e SETGID su eseguibili in UNIX.
(approx. 2 ore)
8. File system
File system e gestione dell'I/O su file. Directory e file speciali. Gestione dello spazio libero e allocazione ai file. FAT e i-node. Ripristino della consistenza. Cenni su NTFS.
(approx. 7 ore)
9. Concorrenza
Interazioni dirette e indirette tra processi; condivisione di risorse. Mutua esclusione: protocollo, implementazioni software ed hardware. Sincronizzazione ed ordinamento dell'esecuzione; semafori. Problemi-tipo: produttore-consumatore, lettori-scrittori, problema del barbiere. Comunicazione tra processi; scambio di messaggi. Equivalenza tra condivisione+mutua esclusione, sincronizzazione, comunicazione.
(approx. 12 ore)
10. Lo stallo
Attesa indefinita (starvation), livelock, stallo (deadlock); possibilità ed effettiva realizzazione dello stallo; condizioni dello stallo. Prevenzione dello stallo. Esclusione dello stallo, concetto di stato sicuro, cenni sull'algoritmo del banchiere. Identificazione e rimozione dello stallo. Problema dei filosofi a cena.
(approx. 6 ore)
 Il testo di riferimento è W. Stallings, "Operating Systems", 8th ed., Prentice-Hall, 2015.
E' consigliato anche il libro D. P. Bovet, M. Cesati, "Understanding the Linux Kernel", 3rd edition, O'Reilly, 2006.
Le slide del docente si trovano sul sito del corso: http://twiki.di.uniroma1.it/twiki/view/SO/SO1213AL/SistemiOperativi12CFU.
|