Dipartimento di Informatica e Scienze dell'Informazione
Corsi di Sistemi Operativi e
Laboratorio di Sistemi Operativi - a.a.1999/2000
(Corso di Laurea in Informatica e Diploma in Informatica)
Docenti: dottoressa
Gabriella Dodero (email dodero@disi.unige.it)
e dottoressa Vittoria
Gianuzzi (email gianuzzi@disi.unige.it)
Descrizione dei Corsi
Lo scopo dei corsi e' di fornire competenze sull'argomento dei sistemi
operativi, sia come strutture interne e principi di progettazione, sia
come utilizzatore esperto e sistemista.
Il corso di Laboratorio, abbinato al corso di Sistemi Operativi, verte
sui sistemi operativi Linux e Minix. Gli studenti avranno accesso al codice
sorgente di Minix e ne modificheranno una parte come progetto di fine corso.
Nel successivo programma le parti indicate come "Laboratorio"
fanno riferimento ad alcune ore di lezioni in aula, collegate al corso
di Laboratorio.
Programma del Corso di Sistemi Operativi
- Introduzione
- Principi di base sui Sistemi Operativi: cenni storici e richiami al
concetto di "Struttura degli elaboratori": sistemi monolitici,
a livelli, macchine virtuali, modello client-server, sistemi distribuiti.
- Definizione e struttura dei processi sequenziali e files. Interruzioni
e chiamate di sistema.
- Esempio di organizzazione interna di un sistema operativo: Unix. Primitive
di sistema relative alla gestione dei processi, dei dispositivi di I/O,
della memoria centrale e dei file, con relative strutture dati.
- Laboratorio. Esempio di Sistema Operativo: Linux (da utente): principali
comandi, shell e make.
- Sistemi Centralizzati
- Definizione e struttura dei processi sequenziali e concorrenti
- Problemi classici di comunicazione e sincronizzazione fra processi
e mutua esclusione.
- Deadlock: metodi di avoidance, prevention e detection-recovery.
- Schedulazione dei processi. Scheduling FCFS, SJF, Round Robin, Multi
level queue, Aging, Deadline.
- Laboratorio: gestione dei processi in Unix e Minix; struttura del kernel
Minix.
- Gestione della memoria: complementi su paginazione e segmentazione.
Paginazione a richiesta, politiche di rimpiazzamento, paging e swapping.
- Laboratorio: metodi di implementazione del Memory Management; struttura
e sorgenti del Memory Manager di Minix.
- Gestione degli archivi: descrittore di file, allocazione dei blocchi,
cenni sulla security.
- Laboratorio: metodi di implementazione del File System.
- Laboratorio: Linux da superuser.
- Sistemi Distribuiti
- Reti di computer: concetti hardware e topologie di reti.
- Comunicazione: Livelli OSI (cenni), Protocolli Ethernet e Token Ring,
Problemi di naming su rete, Protocolli IP, TCP e UDP, Caratteristiche di
Internet, Application Interface di Unix, modello client-server.
- Problemi di sincronizzazione: Tempo globale e time-stamp, Mutua esclusione
centralizzata (elezione del leader) e distribuita, Implementazione di azioni
atomiche.
Prerequisiti del Corso
E' indispensabile aver frequentato il corso di Architetture (I anno)
e relativo Laboratorio, anche se non e' richiesto il superamento dell'esame.
E' indispensabile aver frequentato il corso di Algoritmi (I anno) e relativo
laboratorio, in particolare saper svolgere semplici esercizi di programmazione
C; non e' richiesto il superamento dell'esame.
Testi di riferimento
- Appunti del corso.
Parte del corso e' disponibile in formato
word e un altra parte in formato
html.
- J.L.Peterson - A.Silbershatz, Operating Systems Concepts, 2nd Ed.,
Addison-Wesley, 1985.
- A.S.Tanenbaum, Operating Systems, Design and Implementation, Prentice
Hall Int., 1987.
- A.S.Tanenbaum, Modern Operating Systems, Prentice Hall Int., 1992.
- Bach, The design of the Unix Operating System, Prentice Hall, 1986
(ed. italiana: Unix: Architettura di Sistema, Jackson).
Programma di Laboratorio di Sistemi Operativi
- Utilizzo del Sistema Operativo Linux: principali comandi, Bourn Again
Shell
con
esercizi, programmi per la gestione di file e processi, uso di make.
Esempi
in C su FTP. Istruzioni sull'utilizzo di
Linux in Laboratorio.
- Uso del sistema Minix. Istruzioni sull'utilizzo di
Minix in Laboratorio. Queste ed altre informazioni sono reperibili
su ftp.
Per superare l'esame e' necessario avere svolto una esercitazione sul
sistema Minix, in gruppi di 3-4 persone.
Esercitazioni dell'anno 1996/97
Prima
Esercitazione.
Seconda
Esercitazione.
Esercitazioni dell'anno 1997/98
Prima
Esercitazione (
Note )
Seconda
Esercitazione (facoltativa) (
Note )
Esercitazioni dell'anno 1998/99
Prima
Esercitazione.
Seconda
Esercitazione.
Esercitazioni dell'anno 1999/2000
Prima
Esercitazione.
Seconda Esercitazione.
Orario del corso e del Laboratorio di Sistemi Operativi
| |
lunedi' |
martedi' |
mercoledi' |
giovedi' |
venerdi' |
| Sistemi Op. |
11-13 |
9-11 |
10-12 |
14-16 |
11-13 |
| Laboratorio |
14-16 |
|
|
9-11 |
|
I gruppi che hanno ore del mattino o del pomeriggio libere (fino alle
19) possono frequentare il laboratorio anche in altri orari, compatibilmente
con le ore di laboratorio di altri corsi, e avvisando con email i docenti
del corso.