Sistemi Operativi
2021 / 2022
News
2023/02/21: abbiamo chiuso l'appello su richiesta delle segreterie. Coloro che non hanno completato l'esame MANTENGONO la valutazione progetto/esame scritto.
2022/11/02: abbiamo chiuso l'appello su richiesta delle segreterie. Coloro che non hanno completato l'esame MANTENGONO la valutazione progetto/esame scritto.
2022/08/29: Abbiamo stabilito una sessione di discussioni di progetti di SO per lunedì 19 settembre dalle 11:00. La sessione è aperta a tutti coloro che si prenoteranno inviando una mail con oggetto "[SO] Discussioni 19/09/2022" a grisetti@diag.uniroma1.it, brizi@diag.uniroma1.it e bazzana@diag.uniroma1.it.
2022/08/29: Abbiamo stabilito una sessione di discussioni di progetti di SO per lunedì 5 settembre dalle 14:00. La sessione è aperta a tutti coloro che si prenoteranno inviando una mail con oggetto "[SO] Discussioni 05/09/2022" entro il 4 settembre.
2022/07/18: Abbiamo stabilito una sessione di discussioni di progetti di SO per giovedì 21 luglio dalle 14:00. La sessione è aperta a tutti coloro che si prenoteranno inviando una mail con oggetto "[SO] Discussioni 21/07/2022" entro mercoledì sera.
2022/06/28: Per esigenze di segreteria abbiamo chiuso il verbale dell'ultimo appello (8/6/2022). Gli studenti che non hanno completato l'esame con il progetto mantengono il voto dello scritto e verranno verbalizzati al prossimo appello utile, successivo alla consegna del progetto.
2022/06/06: Abbiamo pubblicato il link al form per la scelta del progetto nella sezione "Esame (6CFU)". Per motivi di bookkeeping vi chiederemmo di compilarlo prima di sostenere l'esame scritto.
2022/05/04: Causa vincoli disponibilita' aule ed esigenze di verbalizzazione per i laureandi di luglio abbiamo spostato le date del primo appello. Le nuove date sono 8 Giugno, ore 14 al castro laurenziano (vedi sezione esami). L'appello e' ora aperto.
2022/05/04: Causa problema rete ferroviaria, la lezione di oggi inizierà con 15 minuti di ritardo.
2022/04/30: Le lezioni del 2 e 3 Maggio sono sospese per permettere lo svolgimento della RomeCup. Le lezioni riprenderanno regolarmente il 4 Maggio.
2022/04/12: Oggi inizieremo alle 11:10 causa imprevisto.
2022/03/28: Oggi inizieremo alle 11:15 causa imprevisto.
2022/03/16: Da lunedì prossimo 21 marzo potrete usufruire delle lezioni anche tramite zoom. Maggiori dettagli nella sezione "Orario e luogo delle lezioni".
2022/03/15: Domani avremo una sessione interattiva in aula e su zoom: https://uniroma1.zoom.us/j/89895244366?pwd=NG1TcVpiMWlNSVYzbHpIdTc4allQdz09, Meeting ID: 898 9524 4366, Passcode: 743787. Vi ricordiamo di iscrivervi alla mailing list attraverso il form Enrollment form per ricevere automaticamente notizie come questa per email.
2022/02/28: Abbiamo pubblicato il form per la registrazione al corso. Trovate il link in questa pagina nella sezione "Registrazione al corso".
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
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 oltre che in presenza, presso il canale youtube del docente (click here) e via zoom.
Secondo Semestre
Lunedì 11:00-13:00
Martedì 11:00-13:00
Mercoledì 9:00-11:00
Luogo
Edificio Marco Polo (aka ex-Poste) Aula: 204
Edificio Marco Polo (aka ex-Poste) Aula: 204
Edificio Marco Polo (aka ex-Poste) Aula: 205
Zoom Link
https://uniroma1.zoom.us/j/83410561914?pwd=cXJzeWtpNGdKcllYL1hUTmh6cE1IUT09, Meeting ID: 834 1056 1914, Passcode: 709476
https://uniroma1.zoom.us/j/83410561914?pwd=cXJzeWtpNGdKcllYL1hUTmh6cE1IUT09, Meeting ID: 834 1056 1914, Passcode: 709476
https://uniroma1.zoom.us/j/81726939485?pwd=blF1UFJPY0RSZWdnaHdQajBnODMxQT09, Meeting ID: 817 2693 9485, Passcode: 889707
Registrazione al corso
È obbligatorio compilare il form di registrazione:
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 e' Marzo 2023. Oltre tale data, lo studente dovra' risostenere la prova scritta - qualunque sia stata la votazione precedente.
In generale, il totale di punti ottenibili e' di 32 punti cosi' ripartiti:
Scritto: test_max_points = 24;
Progetto: proj_max_points = 8;
Link per scegliere il progetto: Progetti21_22.
Prossimi Appelli (esame scritto)
Prenotatevi su infostud 15 giorni prima per esigenze di organizzazione
2022/06/08 Aule 1-2 , Via del Castro Laurenziano 7-9, ore 14:00
2022/07/14 Aula 108, Marco Polo, 14:00
2022/01/09 Aula B2, Via Ariosto, 10:00
2022/10/27 Aula A4, Via Ariosto, 15:00
2023/01/18 Aula A5+A6 Via Ariosto, 10:00
2023/02/09 Aula A5+A6 Via Ariosto, 10:00
2023/03/28 Aula A3 Via Ariosto, 17:00
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