Sistemi operativi i
A.A. 2023/2024
Obiettivi formativi
L'insegnamento si propone di introdurre principali concetti su cui è basata la realizzazione di un sistema operativo, le sue funzionalità principali nonchè acquisire padronanza nell'uso delle principali API del sistema operativo Linux. Al fine di fornire agli studenti una migliore comprensione dei diversi temi affrontati verrà affrontato lo studio delle componenti principali di un sistema operativo didattico.
Risultati apprendimento attesi
Al termine dell'insegnamento lo studente sarà in grado di: individuare le principali caratteristiche di un sistema operativo, valutarne le criticità ed i punti di forza, scrivere programmi che usano le principali API di sistema operativo, leggere e commentare codice di un sistema operativo reale.
Periodo: Primo semestre
Modalità di valutazione: Esame
Giudizio di valutazione: voto verbalizzato in trentesimi
Programma e organizzazione didattica
Edizione unica
Responsabile
Periodo
Primo semestre
Programma
Virtualization
● Processes
● Scheduling
● Segmentation
● Paging
● Paging (TLBs)
● Paging: Smaller tables
● Beyond Physical Memory
● Beyond Physical Memory
Concurrency
● Concurrency Introduction
● Locks
● Condition Variables
● Semaphores
● Concurrency Problem
Persistence
● I/O + Disks
● Disks
● RAID
● FileSystem
● Filesystem Implementation
● Journaling
Advanced
● Virtual Machine Principles
● Side-channel attack Meltdown/Spectre
● Processes
● Scheduling
● Segmentation
● Paging
● Paging (TLBs)
● Paging: Smaller tables
● Beyond Physical Memory
● Beyond Physical Memory
Concurrency
● Concurrency Introduction
● Locks
● Condition Variables
● Semaphores
● Concurrency Problem
Persistence
● I/O + Disks
● Disks
● RAID
● FileSystem
● Filesystem Implementation
● Journaling
Advanced
● Virtual Machine Principles
● Side-channel attack Meltdown/Spectre
Prerequisiti
I prerequisiti per il corso includono:
- Conoscenza della sintassi base del linguaggio di programmazione C.
- Familiarità con l'architettura di un sistema di elaborazione, con particolare riferimento alla struttura di un
processore, all'organizzazione della memoria e ai tipi di dato.
- Comprensione dei fondamenti di un linguaggio assembly.
- Conoscenza della sintassi base del linguaggio di programmazione C.
- Familiarità con l'architettura di un sistema di elaborazione, con particolare riferimento alla struttura di un
processore, all'organizzazione della memoria e ai tipi di dato.
- Comprensione dei fondamenti di un linguaggio assembly.
Metodi didattici
Le lezioni teoriche si terranno in aula, mentre le lezioni di laboratorio si svolgeranno in laboratorio.
Materiale di riferimento
Libro di testo Operating Systems: Three Easy Pieces.
Si puo` scaricare la versione gratuita pdf al seguente URL:
http://pages.cs.wisc.edu/~remzi/OSTEP/
Si puo` scaricare la versione gratuita pdf al seguente URL:
http://pages.cs.wisc.edu/~remzi/OSTEP/
Modalità di verifica dell’apprendimento e criteri di valutazione
Il metodo di valutazione per il corso è strutturato come segue:
- La parte teorica prevede una prova scritta con esercizi numerici basati sulle lezioni svolte in classe.
- La parte pratica consiste in esercizi pratici basati sulle esercitazioni svolte durante le lezioni di laboratorio.
- Non sono previste prove intermedie durante l'anno.
- Saranno disponibili 6 sessioni di esame per la parte teorica e 6 sessioni di esame per la parte pratica, le date
delle quali saranno comunicate tramite il sito Ariel nella sezione "Informazioni del corso".
- Il voto dell'esame di teoria e di laboratorio sarà valido da gennaio a settembre dell'anno scolastico in corso.
Dopo tale periodo, entrambe le prove dovranno essere ripetute.
- Il voto finale sarà calcolato considerando il ⅔ del voto ottenuto nella parte teorica e il ⅓ del voto ottenuto nella
parte pratica.
- La parte teorica prevede una prova scritta con esercizi numerici basati sulle lezioni svolte in classe.
- La parte pratica consiste in esercizi pratici basati sulle esercitazioni svolte durante le lezioni di laboratorio.
- Non sono previste prove intermedie durante l'anno.
- Saranno disponibili 6 sessioni di esame per la parte teorica e 6 sessioni di esame per la parte pratica, le date
delle quali saranno comunicate tramite il sito Ariel nella sezione "Informazioni del corso".
- Il voto dell'esame di teoria e di laboratorio sarà valido da gennaio a settembre dell'anno scolastico in corso.
Dopo tale periodo, entrambe le prove dovranno essere ripetute.
- Il voto finale sarà calcolato considerando il ⅔ del voto ottenuto nella parte teorica e il ⅓ del voto ottenuto nella
parte pratica.
INF/01 - INFORMATICA - CFU: 6
Laboratori: 24 ore
Lezioni: 36 ore
Lezioni: 36 ore
Siti didattici
Docente/i
Ricevimento:
Concordare via email e/o su piattaforma Microsoft Teams. Per specifici corsi fare riferimento al sito Ariel del corso.
Milano - via Celoria 18 (stanza 3010) e/o Ms Teams/Zoom