Salta al contenuto principale
CODICE 104746
ANNO ACCADEMICO 2023/2024
CFU
SETTORE SCIENTIFICO DISCIPLINARE ING-INF/05
LINGUA Italiano
SEDE
  • GENOVA
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

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 lavoratori verrà dato accesso alla slides utilizzate durante le lezioni, esercizi d’esame proposti in passato e registrazioni delle lezioni.

 

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)

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

Orari delle lezioni

L'orario di questo insegnamento è consultabile all'indirizzo: Portale EasyAcademy

ESAMI

MODALITA' D'ESAME

Esame scritto basato su domande a risposta aperta. 

Agli studenti con disturbi specifici dell’apprendimento (DSA) sarà consentito l’utilizzo di specifiche modalità e supporti che saranno determinati sulla base delle specifiche esigenze dello studente in accordo con il delegato dei corsi di Ingegneria nel Comitato per l’Inclusione degli Studenti con Disabilità.

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.

La prova pratica accerterà

  • La conoscenza dell’interfaccia a linea di comando del sistema operativo Linux

  • La capacità di scrivere programmi di automazione (script) delle funzionalità dei sistemi operativi.

Calendario appelli

Dati Ora Luogo Tipologia Note
10/01/2024 11:00 GENOVA Scritto
07/02/2024 11:00 GENOVA Scritto
11/06/2024 15:00 GENOVA Scritto
10/07/2024 11:00 GENOVA Scritto
09/09/2024 16:00 GENOVA Scritto