Corso di Sistemi Operativi, AA 2007-2008. Programma Preliminare ---------------------------------------------week 1-----------------------------------------------------Giov.20/9/07(2h) Sito web. Modalita' esame, provette, documentazione, esercizi. Concetti Generali Architettura di un calcolatore, punti di vista: macchina astratta, gestione risorse, architettura. Servizi di un SO. Overhead, modalita' operative processore Ven.21/9/06(3h) classificazione SO, storia dei SO, architettura interna, UNIX, Programmazione concorrente Cos’e’ un processo: processi come ambiente, indipendenza dei processi Modelli a coda d’attesa di un SO. Pseudocodice di uno schedulatore, concorrenza, gestione della concorrenza. Time sharing, context switch. Processi concorrenti e Thread --------------------------------------------week 2-----------------------------------------------------Giov.04/10/07(2h) Spooling, risorse, file. IPC di System V. Stati di un processo. Concorrenza.. Generazione processi, thread, grafo alle precedenza, problemi della concorrenza, identificatori del processo, Ven.05/10/07(3h) Programmazione multithread. Libreria utente. Thread di sistema e di utente. Java. Ruolo della shell, redirezione I/O, pipe, processi in background/foreground. Rappresentazione della concorrenza per il processo Read-Exec-Scrivi ---------------------------------------------week 3----------------------------------------------------Giov.11/10/07(2h) Concorrenza. Come si crea la concorrenza. Fork e join. Cobegin e coend. Grafi delle precedenze Mutua esclusione_esempio con prod/cons. Arbitro. Soluzioni hw e architetturali Ven.12/10/07(3h) Soluzioni sw: alternanza stretta, Peterson. Semafori. Protezione di sezioni critiche con semafori -------------------------------------------week 4-----------------------------------------------------Giov.18/10/07(2h) Thread in Java. Creazione di thread. Creazione di un grafo alle precedenze. Semafori in Java. Protezione di sezioni critiche Ven.19/10/07(3h) Scrittura in Java di problemi classici : produttore/consumatore, barbiere, lettori/scrittori Sincronizzazione, problema dei 5 filosofi. Stallo. Concetti di determinatezza. Gestione risorse: gestione del processore Iniziato a parlare di schedulazione 20h---------------------------------week 5-----------------------------------------------------Giov.25/10/07(2h) Prima provetta: concetti generali, concorrenza: soluz. Sw e semafori Ven.26/10/07(3h) Schedulazione FIFO e SJF, prioritaria (Unix), predizione del tempo di elab., RR. Schedulazione SRJF, selfish, feedback. --------------------------------------------week 6-----------------------------------------------------Giov.1/11/07(2h) sospesa Ven.2/11/07(3h) ponte --------------------------------------------week 7------------------------------------------------------Giov.8/11/07(2h) Gestione risorse: gestione della memoria Gestione memoria contigua, partizioni fisse, variabili, regola del 50%, Ven.9/11/07(3h) Gestione memoria paginata, esempio di indirizzi virtuali, divisione innr. pagina virtuale e offsett, pagina fisica, traduzione, PMT, traduzione indirizzi, dimensione ottima di pagina considerando frammentazione e dimensione della pmt 30h----------------------------------------week 8-----------------------------------------------------Giov.15/11/07(2h) Gestione memoria paginata. Esempio pratico di gestione pmt, rimpiazzamento LRU e FIFO, anomalia FIFO, Working set, TLB, trashing. Gestione risorse: gestione della memoria di massa Ven.16/11/07(3h) Introduzione ai dischi, struttura, limiti, tempo di accesso, parametri disco, RPM, settore: header, CRC (cenni), gap CPU-disco memoria di massa. Tempi latenza, seek, trasferimento. Esempio di tempo di lettura contigua e frammentata, gestione coda disco (fifo, sstf,scan) , disk cache, raid,: striping, ECC) cenni file systems journaled, ext2-3, NTFS. --------------------------------------------week 9------------------------------------------------------Giov.22/11/07(2h) UNIX: UNIX: file system, protezione dei file in Unix, UFDT, file table Rivisto INODE, nr. Link, protezione file. File possono essere condivisi, i blocchi dati no. Rivedere le tabelle UFDT e Filetable. Ven.23/11/07(3h). Comandi Unix --------------------------------------------week 10----------------------------------------------------Giov.29/11/07(2h) seconda provetta: scrittura di piccoli programmi java di thread concorrenti, schedulazione, gestione memoria. Ven.30/11/07(3h) Unix internal 40h-----------------------------------------week 11---------------------------------------------------Giov.6/12/07(2h) esercitazione sulle macchine di facolta’ Ven.7/12/07(3h). Programmazione Korn shell 50h---------------------------------------week 12----------------------------------------------------Giov.13/12/07(2h) 2a provetta: stallo, schedulazione, gestione memoria, unix internal Ven. 14/12/07 Programmazione in Perl --------------------------------------------week 13---------------------------------------------------Giov.20/12/07(2h) 2° esercitazione sulle macchine di facoltà Ven. 21/12/07(3h) 3a provetta: gestione dischi, comandi Unix, programmazione Shell e Perl 60h