Generali:

  • Dipartimento: Scienze Matematiche, Fisiche E Naturali
  • Settore Ministeriale: INF/01
  • Codice di verbalizzazione: 8062771
  • Metodi di insegnamento: Frontale E Altro
  • Metodi di valutazione: Scritto E Orale
  • Prerequisiti: Conoscenza di base di Architetture dei calcolatori. Conoscenza di base del linguaggio C.
  • Obiettivi: L'obiettivo dell'insegnamento e' fornire allo studente le conoscenze di base sui sistemi operativi moderni, trattando in particolare i seguenti fondamentali argomenti: 1. CONCETTI DI BASE. Principali funzioni di un SO. Gestione delle risorse. Protezione e sicurezza. Astrazione di macchina virtuale. Cenni storici dei SO. Tipologie di sistemi operativi (batch, time-sharing, real-time, per PC, paralleli e distribuiti). Richiami di architetture del calcolatore. Struttura e componenti dei SO. 2. GESTIONE DEI PROCESSI. Definizione di processo. Stati dei processi. Descrittore di un processo. Code di processi. Cambio di contesto. Creazione e terminazione dei processi. Interazione tra i processi. Kernel di un sistema a processi. Algoritmi di Scheduling della CPU. Thread. 3. SINCRONIZZAZIONE DEI PROCESSI. Interazione tra i processi. Mutua esclusione. Modello produttore-consumatore. Semafori. Primitive send e receive. Comunicazione e sincronizzazione tra processi. Blocco critico. 4. GESTIONE DELLA MEMORIA. Memoria virtuale. Rilocazione statica e dinamica. Organizzazione della memoria virtuale. Allocazione della memoria fisica. Dimensionamento della memoria virtuale. Tecniche di gestione della memoria. Memoria partizionata. Memoria segmentata. Memoria paginata. Memoria segmentata e paginata. Gestione degli spazi virtuali. 5. GESTIONE DELLE PERIFERICHE. Organizzazione logica del sottosistema di I/O. Livello indipendente dai dispositivi. Livello dipendente dai dispositivi. Gestore di un dispositivo (a controllo di programma, mediante interruzione e in DMA). Descrittore e driver di dispositivo. Gestione del timer. Gestione, organizzazione e scheduling dei dischi (FCFS, SSFT, SCAN). Dischi RAID. 6. FILE SYSTEM. Organizzazione e struttura logica. Metodi di accesso. Protezione. Organizzazione fisica. Tecniche di allocazione dei file (contigua, a lista concatenata ed a indice). 7. I SISTEMI OPERATIVI UNIX E LINUX. Storia di Unix e di Linux. Architettura di Unix. Interazione con l'utente tramite shell. Sintassi di comandi dello shell. I processi in Unix. Diagramma degli stati. Immagine di un processo Unix. Principali system call per la gestione dei processi. Lo scheduling in Unix. La gestione della memoria in Unix. Il file system. Organizzazione logica e fisica del file system di Unix. System call per l'accesso ai file. Protezione in Unix. Interazione tra processi. Sincronizzazione: i segnali. System call per l'uso dei segnali. Comunicazione: pipe. I Thread in Linux e Unix. Thread POSIX: la libreria pthread. Creazione e terminazione di thread. Sincronizzazione tra thread: i mutex della libreria pthread e variabili condition.
  • Ricevimento: Al termine delle lezioni online, via MS Teams

Didattica:

  • A.A.: 2009/2010
  • Canale: UNICO
  • Crediti: 6
  • Obbligo di Frequenza: No