- 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.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.