<html> <body> <dl> <center> <h3> Programma del Corso di Sistemi Operativi I</h3> <h3> Corso di laurea in Informatica e Tecnologie Informatiche</h3> <h3> Università "La Sapienza" di Roma - Proff. G. Ateniese e L.V. Mancini</h3></center> </dl> Il programma fa riferimento ai testi consigliati. <h4> 1. Struttura di un elaboratore (cap. 1)</h4> 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). <h4> 2. Concetti generali sui sistemi operativi (cap. 2)</h4> 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). <h4> 3. I processi (cap. 3)</h4> 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). <h4> 4. _Scheduling_ dei processi (cap. 9)</h4> 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). <h4> 5. Gestione della memoria (cap. 7, 8, 3)</h4> _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). <h4> 6. Gestione dell'I/O (cap. 11)</h4> 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). <h4> 7. Protezione (cap. 14)</h4> 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). <h4> 8. _File system_ (cap. 12)</h4> _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). <h4> 9. Concorrenza (cap. 5 e appendice A)</h4> 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). <h4> 10. Lo stallo (cap. 6)</h4> 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). <h4> Testi</h4> W. Stallings, "<a href="http://williamstallings.com/OS/OS6e.html">Operating Systems</a>", 6th ed., Prentice-Hall, 2009 (testo di riferimento). <br><a href="http://twiki.di.uniroma1.it/pub/Sistemioperativi1/ProgrammaDelCorso/SchedeSOI.pdf">Schede integrative</a> (fornite in forma elettronica durante il corso). <br> <h4> Lucidi utilizzati a lezione</h4> [[%ATTACHURL%/lucidiSO.zip][lucidiSO.zip]]: Lucidi ufficiali del libro Stallings <h4> Letture aggiuntive</h4> Queste letture non fanno parte del programma, ma costituiscono utili approfondimenti.<br><br> <a href="http://cne.gmu.edu/pjd/PUBS/CACMcols/cacmJul05.pdf">The Locality Principle</a> 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. <br> <a href="http://cne.gmu.edu/pjd/GP/locality-long.pdf">The Locality Principle</a> di Peter J. Denning: una versione ampliata e maggiormente dettagliata dell'articolo precedente. </body> </html>
This topic: Sistemioperativi1
>
ProgrammaDelCorso
Topic revision: r33 - 2011-09-19 - LuigiMancini
Copyright © 2008-2025 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki?
Send feedback