2025/05/20: link al form per la scelta del progetto
2025/05/07: la lezione di domani 2025/05/08 e' sospesa
2025/03/12: la lezione di domani 2025/03/13 e' online su richiesta degli studenti.
Le lezioni inizieranno nell'ultima settimana di febbraio 2025
Questo corso ha lo scopo di fornire agli studenti le conoscenze necessarie sull'architettura di moderni sistemi operativi. Il corso copre sia aspetti teorici su problematiche quali architetture, scheduling, gestione della memoria e dei processi, sia aspetti pratici di programmazione e gestione del sistema operativo dal lato utente.
B115 - DIAG
B120 - DIAG
IMPORTANTE: Per tutte le comunicazioni riguardanti il corso e l'esame usare sempre [SO] come primo elemento dell'oggetto. La mancata osservazione di questa regola riduce la priorita' di risposta alla mail inviata.
È obbligatorio compilare il form di registrazione: ENROLLMENT FORM
Le lezioni sono fruibili in presenza.
Mercoledì 10:00-14:00
Giovedì 10:00-12:00
Edificio Marco Polo (aka ex-Poste) Aula: 204
Edificio Marco Polo (aka ex-Poste) Aula: 204
E' opportuna una buona conoscenza del linguaggio C e dei contenuti del corso di Sistemi Di Calcolo.
E' consigliata una installaziona nativa di una distro Linux qualsiasi (recommended: Ubuntu 20.04 LTS).
Modalità di esame: ESAME SCRITTO + PROGETTO
La prova scritta puo' essere svolta prima della consegna del progetto. Il voto finale verra' assegnato alla consegna del progetto.
In generale, il totale di punti ottenibili e' di 32 punti cosi' ripartiti:
Scritto: test_max_points = 24;
Progetto: proj_max_points = 8;
25.6.2025, 9:00, Room 105 Marco Polo (su infostud e' il 15.6, sapete perche')
24.7.2025, 9:00, Room 108 Marco Polo
05.9.2025, 14:00, Room 105 Marco Polo
31.10.2025, 14:00, Room A7, Via Ariosto
Introduzione ai Sistemi Operativi
storia
servizi
funzionalita'
Complementi di programmazione in C per Sistemi Operativi
implementazione di concetti OOP
strutture dati polimorfiche
allocatori di memoria
Architetture hardware
cpu/memoria/bus dati e indirizzi
esempio di bare metal programming su microcontrollore
Interrupt
sviluppo in interrupt handler su microcontrollore
Stack e context switch
context switch su microcontrollore
context switch in user space
Processi e Strutture del Kernel
dual mode, meccanismo delle system call
implementazione di spawn, exec, wait
creazione di uno scheduler preemptive in user space
Thread
concetti in pthread
scheduling di thread
CPU Scheduling
metriche
FIFO, SJF, SRJF, Round Robin, Round Robin con Priorita'
controllare lo scheduler in PTHREAD
IPC
motivazioni
mutex
semafori
code
memoria condivisa
Memoria
protezione della memoria
metriche
segmentazione
paginazione
traduzione di indirizzi
Memoria Virtuale
metriche
analisi delle prestazioni
algoritmi di rimpiazzamento delle pagine
copy on write
File System
interfaccia al file system
controllo degli accessi
operazioni sui file
Implementazione del File System
virtual file system
Esempi: FAT, Inodes