Programma del corso "Sistemi Operativi" con relativo materiale
Introduzione al corso: argomenti trattati, concetti introduttivi, modalita' esame,
- Richiami di architetture di calcolatori
- Concetti fondamentali: funzioni, utilita', uso
- Strutture dei sistemi operativi
Modelli statistici di Sistemi Operativi. Definizioni
- Introduzione ai modelli di concorrenza mediante code d'attesa ed esercizi
- Cenni di processi di Markov
- Esempi di soluzioni di code d'attesa con i processi di Markov
- Cenni di reliability dei sistemi ridondati
La concorrenza nei Sistemi Operativi: concetti e problematiche
- Concorrenza nei Sistemi Operativi: interleaving, grafi delle precedenze, strumenti linguistici, determinatezza
- Riepilogo delle caratteristiche fondamentali di Java
- Programmazione concorrente in Java
- Esempi di programmazione concorrente in Java
- Problematiche della programmazione concorrente: mutua esclusione
--> Peterson --> Lamport
- Mutua esclusione distribuita
- Problematiche della programmazione concorrente: stallo
--> Algoritmo del Banchiere
- Problemi classici di sincronizzazione
Il linguaggio C
- Multi-Threaded Programming con il linguaggio C. ESEMPI:
PrimoThread
SecondoThread
MoltiThread
MoltiThread1
EsempioThreads
OnceThread
Mutex
Mutex
Mutex1
Schedulazione
Esempio1
Esempio2
VariabiliCondizione
SimulaSemafori
Semafori
ClientServer
LettoriScrittori
CinqueFilosfi
- Introduzione alla programmazione Posix in Unix/Linux.
- La concorrenza con il linguaggio C nei SO Unix/Linux. ESEMPI:
Fork
Creazione di piu' figli
Creazione di piu' figli
Exec
Exec1
- Inter Process Comm con il linguaggio C nei SO Unix/Linux. ESEMPI:
Pipe
Pipe1
Fifo
Fifo-server
Fifo-client
- Chiamate di sistema per la gestione del File system. ESEMPI:
Copia
Copia-bis
Descrittori
FileMode
- Misure di tempo in Unix/Linux. ESEMPI: times.c
Il sistema operativo Linux
- Schema di principio di una shell. Operazioni fondamentali: parsing, redirezione e background
- Introduzione ai comandi di linea del Sistema Operativo Linux
- Programmazione in Bash Shell. ESEMPI:
Esempi: mycp.sh
...mycd.sh
...myls.sh
...myps.sh
...mygrep.sh
...lowup.sh
...filesize.sh
- Struttura base del file system di Linux
- Cenno ad altri File System di Linux
- Identificatori, protezione dei file
- Gestione risorse: processore/memoria
- Gestione del processore: schedulazione tradizionale e in tempo reale
- Gestione della memoria primaria
Compilazione del kernel e gestione dei moduli
I Device Driver di Linux ed i sistemi embedded Driver memory.c Makefile