Sistemi Operativi 2

Questa pagina contiene tutto il materiale didattico del secondo modulo di Sistemi Operativi tenuto dal Prof. Riccardo Focardi.

Esame e verifiche di laboratorio

  • L’esame finale di Sistemi Operativi consiste in un compito scritto diviso in due parti, corrispondenti ai due moduli e in una parte relativa al laboratorio, descritta nel seguito;
  • Per la parte di laboratorio sono previste tre verifiche durante l’anno, secondo il calendario pubblicato sotto. Il laboratorio è considerato superato se almeno due delle tre verifiche sono sufficienti. In particolare:
    • chi supera almeno due delle tre verifiche non dovrà sostenere alcuna prova aggiuntiva di laboratorio (superando tre verifiche si ottiene un bonus sul voto dello scritto)
    • chi supera una delle tre verifiche dovrà sostenere una prova orale sulla parte di laboratorio
    • chi non supera nessuna verifica dovrà sostenere una prova pratica in laboratorio, una volta superata la prova scritta

Blog

  • Siete invitati a ‘postare’ i vostri commenti e le soluzioni agli esercizi
  • Leggete qui come fare il post di codice sorgente

News e link utili

Libri di testo

I libri sono gli stessi del primo modulo. Per la parte di programmazione UNIX si può fare riferimento a:

  • Richard Stevens, Stephen A. Rago, Advanced Programming in the UNIX Environment (seconda o terza edizione), Addison Weseley

Programma

Le lezioni e i laboratori si svolgono in aula 1 e 2. Le lezioni contrassegnate con (L) sono di laboratorio e siete invitati a portare i vostri laptop. Per le lezioni di laboratorio sono disponibili le slide.

Introduzione
  • [4/2/2019] Comunicazione tra processi e thread
Processi
  • [7/2/2019] creazione: fork ed exec, processi orfani e processi zombie (L)
  • [11/2/2019] terminazione: exit e wait (L)
  • [14/2/2019] esercitazione sui processi (non è una delle tre verifiche di laboratorio!) (L)
  • [18/2/2019] Segnali: gestione e mascheramento; kill e pause. funzioni safe nei gestori dei segnali (L)
  • [21/2/2019] Comunicazione tramite pipe (L)
  • [25/2/2019] Esercitazione sulle pipe (L)
    (sospensione di una settimana delle lezioni)
  • [7/3/2019] Prima verifica (comunicazione tramite pipe) (L)
Thread
  • [11/3/2019] Produttore e consumatore
  • [14/3/2019] Sezione critica: soluzioni software e hardware
  • [18/3/2019] I thread POSIX: creazione, terminazione, passaggio di argomenti (L)
  • [21/3/2019] I semafori
  • [25/3/2019] I semafori POSIX (L)
  • [28/3/2019] Programmazione con i semafori
  • [1/4/2019] Esercitazione sui semafori (L)
  • [4/4/2019] Seconda verifica: sincronizzazione tramite semafori POSIX (L)
  • [8/4/2019] I monitor
  • [11/4/2019] Programmazione con i monitor
  • [15/4/2019] Thread di Java; sezione critica tramite monitor (L)
  • [18/4/2019] Il problema dei filosofi in Java (L)
    (sospensione Pasqua e 25 aprile)
  • [29/4/2019] Preparazione al terzo progetto (L)
  • [2/5/2019] Terza verifica: sincronizzazione tramite monitor in Java (L)
  • [6/5/2019] Lo stallo
  • [9/5/2019] Controllo dello stallo

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.