- Docente: Anna Ciampolini
- Crediti formativi: 8
- SSD: ING-INF/05
- Lingua di insegnamento: Italiano
- Modalità didattica: Convenzionale - Lezioni in presenza
- Campus: Bologna
- Corso: Laurea Magistrale in Ingegneria informatica (cod. 0937)
Conoscenze e abilità da conseguire
Conoscenza delle problematiche di progetto relative all'organizzazione di sistemi concorrenti. Modelli di riferimento per la sincronizzazione e comunicazione tra processi. Metodologie di analisi e sintesi di sistemi concorrenti.
Contenuti
1. Programmazione concorrente
1.1 Introduzione e definizioni
1.2 Processi non sequenziali. Decomposizione e
tipi di interazione
1.3 Architetture e linguaggi per la
programmazione concorrente
2. Modello a memoria comune.
2.1 Aspetti caratterizzanti
2.2 Mutua esclusione
2.3 Semafori
2.4 Semafori privati
2.5 Regioni critiche
2.6 Monitor
3. Nucleo di un sistema a processi
3.1 Strutture dati
3.2 Funzioni
3.3 Estensione al caso multiprocessore
4. Modello a scambio di messaggi
4.1 Aspetti caratterizzanti
4.2 Primitive send e receive
4.3 Comandi con guardia
4.4 Chiamata di procedure remote
5. Azioni atomiche
5.1 Proprietà
5.2 Azioni atomiche multiprocesso
5.3 Azioni atomiche innestate
5.4 Sistemi distribuiti
6. Protezione
6.1 Domini di protezione
6.2 Matrice degli accessi
6.3 Liste di controllo degli accessi e
capabilities
7. Ambienti distribuiti
7.1 Ordinamento degli eventi
7.2 Mutua esclusione
7.3 Deadlock
8. Gestione dell'I/O
8.1 Controllori dei dispositivi
8.2 Driver
9. Multithreading
9.1 Libreria P-Thread in Linux
9.2 Sincronizzazione in JAVA
10. Virtualizzazione di Sistemi
10.1 Virtualizzazione e gestione dell'hardware
10.2 Realizzazione di Virtual Machine Monitor: virtualizzazione
pura e paravirtualizzazione
Testi/Bibliografia
- P.Ancilotti, M.Boari: 'Programmazione concorrente e
distribuita', McGraw-Hill.
- P.Ancilotti, M.Boari A.Ciampolini,G.Lipari: ' Sistemi Operativi',
seconda edizione, McGraw-Hill
- G.R.Andrews: "Foundations of Multithreaded, Parallel and
Distributed Programming", Addison-Wesley
- W.Stallings: 'Sistemi operativi', Jackson Libri
- S. Tanenbaum: 'I Moderni Sistemi Operarivi', Jackson Libri
- A.Silberschatz, P.Galvin, G.Gagne: 'Applied Operating System
Concepts' I edizione, John Wiley & Son, Inc.
Metodi didattici
Lezioni ed esercitazioni in aula.
Esercitazioni in laboratorio.
Modalità di verifica e valutazione dell'apprendimento
Prova di laboratorio sull'uso dei P-threads in Linux e con
JAVA per la soluzione di problemi di sincronizzazione.
Prova orale.
Strumenti a supporto della didattica
Le lezioni in aula vengono svolte anche con l'ausilio di slides e
videoproiettore.
Le slides vengono rese disponibili a tutti gli studenti tramite il
sito web del corso.
Assegnazione di una macchina virtuale ad ogni studente del
corso.
Link ad altre eventuali informazioni
http://lia.deis.unibo.it/Courses/SistOpM0910
Orario di ricevimento
Consulta il sito web di Anna Ciampolini