Home page SO 02/03 corso-C
 



Scopo del corso
 

Il corso introduce i principi ed i concetti fondamentali su cui si basano i sistemi operativi e analizza in dettaglio come questi si concretizzano nei sistemi reali. In particolare, vengono analizzate le tecniche che consentono di coordinare e gestire le risorse di un sistema di elaborazione e che permettono di trasformare la macchina fisica in una macchina astratta, dotata di funzionalita' piu' convenienti per l'utente. Il corso lascia ampio spazio alla descrizione e all'esemplificazione di come i vari concetti presentati sono realizzati nei sistemi Unix/Linux e in quelli della famiglia Microsoft Windows. 

Testi

Andrew S. Tanenbaum I MODERNI SISTEMI OPERATIVI, Seconda Edizione, Jackson Libri (Aprile 2002) ISBN: 8825618980  Euro 51,50 (versione italiana)

Il volume e' la traduzione in italiano del testo : Andrew S. Tanenbaum. Modern Operating Systems: Second Edition. Prentice Hall 2001 ISBN 0-13-031358-0 (in Inglese)

E' indifferente usare la versione inglese o italiana.

Testi di approfondimento:
Dave Solomon and Mark Russinovic. Inside Microsoft Windows 2000 3rd Edition MICP ISBN: 0-7356-1021-5
Uresh Vahalia. Unix Internals: the new frontiers. PrenticeHall 1995 ISBN 0-13-101908-2

Modalita' di Esame
 

Prova scritta, sostituibile dai compitini e prova orale.

Il programma del corso e' diviso in due parti : (parte A) Introduzione, Processi, Thread, Risorse e Stallo e (parte B) resto del corso.

COMPITINI
Il primo compitino riguarda la parte A del programma, il secondo la parte B.
Ogni compitino e' costituito da 10 domande a risposta aperta
(esempi di domande/risposte). Il tempo a disposizione e' di due ore.
Chi deve recuperare un compitino o vuole migliorarne il voto
puo' farlo durante le prove scritte dei normali appelli con le modalita' discusse nel prossimo punto.

PROVA SCRITTA 
La prova scritta e' suddivisa in due parti: la prima relativa alla parte A del programma e la
seconda relativa alla parte B. Ogni parte consta di 5 domande a risposta aperta (esempi di domande/risposte). Il tempo complessivo e' di due ore.
Chi deve recuperare un compitino o migliorarne il voto puo' farlo rispondendo solo alle domande della parte relativa al compitino da migliorare (in una sola ora).

ATTENZIONE: La partecipazione ad una prova scritta implica la perdita immediata  dei voti ottenuti precedentemente. In particolare: se lo studente ripete l'intera prova scritta perde il voto ottenuto nei compitini o nell'ultimo scritto consegnato. Se invece lo studente intende ripetere uno dei due compitini conserva il voto ottenuto null'altro.

PROVA ORALE e VOTO FINALE
Lo studente e' ammesso alla prova orale se ha superato lo scritto o entrambi i compitini. L'ammissione alla prova orale e' valida per l'intero anno accademico (fino a febbraio 2004). I compitini si considerano superati se lo studente consegue una votazione di almeno 15/30 nella media dei due. Lo scritto si considera superato se lo studente consegue almeno 15/30.
IL voto finale e' dato per il 50% dai voti dei compitini o dello scritto e per il 50% dall'esito della prova orale.
 

Sommario delle Lezioni ed esercitazioni

IMPORTANTE:
--- Gli argomenti delle lezioni non ancora svolte sono suscettibili di modifica. Controllate sempre la versione piu' aggiornata.
--- Copie cartacee delle trasparenze sono disponibili presso la copisteria SPEEDY
 

N.

Argomento

Lucidi

Data

Commenti

1

Introduzione

Lucidi

17/2/03

TB capitolo 1

2

Processi

Lucidi

19/2/03

Il modello a processi, system call, interruzioni

TB capitolo 1 e 2

3

Thread

Lucidi

24/2/03

Il modello a thread, thread user level e kernel level, esempi, modelli ibridi

TB capitolo 2

4, 5

Meccanismi di IPC

Lucidi

26/2/03 3/3/03

Meccanismi di Inter Process Communications (disabilitazione delle interruzioni, TSL, semafori, monitor, scambio messaggi). Soluzione di tipici problemi di interazione con semafori.

TB capitolo 2

6

Scheduling Processi e Thread in Unix

Lucidi scheduling

Lucidi Unix

