Sistemi Operativi I a.a. 2006/07
Docenti
Teoria: |
Amministrazione Linux: |
Giorgio Delzanno |
Davide Roggero Ufficio 111 (I piano) D.I.S.I. Tel . 010-3536645 e-mail: roggero <at> disi.unige.it |
Web page:
http://www.disi.unige.it/person/DelzannoG/SO1 (pagine con link vari a.a.)
http://www.disi.unige.it/person/DelzannoG/SO1/aa0506.html (pagine del precendente a.a.)
Indice
Trasparenze viste a lezione (PDF),
Registrazione agli appelli (sito DIDATTICA del
DISI)
Orario e ricevimento
Orario lezioni
Lunedi 11-13 (aula 506)
Mercoledì 11-13 (aula 506)
Giovedi 14-16 (aula 506)
Ricevimento:
Giovedi 11-13 (ufficio 104)
Il programma prevede i seguenti argomenti (vedi programma dettagliato per il materuiale on-line)
Introduzione (cenni storici + terminologia)
Struttura dei Sistemi di Calcolo (trap, interrupt)
Struttura dei Sistemi Operativi
Processi
e Thread
Scheduling
della CPU
Cooperazione tra Processi (race conditions, semafori, monitor, algoritmi classici)
Gestione della Memoria
Memoria Virtuale
Modello della memoria in Unix e Windows
Il File System
Implementazione del File System
File System in Unix e DOS |
Il sistema operativo dal punto di vista dell’utente e dell'amministratore (configurazione ecc)
[SGG]
Sistemi Operativi: Concetti ed Esempi - 6a ed. -
Slberschatz-Galvin-Gagne
Addison-Wesley
Cap: 1, 2, 4 (Sez. 1-5), 5, 6, 7, 9, 10, 11, 12, 20, 21, 22
[Tan]
I Moderni Sistemi Operativi
Andrew S. Tannenbaum
Jackson-Libri Universita'
Cap: 1, 2, 3, 4, 6, 10, 11, 13
[Bach]
Unix: Architettura di un sistema
Maurice J. Bach
Jackson
Cap:1, 2, 4, 6, 8 (Sez. 1), 9 (sez. 1-2)
Calendario delle lezioni e programma lezione x
lezione
Lunedi 2/10 e Mercoledì
4/10 ore 11:13
Presentazione corso, introduzione ai sistemi operativi
(definizione, cenni storici, struttura di calcolo)
Rif: Cap. 1, 2, e 22 di [SGG], Cap. on-line di [SGG]: SO storici e Cap. 1 di [Tan]
Giovedi 5/10 ore 14-16:
Struttura di un sistema operativo
Introduzione a Unix
Rif: Capitoli 1 ed 2
di [Bach]
Altro materiale:
Gestione device: registro
dei device (Linux) con indicazione di
Major, Minor Number e nome del Device File per ogni (tipo di) dispositivo
Lunedì 9/10 ore 11-13:
Processi
Rif: Cap. 2: Sez. 2.1-2.2 di [1] e Cap. 4: Sez 4.1-4.3 e 5 di [2]
Mercoledì 11/10 ore 11-13
Processi in unix (vedi lucidi lez. Precedente)
Threads
Rif: Cap. 2, Sez. 2 di [Tan] e Cap. 5 di [SGG]
Altro materiale:
Giovedi 12/10 ore 14-16,
Lunedì 16 e Mercoledì 18 ore 11-13
Cooperazione
Lucidi visti a lezione (disponibile versione con aggiunte)
Rif: Cap. 2, Sez. 3-4 di [Tan] e Cap. 7, Sez 1-7 di [SGG]
Giovedi 19/10 ore 14-16
Semafori e monitor
Rif: vedi cooperazione
Semafori binari e implementazione semafori non binari
Appunti su semafori, monitor e problemi classici di sincronizzazione
Altro materiale:
Semafori (da
Wikipedia)
Lunedi 23/10 e Mercoledì
25/10 11-13
Implementazione Monitor
Scambio di messaggi e problemi di concorrenza classici
Appunti su semafori, monitor e problemi classici di sincronizzazione
Approfondimenti Peterson, Bakery e 5 Filosofi
Prova di correttezza Peterson (in inglese)
Spiegazione Bakery (in inglese)
Esempio
esecuzione soluzione dei 5 filosofi
Altro materiale
Giovedi 26/10 14-16
Scheduling CPU
Rif: Cap. 2: Ultima sezione di [Tan], Cap. 6 di [SGG], Cap . 8 (Sez. 1) di [Bach]
Appunti:
processi e concorrenza
Lunedi 30/10 11-13
Esercizi su cooperazione
Mercoledì 1/11: festa
Giovedì 2/11 14-16
Scheduling CPU (vedi 26/10)
Libreria POSIX Pthreads
Lunedì 6/11 11-13
Foglio3 (vedi Esercizi
scheduling per soluzioni)
Mercoledì 8/11 11-13
Gestione delle risorse e deadlock (stallo)
Rif: Cap. 3 di [Tan] e Cap. 8 di [SGG]
Lunedì 13/11: Esercizi vari
Giovedi 9/11 14-16 e
Mercoledì 15/11 11-13
Gestione della memoria principale
Appunti: gestione della memoria
Rif: Cap. 4 di [Tan] e Cap. 9 di [SGG]
Altro
materiale : Memory Management Organization
Giovedi 16/11 14-16:
Memoria virtuale
Appunti: gestione della memoria
Rif: Sez. 4.3-4.7 di [Tan] e Cap. 10 di [SGG]
Altro materiale (da Wikipedia)
Algoritmi di rimpiazzamento delle pagine
Lunedì 20/11 11-13
Esercizi su memoria principale
Mercoledi 22/11 11-13
Gestione della memoria in Unix e Window
Rif: Sez. 10.4 e 11.5
di [Tan] e Cap. 21.3.3.2 di [SGG] e Cap 9 (Sez. 1, 2) di [Bach]
Giovedi 23/11 14-16,
Mercoledì 29/11 11-13
Gestione della memoria secondaria: file system manager
Appunti: gestione del file system
Rif: Capitolo 6 di [Tan] e Cap. 11 e 12 di [SGG]
Altro
materiale
File System Integrity Checker (MD5
checksum...)
Lunedi 27/11 11-13
Esercizi su file system
Giovedì 30/11
Esempi di file system: CP/M, FAT, UFS,VFS, Minix, Ext, NTFS, CDROM
Lunedi 4/12, Mercoledì
6/12, Mercoledì 13/12, Lunedì 18/12
Linux da amministratore vedi dispense Piccardo
-
Introduzione a Linux, descrizione sommaria di
varie distribuzioni (www.distrowatch.com)
- Installazione di una distribuzione Debian 3.1 Sarge con cenni a vari
argomenti:
- architettura di base (paragrafo 1.1.1 delle dispense)
- Funzionamento del sistema (1.1.2)
- kernel modulare e VFS (1.1.3 e 1.2.1)
- FHS (1.2.3)
- mount e fstab (1.2.4)
- Controllo degli accessi (1.4 tranne 1.4.5 )
- shell (2 fino a 2.1.3 compreso)
- scripting elementare (2.1.6)
- comandi per la documentazione (2.3.1)
- comandi per la gestione dei tempi
- file di configurazione (3, 3.1.2, 3.1.3)
- servizio cron (3.3.1)
- servizio syslog (3.3.0)
- gestione degli utenti e gruppi (4.3 tutto)
- il partizionamento (5.2.2. e 5.2.3)
- l'avvio del kernel (5.3.1)
- GRUB (5.3.3)
- sistema di inizializzazione alla SysV (5.3.4)
Lunedi 11/12, Mercoledì 20/12
e Giovedì 21/12
Esercizi riepilogativi e simulazione scritto
Storia e tipologia dei S.O. PDF (1xfoglio) - PDF (4xfoglio)
Struttura dei sistemi di calcolo PDF (1xfoglio) - PDF (4xfoglio)
Strutture dei S.O. PDF (1xfoglio) - PDF (4xfoglio)
Introduzione a Unix PDF (1xfoglio) - PDF (4xfoglio)
Introduzione ai Processi PDF (1xfoglio) - PDF (4xfoglio)
Introduzione ai Threads PDF (1xfoglio) - PDF (4xfoglio)
Libreria POSIX Threads - Link pagina ing. Pisa (vedi lucidi POSIX Threads I e II)
Cooperazione tra
processi (19/10): PDF
(1xfoglio) - PDF (4xfoglio)
[versioni precedenti (15/10): PDF
(1xfoglio), (18/10): PDF
(1xfoglio) ]
Semafori e monitor PDF (1xfoglio) - PDF (4xfoglio)
Implementazione semafori con monitor: PDF
Implementazione monitor con semafori: PDF
Scambio di messaggi, barriere, problemi classici di sincronizzazione: PDF (1xfoglio) - PDF (4xfoglio)
Scheduling della CPU : PDF (1xfoglio) - PDF (4xfoglio)
Gestione risorse e deadlock (stallo) : PDF (1xfoglio) - PDF (4xfoglio)
Gestione della memoria principale : PDF (1xfoglio) - PDF (4xfoglio)
Memoria virtuale: PDF (1xfoglio) - PDF (4xfoglio)
Gestione memoria Unix e Windows 2000 : PDF (1xfoglio) - PDF (4xfoglio)
File System : PDF (1xfoglio) - PDF (4xfoglio)
Esempi File System : PDF (1xfoglio) - PDF (4xfoglio) - versione rivista/estesa –
Linux da Amministratore :
PDF (1xfoglio, >300 pagine,
selezionare solo argomenti indicati da Roggero) -
copyright Simone Piccardi
Approfondimento su Windows 2000/XP
Lucidi Prof. Montresor-Prof.
Davoli (Bologna) fino a pag. 67 (fault tolerance esclusa):
PDF 2 lucidi per pagina
PDF
4 lucidi x pagina
Capitoli on-line
Sistemi operativi storici
Il sistema operativo Linux
Il sistema operativo Windows XP
Il sistema operativo Windows 2000
Appunti in linea (Prof.ssa
Gianuzzi e Prof.ssa Dodero)
Semafori,
Monitor e Problemi classici di programmazione concorrente
Gestione della
memoria principale
Appunti in linea (Dr. Bencetti)
Note su Linux, Hard disk, Master Boot Record, Conf. Servizi
Esercizi su processi (Foglio1 con soluzioni)
Esercizi su memoria principale
Scritto sulla parte di teoria con "domande" ed "esercizi"
Esempio di esame con soluzioni
Materiale per esame:
Indicazioni su capitoli e sezioni libri testo:
Vedi Testi di riferimento
Materiale e riferimenti lezione per lezione:
Vedi
Calendario delle lezioni
e Materiale in linea
Esempi e testo
Esempio di esame con soluzioni
Esempio di domande sulla II parte del corso
Testi e
soluzioni del primo compitino (febbraio 2004)
Testo e
soluzioni del secondo compitino (gennaio 2004)
Soluzioni del compitino 11 novembre 2004
Testo A (prod.cons con monitor)
Risultati e voti
Appello del 19 settembre 2007
Appello del 20 luglio 2007
Appello del 14 giugno 2007
Appello del 15 febbraio 2007
Appello del 10 gennaio 2007
Sviluppo commerciale
http://researchweb.watson.ibm.com/compsci/os/index.html
http://www.sgi.com/developers/technology/
http://www.hp.com/products1/unix/operating/
http://www.tru64unix.compaq.com/
http://research.microsoft.com/research/topics/
Sviluppo non commerciale
Sistemi Operativi in the news
Microsoft studia Linux: "Restiamo noi i migliori" di Riccardo Staglianò (La Repubblica, 03.10.2002)
IBM's
"Blue Gene" to run on Linux di Michael Kanellos ( ZD Net News, 25.10.2002)
Riviste
Linux_Journal Una rivista mensile interamente dedicata al sistema operativo Linux. Una parte degli articoli presenti nella versione cartacea sono disponibili anche in linea.
Linux Magazine Un'altra rivista mensile interamente dedicata al sistema operativo Linux. Una parte degli articoli presenti nella versione cartacea sono disponibili anche in linea. Interessante la sezione Gearheads Only
Libri on-line
M. Mitchell, J. Oldham, e A. Samuel, Advanced Linux Programming Un libro in inglese sulla programmazione di sistema in ambiente Linux.
S. Piccardi, Guida alla Programmazione in Linux Un libro in italiano sulla programmazione di sistema in ambiente Linux ancora in fase di sviluppo.
T. Aivazian, Linux 2.4 Internals Un libro introduttivo in inglese ai kernel 2.4 di Linux.
A. Rubini e J. Corbet, Linux Device Drivers, 2nd Edition Un libro in inglese su come implementare driver di dispositivo per kernel 2.4 di Linux.
Pagine web interessanti
Leonardo Giordani, Programmazione concorrente: Principi e introduzione ai processi. LinuxFocus fornisce articoli di supporto e documentazione su Linux nei paesi non aglofoni. Il presente articolo introduce alla multiprogrammazione ed alla sua implementazione nel sistema operativo Linux. La versione in italiano è disponibile qui.
Andries Brouwer, A small trail through the Linux kernel Un interessante viaggio nel kernel 2.4 di Linux. Una traduzione in italiano è disponibile qui.
Daniel Robbins, Introducing Ext3. Il settimo dei dodici articoli della serie Advanced filesystem implementor's guide.
Russell Quong, Shell scripts in 20 pages. Molte risposte ai dubbi sulla programmazione di shell.
VX Heavens. Un sito in inglese interamente dedicato ai virus, con tutorial, articoli, eseguibili e sorgenti. Le informazioni contenute possono aiutare a capire meglio come difendersi.
Farsite. Un progetto della Microsoft per la realizzazione di un file system distribuito.