Sistemi Operativi I a.a. 2006/07

---

Docenti

Teoria:

Amministrazione Linux:

Giorgio Delzanno
Ufficio 104 (I piano) D.I.S.I.
Tel. 010-3536638
e-mail: giorgio <at> disi.unige.it

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

*   Orario e ricevimento

*   Programma del corso

*   Testi di riferimento

*   Calendario delle lezioni

*   Materiale in linea:

*   Trasparenze viste a lezione (PDF),

*   Appunti in linea (HTML)

*   Esercizi

*   Modalità e sessioni d'esame

*   Risultati e voti

*   Registrazione agli appelli (sito DIDATTICA del DISI)

*   Link utili

 

---

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)


Torna menu principale

---

Programma     

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)

---

Testi e note di riferimento    

*   Appunti in linea 

*   Trasparenze viste a lezione

*   [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)

Torna menu principale

---


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)

*   Lucidi visti a lezione

*   Rif: Cap. 1, 2, e 22 di [SGG], Cap. on-line  di [SGG]: SO storici e Cap. 1 di [Tan]

*   Appunti

*   Giovedi  5/10 ore 14-16:
Struttura di un sistema operativo
Introduzione a Unix

*   Lucidi visti a lezione

*   Appunti

*   Rif: Capitoli 1 ed 2 di [Bach]

*   Altro materiale:

*   Unix (da Wikipedia)

*   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

*   Lucidi visti a lezione

*   Appunti

*   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

*   Lucidi visti a lezione

*   Rif: Cap. 2, Sez. 2 di [Tan] e Cap.  5 di [SGG]

*   Altro materiale:

*   Thread in Linux

*   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]

*   Appunti

 

*   Giovedi 19/10 ore 14-16
Semafori e monitor

*   Lucidi visti a lezione

*    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

*   Lucidi visti a lezione

*   Scambio di messaggi e problemi di concorrenza classici 

*   Lucidi visti a lezione

*   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

*   Metodi sincronizzati in Java


*   Giovedi 26/10 14-16
Scheduling CPU

*   Rif: Cap. 2: Ultima sezione di [Tan], Cap. 6 di [SGG],  Cap . 8 (Sez. 1) di  [Bach]

*   Lucidi visti a lezione

*    Appunti: processi e concorrenza

 

*   Lunedi 30/10 11-13
Esercizi su cooperazione

*   Foglio1 con soluzioni

 

*   Mercoledì 1/11: festa

*   Giovedì 2/11 14-16

*   Scheduling CPU (vedi 26/10)

*   Libreria POSIX Pthreads

*   Lucidi visti a lezione

*   Tutorial Thread Posix

*   Specifica pthread.h

 

*   Lunedì  6/11 11-13

*   Foglio2

*   Foglio3  (vedi Esercizi scheduling per soluzioni)

*   Mercoledì 8/11 11-13

            Gestione delle risorse e deadlock (stallo)

*   Lucidi visti a lezione

*   Appunti: 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

*   Lucidi visti a lezione

*   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

*   Lucidi visti a lezione

*   Appunti: gestione della memoria

*   Rif: Sez. 4.3-4.7 di [Tan] e Cap. 10 di [SGG]

*   Altro materiale (da Wikipedia)

*   Paginazione

*   Memoria virtuale

*   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

*   Lucidi visti a lezione

*   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

*   Lucidi visti a lezione

*   Appunti: gestione del file system

*   Rif: Capitolo 6 di [Tan] e Cap. 11 e 12  di [SGG]

*   Altro materiale

*   File System Check (fsck)

*   Scandisk

*   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

*   Lucidi visti a lezione

*   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

 

---


Materiale lezioni

Lucidi

Repository con tutti i lucidi

*   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

  Il sistema operativo FreeBSD

 

Appunti in linea (Prof.ssa Gianuzzi e Prof.ssa Dodero)

 

*   Cenni storici

*   Unix da utente

*   Processi e concorrenza

*   Semafori, Monitor e Problemi classici di programmazione concorrente

*   Scheduling dei Processi

*   Deadlock

*   Gestione della memoria principale

*   Gestione del file system



Appunti in linea (Dr. Bencetti)

 

*    Note su Linux, Hard disk, Master Boot Record, Conf. Servizi

 

 

Torna menu principale

---

Esercizi    

*   Esercizi su processi (Foglio1 con soluzioni)

*   Esercizi su scheduling

*   Esercizi su memoria principale

*   Esercizi su file system

*   Vecchi esami


Torna menu principale

---

 

Esame    
Modalita' e materiale

 

 

*   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)

*   Esame Gennaio 2004

*   Esame Febbraio 2004

*   Esame Aprile 2004

*   Soluzioni del compitino 11 novembre 2004

Testo A (prod.cons con monitor)

Testo B (funzione shift)


Torna menu principale

---

Risultati e voti

 

*           Appello del 19 settembre 2007

*           Testo

*           Risultati

 

 

*           Appello del 20 luglio 2007

*           Testo

*           Risultati

 

*           Appello del 14 giugno 2007

*           Testo

*           Risultati

 

 

*           Appello del 15 febbraio 2007

*           Testo A

*           Testo B

*           Risultati

 

*           Appello del 10 gennaio 2007

*           Testo A

*           Testo B

*           Risultati

 

Torna menu principale

---


Link utili   


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

*   BSD

*   Linux

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.

Torna menu principale

---