Sistemi Operativi
2022 / 2023
News
2023/02/23: Ho chiuso l'appello di gennaio 2024 per esigenze di segreteria. gli studenti verbalizzati come assenti perche' non hanno consegnato il progetto conservano il voto. Relax.
2023/05/18: link al form per la scelta del progetto.
2023/03/08: oggi lezione soppressa a causa dello sciopero.
Le lezioni inizieranno Martedi' 28 Febbraio
Abstract
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.
Ufficio
B115 - DIAG
B121 - 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.
Registrazione al corso
È obbligatorio compilare il form di registrazione: Enrollment Form
Orario e Luogo delle Lezioni
Le lezioni sono fruibili in presenza.
Secondo Semestre
Martedì 11:00-15:00
Mercoledì 11:00-13:00
Luogo
Edificio Marco Polo (aka ex-Poste) Aula: 106
Edificio Marco Polo (aka ex-Poste) Aula: 106
Prerequisiti
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).
Esame (6CFU)
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. La deadline del progetto Marzo 2023. Oltre tale data, lo studente dovra' risostenere la prova scritta - qualunque sia stata la votazione precedente. Il progetto non ha deadline
In generale, il totale di punti ottenibili e' di 32 punti cosi' ripartiti:
Scritto: test_max_points = 24;
Progetto: proj_max_points = 8;
Progetti proposti: Progetti 22/23
Form di Registrazione
Prossimi Appelli (esame scritto)
13/06/2023, ore 14:00 aula 108, Marco Polo
10/07/2023, ore 13:30 aula 204, Marco Polo
1/9/2023, ore 9:30, aula 106, Marco Polo
12/10/2023, ore 13:00, aula A3, Via Ariosto 25
29/01/2024, 09:00, Aula 108 Marco Polo
19/02/2024, 09:00, Aula 105 Marco Polo
04/04/2024, 12:00, Viale Regina Elena 295, aula 201
Programma di Massima
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
The image on this page is by Cushing Memorial Library and Archives, (Flickr: IBM Processing Machine) [CC BY 2.0 (http://creativecommons.org/licenses/by/2.0)], via Wikimedia Commons