Struttura dei sistemi operativi, le funzioni dei moduli in cui sono organizzati, gli algoritmi e le strutture software che utilizzano.
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.
Programmazione e familiarità con il linguaggio C; architettura e funzionamento dei calcolatori
Le lezioni frontali saranno accompagnate da esercitazioni pratiche al calcolatore.
Introduzione alla struttura dei sistemi operativi. Concetti base, struttura monolitica e a microkernel.
La gestione dei processi e dei thread. Creazione e gestione processi. I thread e loro implementazione.
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.
Deadlock e Starvation. Approcci alla gestione dei deadlock: Detection, Prevention e Avoidance. I grafi di allocazione delle risorse. Il problema dei Dining Philosophers.
La gestione della memoria. Memoria fisica e memoria virtuale. Gestione paginata e sue problematiche di implementazione. Gestione segmentata.
Scheduling uniprocessore. Scheduling a lungo, medio e breve termine. Algoritmi di scheduling: FCFC, Round Robin, SPN, SRT, HRRN, Feedback.
La gestione dell’input-output. Interazione CPU-dispositivi-memoria. Architettura DMA. Schedulazione dei dischi.
Il file system. Struttura e attributi di file e directory. Metodi di implementazione e ottimizzazione dei file system.
Controllo degli Accessi. Modelli, politiche e meccanismi per il controllo degli accessi. Controllo degli Accessi in Linux (ACL in Unix, setuid)
Operating Systems: Internals and Design Principles. 8th edition di W. Stallings, Pearson
Ricevimento: - su appuntamento da concordare preventivamente col docente inviando e-mail all'indirizzo alessandro.armando@unige.it
ALESSANDRO ARMANDO (Presidente)
PIERPAOLO BAGLIETTO
ALESSIO MERLO
MASSIMO MARESCA (Presidente Supplente)
https://corsi.unige.it/8719/p/studenti-orario
L'esame consisterà in una prova scritta.