Sistemi Operativi I a.a. 2007/08

---

Docenti

Giorgio Delzanno
Ufficio 104 (I piano) D.I.S.I.
Tel. 010-3536638
e-mail: giorgio <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/aa0607.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

*   Esame: Risultati e calendario discussioni laboratorio

*   Registrazione agli appelli (sito DIDATTICA del DISI)

*   Link utili

 

---

Orario e ricevimento     

Orario lezioni

*   Lunedi 11-13 (aula 506)

*   Mercoledì 11-13 (aula 506)

*   Venerdi 11-13 (aula 506)

Ricevimento:

*   Martedì 11-13 (ufficio 104)


Torna menu principale

---

Programma     

Il programma prevede i seguenti argomenti (vedi programma dettagliato per il materiale 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 |

*    Laboratorio: uso, configurazione, programmazione di sistema

 


Torna menu principale

---

Testi e note di riferimento    

*   Appunti in linea 

*   Trasparenze viste a lezione

Teoria SO

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

UNIX e LINUX

*   [Bach]
Unix: Architettura di un sistema

Maurice J. Bach - Jackson : Cap:1, 2, 4, 6, 8 (Sez. 1), 9 (sez. 1-2)

*   Marc J. Rochkind. Advanced UNIX Programming 2nd Edition, Addison-Wesley Professional Computing Series, 2004.
Vedi anche il sito web del libro con sorgenti, esercizi e altre informazioni.

*    G. Glass, K. Ables. UNIX for Programmers and Users, Prentice Hall, 1999.

*    F. G. Fiamingo, L. DeBula, L. Condron Introduction to Unix (PDF)
Un’ottima introduzione a comandi e programmazione shell

*    GaPiL: Guida alla Programmazione in Linux (PDF)

*    Advanced Bash Scripting Guide (PDF)

Programmazione in C

*   Kernighan & Pike Programmazione nella pratica Addison-Wesley, 1999. ISBN 8871920724.
Un ottimo libro per migliorare lo stile di programmazione: insieme di consigli su come organizzare i programmi in modo ragionevole con esempi C e Java.

*   (su C) Kelley, Pohl. C: Didattica e Programmazione (seconda edizione), Addison-Wesley, 2004.


Torna menu principale

---


Calendario delle lezioni e programma lezione x lezione 

 

 

*   Lunedi 24/9 11-13: Introduzione al corso

*   Mercoledì 26/9 11-13 Storia, tipologia dei S.O, Struttura dei sistemi di calcolo Lucidi

*   Venerdi 28/9 11-13: lezione cancellata (missione Bruxelles)

*   Lunedì 1/10: Struttura dei sistemi di calcolo/SO Lucidi;

*   Mercoledi 3/10: Processi Lucidi 

*   Venerdi 5/10 e Lunedì 8/10: Processi Lucidi e thread Lucidi 

*   Lunedì 8/10, Mercoledì 10/10 e Venerdi 12/10: Cooperazione tra processi Lucidi

*   Lunedì 15/10: Unix: comandi e shell Lucidi, shell scripting Lucidi

*   Mercoledi 17/10: Laboratorio su uso Linux e scripting: Lucidi e manuali e guide ; Testo esercitazione

*   Venerdi 19/10: Semafori e monitor Lucidi

*   Lunedì 22/10: Ancora shell scripting Lucidi

*   Mercoledi 24/10: Laboratorio su uso Linux e scripting: Testo esercitazione

*   Venerdi 26/10: Semafori monitor, messaggi ed esempi Lucidi

*   Lunedì  29/10: Shell: Manipolazione stringhe e testo  Lucidi  Esercizi su concorrenza Foglio esercizi

*   Mercoledi 31/10: Laboratorio su uso Linux e scripting:  Testo esercitazione

*   Lunedì  5/11: Scheduling  Lucidi

*   Mercoledi 7/11: Laboratorio su prog. di sistema  Testo esercitazione      

*   Venerdi 9/11: lezione rimandata al 13/11

*   Lunedì  12/11: Prog. di sistema: intro/files  Lucidi

*   Martedi  13/11 – 14-16: Prog. di sistema: fork/wait/exec Lucidi

*   Mercoledi  14/11 – 11-13: Esercitazione lab Testo

*   Venerdi  16/11 11-12 e Lunedi 19/11– 12: Deadlock Lucidi

*   Lunedi 19/11 12– 13: Prog. di sistema: pipe senza/con nome Lucidi

*   Mercoledi 21/11 11-13: Esercitazione  Testo

*   Venerdi 23/11 11–13: Prog. di sistema: pthread Lucidi

*   Lunedi 26/11 11– 13: Gestione della memoria   Lucidi       

*   Mercoledi 28/11 11– 13: Gestione della memoria virtuale   Lucidi

*   Venerdi 30/11 10– 13: Esercizi in classe

*   Lunedi 3/12 11– 13: Gestione della memoria virtuale   Lucidi

*   Mercoledi 5/12 11– 13: Esercitazione in lab  Testo

*   Venerdi 7/12 11– 13: Gestione memoria virtuale  Lucidi esempi Unix e Windows Lucidi

*   Lunedì  10/12 e venerdi 14/12 11– 13: Gestione file system  Lucidi

*   Lunedì  17/12 11– 13:  Prog. Sistema: segnali e mmap Lucidi

 

 

Nuovo materiale:

*   Dispense di programmazione di sistema (PDF)

*   Unix e Prog. sistema (HTML)


Torna menu principale

 

---


Materiale lezioni

Lucidi

Repository con tutti i lucidi

Storia, tipologia dei S.O, Struttura dei sistemi di calcolo/SO PDF
Processi PDF 
Thread PDF 
Cooperazione tra processi PDF 
Unix: comandi e shell PDF  e  shell scripting  PPT (versione estesa)
Semafori e monitor PDF 
Messaggi  ed esempi classici (5 filosofi, lettori-scrittori) PDF 
Shell: manipolazione stringhe PS  e testo PS  
Scheduling PDF 
Programmazione di sistema: intro/op. su file PPT  
Programmazione di sistema: op. su processi PPT   
Gestione risorse e deadlock (stallo) :  PDF
Programmazione di sistema: pipe PPT  
Programmazione di sistema: thread HTML 
Gestione della memoria PDF  
Gestione della memoria virtuale PDF ed esempi:  Unix e Windows PDF
Gestione del file system PDF ed esempi  PDF
Programmazione di sistema: segnali PPT  


---

Ulteriore materiale x laboratorio

 

Comandi/Scripting Linux/Unix

* Uso della bash da Windows cygwin

*Appunti su Unix e Linux (x window, make, shell scripting) Prof. Gianuzzi

* Introduction to Unix (PDF) (~130 pagine)

*Manuali in linea di comandi e funzioni di libreria e system call: man nomefunzione/comando;  man -k argomento

*Manuale in linea della Bash HTML

*Guida in linea dei comandi shell  in Linux HTML

*Guida avanzata allo scripting Bash PDF (~700 pagine)

*Quick reference:  Comandi Unix PDF  (1xfoglio); Bash PDF;  Syscall Linux  PDF;  Linux admin PDF

Programmazione di Sistema

* Guida alla programmazione di sistema (S. Piccardo) PDF

* Dispense di programmazione di sistema (Gervasi-Pelagatti-Ruggeri-Scozzari-Sperduti) (PDF)

 


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 3 domande di teoria e 3 esercizi (vedi testi anni precedenti e sezione seguente) (da 0 a 26/27 punti)

*   NOTA: la teoria comprende  anche la parte sui diversi esempi di sistema operativo (ad es. process in Unix, file system NT, ecc)
      ma NON comprende la parte su comandi Unix, scripting e programmazione di sistema svolta in laboratorio

*   Discussione degli esercizi di laboratorio (su scripting, comandi Unix e prog. di sistema) svolti e consegnati durante l’anno (da 0 a 6 punti)
      Chi non ha consegnato gli esercizi  durante l’anno dovra’ svolgere degli esercizi sugli stessi temi durante la discussione

 

 

*   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

---

Esame: Risultati e calendario discussione laboratorio

 

*   Appello Gennaio 2008  Testo con soluzioni e voti  

*   Appello Febbraio 2008  Testo con soluzioni e voti  

*   Appello Febbraio 2008 bis  voti

*   Laboratorio: Calendario discussioni: Contattare il docente per prendere appuntamento

*   Appello Giugno 2008  voti

*   Appello Luglio 2008  voti

*   Appello Settembre 2008  voti

 


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
 

---