- Docente: Anna Ciampolini
 - Crediti formativi: 8
 - SSD: ING-INF/05
 - Lingua di insegnamento: Italiano
 
- Modalità didattica: Lezioni in presenza (totalmente o parzialmente)
 - 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.Protezione e sicurezza
- Richiami sulla protezione: modelli, politiche e meccanismi
 - Sicurezza multilivello
 - Reference Monitor e sistemi fidati
 
2. Virtualizzazione
- Virtualizzazione dell'hardware: finalità e soluzioni
 - Realizzazione di virtual machine monitor: virtualizzazione e paravirtualizzazione
 - Analisi e sperimentazione di tecnologie: il caso di xen
 - Virtualizzazione come supporto al cloud computing
 
3. Programmazione concorrente
- Introduzione e definizioni
 - Processi non sequenziali.
 - Tipi di interazione
 - Architetture e linguaggi per la programmazione concorrente
 
4. Modello a memoria comune
Richiami su:
- Mutua esclusione
 - Semafori
 - Monitor
 - Variabili condizione
 
Uso di linguaggi concorrenti nel modello a memoria comune: Java, c/pthread, Ada.
5. Modello a scambio di messaggi
- Aspetti caratterizzanti
 - Richiami su canali e primitive
 - Primitive send e receive
 - Comandi con guardia
 - Rendez-vous e chiamata di procedura remota
 
Uso di Linguaggi concorrenti nel modello a scambio di messaggi: go, ada.
6. Nucleo di un sistema a processi basato sul modello a memoria comune:
- Realizzazione dei meccanismi di gestione dei thread e di sincronizzazione all’interno del kernel di un sistema monoprocessore
 - Estensione al caso multiprocessore: Modello a nucleo condiviso SMP, Modello loosely-coupled.
 
7.Sistemi operativi distribuiti
- caratteristiche dei sistemi operativi distribuiti
 - algoritmi per il controllo distribuito: mutua esclusione distribuita, algoritmi di elezione, gestione deadlock.
 
8.Azioni atomiche
- Proprietà
 - Azioni atomiche multiprocesso
 - Azioni atomiche innestate
 - Uso di azioni atomiche nei sistemi distribuiti
 - Realizzazione dell'azione atomica nel modello a scambio di messaggi e nel modello a memoria comune
 
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:  sviluppo di applicazioni concorrenti nel modello a memoria comune e nel modello a scambio di messaggi.
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.disi.unibo.it/Courses/som
Orario di ricevimento
Consulta il sito web di Anna Ciampolini
SDGs
                    
                    
                L'insegnamento contribuisce al perseguimento degli Obiettivi di Sviluppo Sostenibile dell'Agenda 2030 dell'ONU.