SISTEMI di ELABORAZIONE DATI

Diario Esami Orario Lezioni Prenota Esame

Parte 1 - Teoria

Sviluppo ed evoluzione dei Sistemi Operativi - Funzioni del Sistema Operativo. Storia dei sistemi operativi: le quattro generazioni precedenti. Struttura di un S.O.: sistemi monolitici, a livelli, macchine virtuali, modello client-server. Monoprogrammazione e multiprogranunazione. Sistemi time sharing.

Il modello a processi - Definizione di un processo. Stati di un processo. Corse critiche. Sezioni critiche. Comunicazione fra processi: attesa attiva, mutua esclusione, alternanza stretta, soluzione di Peterson, istruzione TSL, sospensione e risveglio: primitive sleep e wakeup, comunicazione mediante semafori, sincronizzazione mediante monitor: primitive wait e signal, scambio di messaggi: primitive send e receive, maibox. Problemi esemplificativi della comunicazione fra processi: produttori-consumatori, filosofi a cena, lettori-scrittori, barbiere che dorme.

Schedulazione di processi - Scheduler. Preemptive scheduling. Algoritmo round robin. Schedulazione con priorità, code multiple, algoritmo shortest job fìrst, schedulazione garantita, schedulazione a due livelli.

Gestione della memoria - Gestione senza swapping. Monoprogrammazione. Modello di multiprogrammazione. Multiprogrammazione con partizioni fisse. Rilocazione e protezione. Swapping. Gestione con partizioni variabili. Gestione mediante bitmap, liste concatenate, buddy system. Frammentazione interna ed esterna. Memoria virtuale. La paginazione. Tabelle delle pagine a uno e più livelli. Esempi di implementazione: PDP- 11, VAX, SPARC, 68030, MIPS R2000. Memoria associativa. Algoritmi di rimpiazzamento: NRU, FIFO, 2a opportunità, ad orologio, LRU, invecchiamento, algoritmi di stack. Anomalia di Belady. Calcolo delle dimensioni della pagina fisica e virtuale e del numero di componenti delle tabelle delle pagine. La segmentazione. Segmentazione pura e con paginazione. Implementazione nell'INTEL 386.

I1 file system - I file. Tipi di file: a caratteri e a blocchi. Attributi. Metodi di accesso. appatura. Organizazione gerarchica a directory. Implementazione del file system: allocazione contigua, a lista concatenata, con indice. Concetto di i-node. Implementazione delle directory in MS-DOS e UNIX. File condivisi. Gestione dello spazio su disco. Consistenza e congruità. La sicurezza dei dati. Metodi di protezione: autenticazione ed identificazione, domini di protezione, capability.

Gestione delle periferiche - 1/0 system. Dispositivi di 1/0 a caratteri e a blocchi. Controllori di canale. DMA. Software di 1/0.Gestione delle unità di memoria di massa. Gestione del clock. Gestione dei terminali.

 Il Sistema UNIX - Generalità ed evoluzione storica. organizzazione a guscio. Sella e kermes. Primitive di sistema. Gestione dei processi. Modello di memoria. Gestione del file system. Primitive di sistema. Gestione dell’IO.

Il sistema MS-DOS - Generalità ed evoluzione storica. La gestione dei processi. La shell di MSDOS. Le chiamate di sistema. Gestione dei processi. Modello di memoria. Gestione del file system. Primitive di sistema. Gestione dell'I/O. Interfacce GUI: Windows.

Sistemi distribuiti - Sistemi operativi di rete e NFS. Architetture di rete. Sistemi multiprocessore. Protocolli di comunicazione. Modello a livelli. Modello client-server. Sincronizza ione dei sistemi distribuiti. Thread. Tecniche di allocazione e schedulazione. File system distribuiti.

Parte II - Esercitazioni

Shell di UNIX - Comandi agenti su processi: kill, ps. Comandi agenti su directory: mkdir, rmdir, ls. Comandi agenti su file: cat, pg, cp, ln. programmi editor: ed e vi. Ridefinizione dell'input e dell'output. Piping e tee. Comandi agenti su dispositivi di memorizzazione: format, mkfs, fsck, dd, tar, cpio.

Amministrazione di sistema: file di configurazione. Creazione e gestione utenti e gruppi. Protezione dei dati: comandi chmod, chown e chgrp. Settaggio delle periferiche: mkdev ed mknod. Settaggio delle linee di comunicazione: stty.

Ambiente X-Windows - Interfaccia grafica a finestre. Dispositivi di puntamento. Gestione dei comandi. Trascinamento ed altre opzioni. Programmi di comunicazione.

Testi consigliati:
A.S.Tanenbaum - I moderni sistemi operativi - Ed. Jackson Libri. M.J.Bach -The Design of the LTNIX Operating System - Ed. Prentice Hall R.Thomas, J.Yates - LTNIX, la grande guida - Ed. Jackson Libri.