Programma del Corso di Sistemi Operativi I
Corso di laurea in Informatica e Tecnologie Informatiche
Università "La Sapienza" di Roma - Proff. G. Ateniese e L.V. Mancini
Il programma fa riferimento ai testi consigliati.
1. Struttura di un elaboratore (cap. 1)
CPU, memoria, dispositivi di I/O (1.1); registri dati e di stato del processore, memoria,
cache (1.2, 1.5, 1.6). Ciclo di esecuzione delle istruzioni, gestione delle interruzioni e loro elaborazione (1.3, 1.4).Tecniche di I/O (programmato,
interrupt-based, DMA (1.7).
2. Concetti generali sui sistemi operativi (cap. 2)
Cenni sull'evoluzione storica dei sistemi operativi: monoprogrammazione
batch, multiprogrammazione
batch,
time sharing (2.1, 2.2). Servizi e funzioni di un OS: gestione risorse, interfaccia utente, astrazione dei dispositivi
hardware (2.3). Architettura del sistema operativo UNIX (2.6, 2.7).
3. I processi (cap. 3)
Concetto di processo (3.1). Modello di processo a due e cinque stati (3.2 fino p. 121). Strutture dati di descrizione e gestione dei processi,
Process Control Block, immagine in memoria (3.3). Chiamate di sistema, modalità di esecuzione, alternanza tra processi (3.4), esecuzione del sistema operativo (3.5). Creazione e terminazione di processi in UNIX (scheda integrativa).
4. Scheduling dei processi (cap. 9)
Velocità relativa di esecuzione dei processi,
scheduling a breve, medio e lungo termine (9.1). Priorità; prerilascio; valutazione quantitativa degli
scheduler; algoritmi di
scheduling: FCFS, RR, SPN, SRT, HRRn (9.2 fino a p. 422).
Scheduler di UNIX (9.3).
Scheduler di Windows (10.5).
5. Gestione della memoria (cap. 7, 8, 3)
Linking e caricamento di programmi (7.A). Protezione e condivisione di memoria (7.1). Partizionamento fisso e dinamico,
buddy system, segmentazione, paginazione (7.2, 7.3, 7.4). Traduzione degli indirizzi,
page table, TLB (8.1, escluso il paragrafo
Inverted Page Table).
Swapping e algoritmi di sostituzione: LRU,
Clock,
page buffering (8.2 fino a p. 374). Modello di processo a sette stati (3.2, pp. 121-126).
6. Gestione dell'I/O (cap. 11)
Dispositivi di I/O (11.1). Organizzazione della funzione di I/O (11.2, 11.3).
Buffering (11.4). Struttura e prestazioni dei dischi;
scheduling dell'I/O su disco (11.5).
Cache di disco (11.7).
7. Protezione (cap. 14)
Concetti di sicurezza, minacce, attacchi (14.1, 14.2). Autenticazione e controllo di accesso (15.1, 15.2). Funzionamento del processo di
login in UNIX (scheda integrativa). SETUID e SETGID su eseguibili in UNIX (scheda integrativa).
8. File system (cap. 12)
File system e gestione dell'I/O su
file (12.1).
Directory e
file speciali (12.3, 12.8). Gestione dello spazio libero e allocazione ai
file (12.6). FAT e
i-node (12.8, scheda integrativa). Ripristino della consistenza (scheda integrativa). Cenni su NTFS (12.10).
9. Concorrenza (cap. 5 e appendice A)
Interazioni dirette e indirette tra processi; condivisione di risorse (5.1). Mutua esclusione: protocollo, implementazioni
software ed
hardware (A.1, 5.2). Sincronizzazione ed ordinamento dell'esecuzione; semafori (5.3). Problemi-tipo: produttore-consumatore, lettori-scrittori, problema del barbiere (5.3, 5.6, A.3). Comunicazione tra processi; scambio di messaggi (5.5). Equivalenza tra condivisione+mutua esclusione, sincronizzazione, comunicazione (scheda integrativa).
10. Lo stallo (cap. 6)
Attesa indefinita (
starvation),
livelock, stallo (
deadlock); possibilità ed effettiva realizzazione dello stallo; condizioni dello stallo (6.1). Prevenzione dello stallo (6.2). Esclusione dello stallo, concetto di stato sicuro, cenni sull'algoritmo del banchiere (6.3). Identificazione e rimozione dello stallo (6.4). Problema dei filosofi a cena (6.6 fino a p. 284, scheda integrativa).
Testi
W. Stallings, "
Operating Systems", 6th ed., Prentice-Hall, 2009 (testo di riferimento).
Schede integrative (fornite in forma elettronica durante il corso).
Lucidi utilizzati a lezione
lucidiSO.zip: Lucidi ufficiali del libro Stallings
Letture aggiuntive
Queste letture non fanno parte del programma, ma costituiscono utili approfondimenti.
The Locality Principle di Peter J. Denning: una panoramica sintetica su nascita, sviluppo e motivazioni della memoria virtuale, sulla validità del principio di località su cui si fonda, sull'importanza di quest'ultimo in altri settori dell'Informatica.
The Locality Principle di Peter J. Denning: una versione ampliata e maggiormente dettagliata dell'articolo precedente.