5/3/03

Problema dello scheduling in sistemi batch ed interattivi, RR, code di priorita'.

(TB capitolo 2)

Struttura di unix, la SC fork()

TB capitolo 10.

7

Processi e IPC in Unix

Vedi Lucidi Unix lezione precedente

10/3/03

Creazione di processi : fork, exec. Terminazione di processi: exit, waitpit. Processi idle e processi zombie.

Meccanismi di IPC : pipe e segnali.

TB Capitolo 10.

Per i Segnali integrare con la dispensa di LPS-C e il capitolo 'Unix internals' del Glass (libro di testo di LPS) Home LPS

8

Scheduling e thread in Unix

Vedi Lucidi Unix lezione precedente

12/3/03

Implementazione di processi, user area e process table. I thread POSIX, implementazione dei thread. Scheduling di primo e secondo livello. Scheduling di processi in Unix, Thread scheduling in Linux.

TB Capitolo 10

9

Processi e Thread in Windows 2000

Risorse e stallo (1)

Lucidi Windows

Lucidi Risorse

14/3/03

(recupero)

Windows 2000: Win32 API, job, processi, thread e fibre. Scheduling.

TB capitolo 11

Risorse e deadlock, generalita', grafi di Holt, condizioni di Coffman, algoritmo dello struzzo

TB capitolo 3

10

Risorse e stallo (2)

Vedi lucidi Risorse lezione precedente

17/3/03

Individuare lo stallo (risorse singole e multiple), prevenire lo stallo (algoritmo del banchiere per risorse di uno o piu' tipi)

TB capitolo 3

11

Dispositivi

Lucidi Disp. (1)

Lucidi Disp. (2)

Lucidi Disp. (3)

18/03/03

(recupero)

Prevenire lo stallo negando le condizioni di Coffman. Spooling.

Struttura del software di I/O. Richiami di hardware, i gestori delle interruzioni.

TB capitolo 3 e 5

12

Dispositivi


19/03/03

Driver dei dispositivi, software di I/O indipendente dal dispositivo, software di I/O in spazio utente. Spooling.

Struttura di un disco rigido, i RAID.

TB capitolo 5

13

File system : Unix

Lucidi FS Unix

24/03/03

Dispositivi : formattazione a bassoed alto livello, algoritmi di scheduling del braccio

TB capitolo 5

FS di Unix : File, directory, i-node, descrittori di file, tabelladei file aperti, tabella degli i-node, apertura di un file.

TB capitolo 10

14


Esercitazione di riepilogo sulla prima parte del programma.

26/03/03

16



31/3/03

FS di Unix: link, mounting, lock, implementazione FFS di Berkley, Unix V7.

TB capitolo 10

17


Lucidi FS generale

7/4/03 

Caratteristiche dei file system. Implementazione dei file: allocazione contigua, liste concatenate, FAT, i-node . Implementazione delle directory: le directory in Unix V7 e FAT-16, gestione dei nomi lunghi. Ricerca su directory affollate: funzioni hash, caching.

TB capitolo 6

18


(solo un'ora 16.00--17.00)

9/4/03

Rappresentazione dei blocchi liberi: bitmap, lista libera di blocchi. Settori difettosi: rimpiazzamento, bad, block file. Bacup, consistenza di un file system, fsck.

TB Capitolo 6

--


(lezione soppressa)

14/4/03


--


(lezione soppressa)

16/4/03


19

File system: casi di studio(1-2)

Lucidi FS casi di studio (1)

Lucidi FS casi di studio (2)

28/4/03

Stable storage, buffer cache, incremento delle prestazioni di un file system.

Il file system ISO9660. FAT-12, FAT-16, FAT-32. NTFS. Chiamate Win32 per i File.

TB Capitolo 6 e 11

20

File system: casi di studio (3)

Introduzione alla gestione della memoria, swapping.

Lucidi FS casi di studio (3)

Lucidi memoria (1)

30/4/03

--


(Lezione soppressa)

5/5/03

21

Paginazione.

Lucidi memoria (2)

Lucidi memoria (3)

7/5/03

.

22

Algoritmi di sostituzione


12/5/03




Lucidi memoria (4)


Materiale in piu' non trattoto a lezione, su: Gestione della memoria in Unix e Gestione della memoria in Windows

23


Lezione di riepilogo per il secondo compitino

14/5/03

Vedi testi dei compiti al giorno 26/03/2003


 

Alcuni siti web (curiosita' e puntatori, solo per chi vuole approfondire)