Teoria
La parte di teoria viene svolta in classe e prevede lezioni frontali ed esercizi. La parte di teoria e' a sua volta suddivisa nei seguenti moduli (tra parentesi il peso in CFU dei vari moduli):
MA (0.5)
Introduzione, storia, modelli e archiettura dei sistemi operativi
GSP(2.5)
Gestione dei processi (1 per definizioni generali/schedulazione e 1.5 concorrenza/coop.)
GMP(1.5)
Gestione della memoria principale (0.5 per definizioni generali, 1 per memoria virtuale)
GMS(1.5)
Gestione della memoria secondaria (0.5 per definzioni generali, 1 per implementazione file system)
Gli esercizi sulle varie parti vengono svolti in parallelo con le lezioni frontali.
Il contenuto dettagliato dei vari moduli e' specificato in seguito (vedi programma dettagliato).
Laboratorio
La parte di laboratorio viene svolta in parte in classe e in parte in un laboratorio guidato e prevede:
Programma dettagliato
Teoria
MA: Introduzione, storia, modelli e archietture dei sistemi operativi
Introduzione e storia dei sistemi operativi
Struttura dei sistemi di calcolo
Interazione tra hardware e software (trap ed interrupt)
Modelli ed architetture dei sistemi operativi
Kernel monolitici, a livelli, exo- e micro-kernel
Architettura di Unix, Linux e Windows (varie versioni)
GSP: Gestione dei processi (schedulazione e concorrenza)
Definizione di processi e thread e operazioni caratteristiche
Strutture dati per la loro gestione (process/thread control block)
Processi in Unix e Windows NT/XP (es. fork/create, gestione dei contesti)
Gestione dei processi
Schedulazione su mono/multi-processore
Algoritmi e strategie di schedulazione
Schedulazione in Unix, Linux (scheduler O(1)), Windows NT/XP
Concorrenza, cooperazione e sincronizzazione di processi
Definizione di un linguaggio per rappresentare processi concorrenti
Introduzione alle problematiche relative all'esecuzione concorrente di processi: race condition, sincronizzazione
Definizione del problema della sezione critica e descrizione di possibili soluzioni (hardware e software)
Meccanismi di sincronizzazione: semafori, monitor, messaggi
Soluzioni a problemi classici, es., produttore/consumatore, lettori/scrittori.
GMP: Gestione della memoria principale
Partizionamento e allocazione
Paginazione e segmentazione
Memoria virtuale
Architettura della memoria virtuale
Implementazione (tabella delle pagine a livelli, invertita)
Gestione dei page fault
Algoritmi di rimpiazzamento di pagine
Gestione della memoria in Unix, Linux e Windows NT/XP
GMS: Gestione della memoria secondaria (file system)
Definizione di file e operazioni caratteristiche
Implementazione del file system
Allocazione e indirizzamento blocchi su disco
Implementazione directory e navigazione in un file system
Panoramica storica sui file system: CP/M, FAT, NTFS, UFS, Ext
Indirizzamento sotto Unix e Linux (inodes) e NT (MFT)
Consistenza dei file system (dump e check di consistenza)
Laboratorio
Architettura di Linux e comandi principali
Scripting bash
costrutti principali
manipolazione di stringhe
uso di programmi di sistema (es. grep, find, sed)
Programmazione di sistema (uso di funzioni di sistema)
File (open, read, write) e directory
Processi (fork, exec, wait)
Thread (libreria Pthread)
Comunicazione tra processi (pipe e segnali)
Sistemi Operativi
Sistemi Operativi: Concetti ed Esempi - 6a ed. -
Slberschatz-Galvin-Gagne
Addison-Wesley
Cap: 1, 2, 4 (Sez. 1-5), 5, 6, 9, 10, 11, 12, 20, 21, 22
(no cap. 7 deadlock)
I Moderni Sistemi Operativi
Andrew S. Tannenbaum
Jackson-Libri Universita'
Cap: 1, 2, 4, 6, 10, 11, 13 (no cap. 3 deadlock)
UNIX e LINUX
[Bach] Unix: Architettura di un sistema
Maurice J. Bach - Jackson : Cap:1, 2, 4, 6, 8 (Sez. 1), 9 (sez. 1-2)
Marc J. Rochkind. Advanced UNIX Programming 2nd E di tion, Ad di son-Wesley Professional Computing Series, 2004.
Vedi anche il sito web del libro con sorgenti, esercizi e altre informazioni.
G. Glass, K. Ables. UNIX for Programmers and Users, Prentice Hall, 1999.
GaPiL: Guida alla Programmazione in Linux
Advanced Bash Scripting Guide (PDF)
Programmazione in C
Kernighan & Pike Programmazione nella pratica Ad di son-Wesley, 1999. ISBN 8871920724.
Kelley, Pohl. C: Didattica e Programmazione (seconda e di zione), Addi son-Wesley, 2004.
| Voto Medio | Numero Esami | Anno |
|---|---|---|
| 24.760 | 55 | 2010 |
| 26.100 | 20 | 2009 |
| 24.440 | 32 | 2008 |
| 24.000 | 40 | 2007 |
| 23.000 | 52 | 2006 |
| 24.000 | 82 | 2005 |