Sistemi operativi2012/13
Questo insegnamento illustra il funzionamento delle componenti fondamentali di un moderno sistema operativo.
Avvisi
-
Esiti prova scritta di Sistemi operativi del 30 gennaio 2014 e calendario prove orali
Sono disponibili gli esiti della prova scritta di Sistemi operativi del 30/1 e il calendario delle prove orali.
-
Luogo e ora della prova scritta di Sistemi operativi del 30 gennaio 2014
L'esame scritto del 30/1 si svolgerà nell'aula Beta di Via Comelico a partire dalle ore 8:30.
-
Esiti prova scritta di Sistemi operativi del 16 gennaio 2014 e calendario prove orali
Sono disponibili gli esiti della prova scritta di Sistemi operativi del 16/1 e il calendario delle prove orali.
Avvisi precedenti (15)
-
Luogo e ora della prova scritta di Sistemi operativi del 16 gennaio 2014
L'esame scritto del 16/1 si svolgerà nell'aula Alfa di Via Comelico a partire dalle ore 15:30.
-
Esiti prova scritta di Sistemi operativi del 9 settembre 2013 e calendario prove orali
Sono disponibili gli esiti della prova scritta di Sistemi operativi del 9/9 e il calendario delle prove orali.
-
Luogo e ora della prova scritta di Sistemi operativi del 9 settembre 2013
L'esame scritto del 9/9 si svolgerà nell'aula Beta di Via Comelico a partire dalle ore 15:00.
-
Esiti prova scritta di Sistemi operativi del 23 luglio 2013 e calendario prove orali
Sono disponibili gli esiti della prova scritta di Sistemi operativi del 23/7 e il calendario delle prove orali.
-
Luogo e ora della prova scritta di Sistemi operativi del 23 luglio 2013
L'esame scritto del 23/7 si svolgerà nell'aula Beta di Via Comelico a partire dalle ore 8:30.
-
Esiti prova scritta di Sistemi operativi del 4 luglio 2013 e calendario prove orali
Sono disponibili gli esiti della prova scritta di Sistemi operativi del 4/7 e il calendario delle prove orali.
-
Luogo e ora della prova scritta di Sistemi operativi del 4 luglio 2013
L'esame scritto del 4/7 si svolgerà nell'aula V3 di Via Venezian a partire dalle ore 8:30.
-
Esiti prova scritta di Sistemi operativi del 19 giugno 2013 e calendario prove orali
Sono disponibili gli esiti della prova scritta di Sistemi operativi del 19/6 e il calendario delle prove orali.
-
Luogo e ora della prova scritta di Sistemi operativi del 19 giugno 2013
L'esame scritto del 19/6 si svolgerà nell'aula beta di Via Comelico a partire dalle ore 14:30.
-
Modifica al calendario dell'insegnamento di Sistemi operativi
L'ultima lezione dell'insegnamento di Sistemi operativi avrà luogo lunedì 17/6 dalle 8:30 alle 10:30 in aula 405.
-
Annullamento lezione di Sistemi operativi del 30/5
La lezione del 30/5 è annullata a causa di una conferenza.
-
Sospensione del ricevimento studenti
Il ricevimento studenti su base regolare è sospeso fino al prossimo semestre. Gli studenti possono contattare il docente per un ricevimento su appuntamento.
-
Annullamento lezione di Sistemi operativi del 16/5 e del 22/5
Le lezioni del 16/5 e del 22/5 sono annullate a causa di un meeting di progetto della CE.
-
Sospensione del ricevimento studenti
Il ricevimento studenti del 2/5 e del 9/5 è sospeso. Gli studenti possono contattare il docente per un ricevimento su appuntamento.
-
Sospensione del ricevimento studenti
Il ricevimento studenti del 28/02 è sospeso. Gli studenti possono contattare il docente per un ricevimento su appuntamento.
Orari del corso
Le lezioni si svolgeranno presso il settore didattico di città studi, secondo il seguente orario:
| Giorno | Ora | Luogo |
|---|---|---|
| mercoledì | 8:30 - 10:30 | aula 405 |
| giovedì | 8:30 - 10:30 | aula 405 |
Eventuali variazioni rispetto al calendario pianificato verranno comunicate in aula e pubblicizzate nel paragrafo Avvisi di questa pagina.
Ricevimento studenti
Su appuntamento, stanza 5015 del Dipartimento di Informatica.
È possibile contattare il docente tramite posta elettronica, avendo cura di leggere preventivamente la guida predisposta dal Prof. Sebastiano Vigna e di specificare chiaramente nell'oggetto del messaggio il nome dell'insegnamento e l'anno accademico. In particolare, si invitano gli studenti a usare sempre come mittente l'indirizzo fornito loro dall'Ateneo (basato cioè sul dominio studenti.unimi.it) firmando con nome, cognome e matricola e ricordando che i tempi di risposta possono variare in funzione degli impegni del docente.
Materiale didattico
Il corso è prevalentemente basato sul seguente libro di testo: A. Silberschatz, P. B. Galvin, G. Gagne, Sistemi Operativi -- concetti ed esempi, ottava edizione, Pearson Paravia Bruno Mondadori S.p.A., 2009 (ISBN 978-88-7192-569-1). Siccome non è mai troppo presto per cominciare a leggere la documentazione tecnica in lingua inglese, i più avventurosi possono cimentarsi con l'edizione internazionale: Silberschatz, P. B. Galvin, G. Gagne, Operating Systems Concepts, 8th Edition, International Student Version, Wiley, 2009 (ISBN 978-0-470-23399-3).
Gli studenti che non hanno dimestichezza con il linguaggio C possono fare riferimento al testo storico: B. W. Kernighan, D. M. Ritchie, Il linguaggio C. Principi di programmazione e manuale di riferimento, seconda edizione, Pearson, 2007. Anche in questo caso non è una cattiva idea considerare di leggere la versione in lingua originale. Un testo più approfondito è invece K. N. King, C Programming -- A Modern Approach, W. W. Norton (in questo caso l'edizione italiana è disponibile ma sconsigliata a causa di una traduzione non ottimale).
La parte di corso relativa alla scrittura di codice multi-processo è spiegata sul libro di testo e nell'articolo Delve into UNIX process creation.
La scrittura di socket in C è spiegata nell'howto Sockets tutorial.
Gli script di shell sono introdotti nel tutorial BashGuide.
Programma
Il programma riguarda indicativamente i capitoli da 1 a 12 del libro di testo, oltre al resto del materiale indicato tra il materiale didattico. Il programma verrà aggiornato alla fine del corso.
Calendario delle lezioni
| Lezione | Data | Argomento | Materiale |
|---|---|---|---|
| L01 | 06/03/2013 | Richiami di architettura | |
| L02 | 07/03/2013 | Introduzione al linguaggio C | |
| L03 | 13/03/2013 | Introduzione al linguaggio C | |
| L04 | 14/03/2013 | Strutture dei sistemi operativi | |
| L05 | 20/03/2013 | Strutture dei sistemi operativi | |
| L06 | 21/03/2013 | Processi concorrenti | |
| L07 | 27/03/2013 | Processi concorrenti | |
| L08 | 04/04/2013 | Gestione del processore | |
| L09 | 10/04/2013 | Gestione del processore | |
| L10 | 11/04/2013 | Memoria condivisa e pipe | |
| L11 | 17/04/2013 | Socket | |
| L12 | 18/04/2013 | Thread | |
| L13 | 24/04/2013 | Sincronizzazione | |
| L14 | 02/05/2013 | Semafori | |
| L15 | 08/05/2013 | Rilevare e prevenire il deadlock | |
| L16 | 09/05/2013 | Evitare ed eliminare il deadlock | |
| L17 | 15/05/2013 | Gestione della memoria e allocazione contigua della memoria | |
| L18 | 23/05/2013 | Paginazione | |
| L19 | 29/05/2013 | Segmentazione. Memoria virtuale | |
| L20 | 05/06/2013 | Algoritmi di rimpiazzamento delle pagine | |
| L21 | 06/06/2013 | Implementazione della memoria virtuale | |
| L22 | 12/06/2013 | File system. Struttura delle directory e protezione | |
| L23 | 13/06/2013 | Implementazione di file system | |
| L24 | 17/06/2013 | I/O a basso livello |
