Salta al contenuto principale della pagina

SISTEMI OPERATIVI

CODICE 104746
ANNO ACCADEMICO 2021/2022
CFU 6 cfu al 2° anno di 8719 INGEGNERIA INFORMATICA (L-8) GENOVA
SETTORE SCIENTIFICO DISCIPLINARE ING-INF/05
LINGUA Italiano
SEDE GENOVA (INGEGNERIA INFORMATICA )
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

MODALITA' DIDATTICHE

Le lezioni frontali saranno accompagnate da esercitazioni pratiche al calcolatore.

Orari delle lezioni

L'orario di tutti gli insegnamenti è consultabile su EasyAcademy.

ESAMI

MODALITA' D'ESAME

L'esame consisterà in una prova scritta.

Calendario appelli

Data Ora 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