CODICE 104746 ANNO ACCADEMICO 2024/2025 CFU 6 cfu anno 2 INGEGNERIA INFORMATICA 8719 (L-8) - GENOVA 6 cfu anno 3 INGEGNERIA ELETTRONICA E TECNOLOGIE DELL'INFORMAZIONE 9273 (L-8) - GENOVA SETTORE SCIENTIFICO DISCIPLINARE ING-INF/05 LINGUA Italiano SEDE GENOVA PERIODO 2° Semestre MATERIALE DIDATTICO AULAWEB PRESENTAZIONE Il corso fornisce un'introduzione alla struttura e all'organizzazione dei sistemi operativi moderni. 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 L’insegnamento fornisce agli studenti le nozioni fondamentali relative alla struttura dei sistemi operativi. L’insegnamento fornisce altresì allo studente gli strumenti tecnici e metodologici per comprendere, analizzare criticamente e descrivere caratteristiche, funzioni e interazioni delle principali componenti dei sistemi operativi moderni. Al termine dell’insegnamento gli studenti sapranno inoltre utilizzare l’interfaccia a linea di comando del sistema operativo Linux e scrivere semplici programmi (script) per l’automazione delle attività di gestione del sistema operativo. PREREQUISITI Programmazione e familiarità con il linguaggio C; Architettura e funzionamento dei calcolatori MODALITA' DIDATTICHE L’attività didattica sarà realizzata con lezioni frontali accompagnate dallo svolgimento di problemi e di esercitazioni pratiche al calcolatore. Agli studenti verrà dato accesso alla slides utilizzate durante le lezioni ed esercizi d’esame proposti in passato. PROGRAMMA/CONTENUTO 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) 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 ALESSIO MERLO Commissione d'esame ALESSANDRO ARMANDO (Presidente) PIERPAOLO BAGLIETTO MASSIMO MARESCA (Presidente Supplente) LEZIONI Orari delle lezioni SISTEMI OPERATIVI ESAMI MODALITA' D'ESAME Esame scritto basato su domande a risposta aperta. MODALITA' DI ACCERTAMENTO La prova scritta accerterà la comprensione del funzionamento e dell’interdipendenza delle principali funzionalità offerte da un sistema operativo moderno, la capacità di valutare criticamente le caratteristiche delle varie soluzioni ai problemi classici dei sistemi operativi (ad es. gestione della memoria, schedulazione, sincronizzazione dei processi), la capacità di risolvere problemi legati alla progettazione e utilizzo dei sistemi operativi. Gli studenti con certificazione di Disturbi Specifici dell'Apprendimento (DSA), disabilità o altri bisogni educativi speciali devono contattare il docente all'inizio del corso per concordare modalità di insegnamento e di esame che, nel rispetto degli obiettivi del corso, tengano conto degli stili di apprendimento e delle esigenze individuali. prevedere adeguati strumenti compensativi. Si ricorda che la richiesta di misure compensative/dispensative per gli esami deve essere indirizzata al docente del corso, al rappresentante della Scuola e all'ufficio “Settore servizi per l'inclusione degli studenti con disabilità e con DSA” (dsa@unige.it<e-mail:dsa@unige.it>) almeno 10 giorni lavorativi prima della prova, come da linee guida disponibili al link: https://unige.it/disabilita-ds Calendario appelli Data appello Orario Luogo Tipologia Note 14/01/2025 11:00 GENOVA Scritto E3 10/02/2025 11:00 GENOVA Scritto 10/06/2025 15:00 GENOVA Scritto 09/07/2025 11:00 GENOVA Scritto 08/09/2025 16:00 GENOVA Scritto Agenda 2030 Istruzione di qualità Parità di genere Lavoro dignitoso e crescita economica Imprese, innovazione e infrastrutture