Sistemi Operativi 2

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

Lezioni e esami in modalità online

A causa dell’emergenza COVID-19, le lezioni e gli esami si svolgeranno in modalità online tramite moodle, zoom e slack:

  • Spazio Moodle ufficiale del corso con i link e le registrazioni delle lezioni su zoom.
  • Workspace Slack utilizzato durante lezioni e esercitazioni per discussioni, domande, etc. Registrarvi autonomamente usando la email @stud.unive.it@unive.it.

L’esame di questo modulo (Sistemi Operativi 2) avverrà secondo le seguenti modalità:

  • Un quiz su Moodle da svolgere in connessione audio/video su zoom, composto da domande e esercizi estratti a caso da un pool che darà un voto di base in trentesimi;
  • Tre esercitazioni di laboratorio con bonus di 1 punto sul voto finale del quiz (fino a un massimo di 3 punti) che si sommerà al voto del quiz.

Esame completo: la parte di Sistemi Operativi 1 avverrà tramite un’analoga prova, da effettuare con la Prof.ssa Balsamo. Il voto complessivo sarà la media dei voti sui due moduli.

Prove intermedie: chi ha superato le prove intermedie (compitini) della prima parte può sostenere l’esame di Sistemi Operativi 2 in qualsiasi appello dell’anno accademico (fino a febbraio 2022 incluso).

Laboratorio e materiale online

Per tutte le lezioni sono disponibili, qui sotto, le dispense online. Per le lezioni di laboratorio sono inoltre disponibili le slide.

Le lezioni “teoriche” sono svolte utilizzando una lavagna virtuale mentre le lezioni contrassegnate con (Lab) sono di laboratorio e siete invitati a tenere pronto il vostro ambiente di sviluppo preferito in C o Java.

Per la parte di C, è necessario il supporto dello standard POSIX. Avete queste possibilità:

  • Utilizzare questa immagine docker che riproduce un ambiente identico a quello utilizzato nelle lezioni di laboratorio. Potete utilizzarla su qualsiasi sistema host installando docker;
  • Utilizzare MacOS, Linux o una VM Linux con gcc installato. In MacOS non sono implementati i semafori senza nome, quindi alcuni esempi non possono essere riprodotti (vedere il punto precedente);
  • Utilizzare WLS in Windows 10.

Libri di testo

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

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

Link utili

Programma

Introduzione

  • [09/02/2021] Comunicazione tra processi e thread

Processi

Thread

  • [09/03/2021] Produttore e consumatore
  • [12/03/2021] Sezione critica: soluzioni software e hardware
  • [16/03/2021] I thread POSIX (Lab) (slides)
  • [19/03/2021] I semafori
  • [23/03/2021] I semafori POSIX (Lab) (slides)
  • [26/03/2021] Programmazione con i semafori
  • [30/03/2021] Esercitazione sui semafori (Lab)
  • [02/04/2021] Seconda esercitazione con bonus: sincronizzazione tramite semafori POSIX (Lab)
  • [06/04/2021] I monitor
  • [09/04/2021] Programmazione con i monitor
  • [13/04/2021] Thread di Java; sezione critica tramite monitor (Lab) (slides)
  • [16/04/2021] Il problema dei filosofi in Java (Lab)
  • [20/04/2021] Esercitazione sui monitor (Lab) Zoom (intro) + slack (svolgimento esercizio)
  • [23/04/2021] Terza esercitazione con bonus: sincronizzazione tramite monitor in Java (Lab)
  • [27/04/2021] Lo stallo
  • [30/04/2021] 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.