SISTEMI OPERATIVI

SISTEMI OPERATIVI

_
iten
Ultimo aggiornamento 29/09/2021 15:36
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

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

Modalità 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

Ricevimento: - su appuntamento da concordare preventivamente col docente inviando e-mail all'indirizzo alessandro.armando@unige.it

LEZIONI

Modalità didattiche

Le lezioni frontali saranno accompagnate da esercitazioni pratiche al calcolatore.

ORARI

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

ESAMI

Modalità d'esame

L'esame consisterà in una prova scritta.