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.