72947 - SISTEMI OPERATIVI M

Anno Accademico 2013/2014

  • 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