OPERATING SYSTEMS
- Anno accademico
- 2025/2026 Programmi anni precedenti
- Titolo corso in inglese
- OPERATING SYSTEMS
- Codice insegnamento
- CT0670 (AF:608610 AR:301152)
- Lingua di insegnamento
- Inglese
- Modalità
- In presenza
- Crediti formativi universitari
- 6
- Livello laurea
- Laurea
- Settore scientifico disciplinare
- ING-INF/05
- Periodo
- I Semestre
- Anno corso
- 2
- Sede
- VENEZIA
- Spazio Moodle
- Link allo spazio del corso
Inquadramento dell'insegnamento nel percorso del corso di studio
Contribuisce a raggiungere i seguenti obiettiv del CdS:
Conoscenza e comprensione
- comprensione dei concetti di base e conoscenza delle tecniche di realizzazione dei componenti dei sistemi operativi moderni, con particolare enfasi sugli aspetti di sicurezza;
- conoscenza della programmazione concorrente;
- conoscenza dei formalismi principali per la modellazione dei sistemi informatici.
Capacità di applicare conoscenza e comprensione
- sa utilizzare la programmazione concorrente per risolvere problemi di calcolo parallelo
Risultati di apprendimento attesi
1. Comprendere il ruolo e le funzioni di un sistema operativo: Riconoscere i componenti chiave di un sistema operativo e le loro interazioni con hardware e software.
2. Applicare i concetti di gestione dei processi: Comprendere e implementare la pianificazione dei processi, la comunicazione tra processi e la gestione dei thread.
3. Spiegare le tecniche di gestione della memoria: Descrivere la memoria virtuale, il paging, la segmentazione e le strategie di allocazione della memoria.
4. Comprendere le operazioni del file system: Capire le strutture del file system, i metodi di allocazione dei file e la gestione dello storage.
5. Utilizzare efficacemente gli strumenti del sistema operativo: Applicare gli strumenti e i comandi del sistema operativo per compiti di gestione del sistema, inclusi la gestione dei file, il controllo dei processi e il monitoraggio del sistema.
6. Confrontare i diversi sistemi operativi: Analizzare le somiglianze e le differenze tra i sistemi operativi moderni come Linux, Windows e macOS.
Prerequisiti
Familiarità con i linguaggi di programmazione di alto livello (preferibilmente C o Python).
Comprensione delle strutture dati fondamentali (array, liste collegate, stack, code).
Contenuti
Funzioni e tipi di sistemi operativi
Panoramica sull'architettura e i componenti del sistema operativo
Evoluzione e sviluppo storico dei sistemi operativi
Gestione dei Processi
Definizione di processi e blocco di controllo del processo (PCB)
Stati dei processi e algoritmi di pianificazione dei processi (FIFO, Round Robin, SJF)
Comunicazione tra processi (IPC)
Thread e Concorrenza
Differenza tra processi e thread
Sincronizzazione: Mutex, semafori e variabili di condizione
Rilevamento e prevenzione del deadlock
Gestione della Memoria
Gerarchia e struttura della memoria (memoria logica vs. fisica)
Tecniche di paging e segmentazione
Memoria virtuale e algoritmi di sostituzione delle pagine
Metodi di allocazione della memoria: Contigui, sistema buddy e paging
File System
Struttura del file system: Directory, metadati e allocazione dei file
Algoritmi di pianificazione dei dischi
Gestione del file system e tecniche di archiviazione
Sicurezza del file system
Sistemi I/O e Gestione dei Dispositivi
Dispositivi I/O, driver di dispositivi e gestione degli interrupt
Buffering, spooling e accesso diretto alla memoria (DMA)
Algoritmi di pianificazione dei dischi e dei dispositivi
Sicurezza e Protezione
Concetti di sicurezza: Riservatezza, integrità e disponibilità
Autenticazione dell'utente e controllo dell'accesso
Meccanismi di protezione: ACL, crittografia e integrità del sistema
Case Studies dei Sistemi Operativi e Tendenze Moderne
Studio comparativo di Linux, Windows e macOS
Virtualizzazione e tendenze del cloud computing
Panoramica sui sistemi operativi mobili: Android e iOS
Sessioni Pratiche e Lavoro di Laboratorio
Pratica con i comandi Linux/Unix
Monitoraggio del sistema e attività di controllo dei processi
Testi di riferimento
Modalità di verifica dell'apprendimento
Modalità di esame
Il/la docente ha il dovere di vigilare affinché siano rispettate le regole di autenticità e originalità delle prove d'esame. Di conseguenza, nei casi in cui vi sia il sospetto di un comportamento irregolare, l'esame può prevedere un ulteriore approfondimento, contestuale alla prova d'esame, che potrà essere realizzato anche in modalità differente rispetto alle modalità sopra riportate.
Graduazione dei voti
La valutazione dell'esame scritto attribuirà metà del peso alla parte teorica e metà agli esercizi. Le domande teoriche saranno valutate in base alla profondità della conoscenza e alla proprietà del linguaggio tecnico mostrato dallo studente. Gli esercizi saranno valutati in base alla loro difficoltà.