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.


This topic: Sistemioperativi1 > ProgrammaDelCorso
Topic revision: r33 - 2011-09-19 - LuigiMancini
 
This site is powered by the TWiki collaboration platform Powered by PerlCopyright © 2008-2024 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki? Send feedback