Salta al contenuto principale
CODICE 104746
ANNO ACCADEMICO 2021/2022
CFU
SETTORE SCIENTIFICO DISCIPLINARE ING-INF/05
LINGUA Italiano
SEDE
  • GENOVA
PERIODO 2° Semestre
MATERIALE DIDATTICO AULAWEB

OBIETTIVI E CONTENUTI

OBIETTIVI FORMATIVI

Struttura dei sistemi operativi, le funzioni dei moduli in cui sono organizzati, gli algoritmi e le strutture software che utilizzano.

OBIETTIVI FORMATIVI (DETTAGLIO) E RISULTATI DI APPRENDIMENTO

Il corso fornisce lo studente gli strumenti tecnici e metodologici per comprendere e descrivere caratteristiche, funzioni e interazioni delle principali componenti dei sistemi operativi moderni.

PREREQUISITI

Programmazione e familiarità con il linguaggio C; architettura e funzionamento dei calcolatori

MODALITA' DIDATTICHE

Le lezioni frontali saranno accompagnate da esercitazioni pratiche al calcolatore.

PROGRAMMA/CONTENUTO

  1. Introduzione alla struttura dei sistemi operativi. Concetti base, struttura monolitica e a microkernel. 

  2. La gestione dei processi e dei thread. Creazione e gestione processi. I thread e loro implementazione. 

  3. La comunicazione fra processi (signal, pipe, socket, shared memory, ...). Mutua esclusione e sincronizzazione. L’algoritmo di Dekker, l’algoritmo di Peterson. Supporto hardware alla mutua esclusione. Il problema del Produttore e del Consumatore. I semafori. I monitor. Message Passing. Il problema dei Lettori e dei Consumatori.

  4. Deadlock e Starvation. Approcci alla gestione dei deadlock: Detection, Prevention e Avoidance. I grafi di allocazione delle risorse. Il problema dei Dining Philosophers.

  5. La gestione della memoria. Memoria fisica e memoria virtuale. Gestione paginata e sue problematiche di implementazione. Gestione segmentata.

  6. Scheduling uniprocessore. Scheduling a lungo, medio e breve termine. Algoritmi di scheduling: FCFC, Round Robin, SPN, SRT, HRRN, Feedback.

  7. La gestione dell’input-output. Interazione CPU-dispositivi-memoria. Architettura DMA. Schedulazione dei dischi. 

  8. Il file system. Struttura e attributi di file e directory. Metodi di implementazione e ottimizzazione dei file system. 

  9. Controllo degli Accessi.  Modelli, politiche e meccanismi per il controllo degli accessi. Controllo degli Accessi in Linux (ACL in Unix, setuid)

TESTI/BIBLIOGRAFIA

  • Slides utilizzate a lezione verranno messe a disposizione degli studenti
  • Operating Systems: Internals and Design Principles. 8th edition di W. Stallings, Pearson

DOCENTI E COMMISSIONI

Commissione d'esame

ALESSANDRO ARMANDO (Presidente)

PIERPAOLO BAGLIETTO

ALESSIO MERLO

MASSIMO MARESCA (Presidente Supplente)

LEZIONI

Orari delle lezioni

L'orario di questo insegnamento è consultabile all'indirizzo: Portale EasyAcademy

ESAMI

MODALITA' D'ESAME

L'esame consisterà in una prova scritta.

Calendario appelli

Data appello Orario Luogo Tipologia Note
12/01/2022 11:00 GENOVA Scritto
09/02/2022 11:00 GENOVA Scritto
13/06/2022 11:00 GENOVA Scritto
13/07/2022 11:00 GENOVA Scritto
12/09/2022 11:00 GENOVA Scritto