:orphan: Sistemi Operativi A.A. 2021/2022 ============================================= Benvenuti al corso di Sistemi Operativi per A.A. 2021/2022 del Corso di Laurea in Ingegneria Informatica di Roma Tre Docente: `Romolo Marotta `_ .. warning:: Questa edizione del sito del corso è stata archiaviata. Per accedere alle differenti sezioni del corso utilizzare i link seguenti: .. toctree:: :maxdepth: 1 self linux_install examples questions slides lectures/index challenges exams news errata .. * :doc:`/2021/news` * :doc:`/2021/slides` * :doc:`/2021/questions` * :doc:`/2021/challenges` * :doc:`/2021/exams` * :doc:`/2021/examples` * :doc:`/2021/lectures/index` Obiettivi del corso ------------------- L'obiettivo del corso è fornire allo studente competenze sull'architettura di un generico sistema operativo moderno, con particolare riferimento al sistema Linux, e sulle metodologie usate per risolvere le problematiche tipiche della gestione di risorse in un sistema operativo moderno. Infine, particolare attenzione verrà dedicata alla programmazione di sistema e scripting. Orario delle lezioni -------------------- ========= ============= ===== Giorno Orario Aula ========= ============= ===== Martedì 16:00 - 18:00 N13 [Vasca Navale 79/81] - `Aula Teams `_ Mercoledì 16:00 - 18:00 N13 [Vasca Navale 79/81] - `Aula Teams `_ ========= ============= ===== Link ai contenuti del corso --------------------------- - `Teams `_ - `SharePoint `_ - `Stream `_ - `Moodle `_ - `GitHub `_ - :doc:`Slides ` Ricevimento ----------- Contattare il docente alla seguente email **{nome}.{cognome}@uniroma3.it** e riportare il prefisso **[SO2122]** nell'oggetto. Modalità d'esame ---------------- L'esame prevede 1 prova ripartita in 2 due test, i cui punteggi sono ripartiti secondo quanto segue. +---------+----------------------------+-------+-------+-------------+ | # Test | Tipologia | Punti | Perc. | Sufficienza | +---------+----------------------------+-------+-------+-------------+ | 1 | Domande di teoria | ~20 | ~65% | ~12 | +---------+----------------------------+-------+-------+-------------+ | 2 | Esercizi di programmazione | ~11 | ~35% | ~6 | +---------+----------------------------+-------+-------+-------------+ Regole: #. Il voto finale è pari alla somma dei punteggi ottenuti: * nei test 1 e 2; * dalla vincita di una sfida avanzata dal docente. 2. Per superare l'esame occorre ottenere la sufficienza in entrambi i test. #. Qualora la sufficienza sia stata conseguita solo su uno dei due test, lo studente è esonerato dal sostenere il test in cui è risultato sufficiente nell'A.A. 2021/2022. Potrà perciò risostenere unicamente il test dove non ha conseguito la sufficienza. #. Per la lode è richiesto un punteggio di 31 punti. #. I punteggi ottenuti nei test e nelle sfide potranno essere mantenuti fino all'ultima sessione di esame per l'A.A. 2021/2022. Date """""""" * Sessione Estiva: * 24-06-2022. **Se e solo se** la capienza dell'aula non sarà sufficiente ad ospitare il numero di prenotati, verranno considerate date aggiuntive. * 20-07-2022. **Se e solo se** la capienza dell'aula non sarà sufficiente ad ospitare il numero di prenotati, verranno considerate date aggiuntive. * Sessione Invernale: * 26-01-2022. **Se e solo se** la capienza dell'aula non sarà sufficiente ad ospitare il numero di prenotati, verranno considerate le seguenti date aggiuntive: 28-01-2022, 31-01-2022. * 21-02-2022. **Se e solo se** la capienza dell'aula non sarà sufficiente ad ospitare il numero di prenotati, verranno considerate le seguenti date aggiuntive: 24-02-2022, 28-02-2022. * L'assegnazione alle date aggiuntive viene fatta secondo una politica First-Come-First-Serve. .. _textbooks: Testi consigliati e link utili (in aggiornamento) ------------------------------------------------- * [t1] Operating Systems: Internals and Design Principles - William Stallings - Prentice Hall, fifth edition (o superiori). Riferimento: ninth global edition. * [t2] Sistemi operativi: Concetti ed Esempi - Silberschatz Abraham, Galvin Peter Baer, Gagne Greg - Addison Wesley/Pearson, nona edizione (o superiori). Riferimento: tenth global edition. * [t3] Programmazione in Ambiente UNIX - Francesco Quaglia, Camil Demetrescu - `Disponibile in formato pdf `_ .. role:: removedtopic Programma --------- * **Panoramica sui sistemi operativi moderni.** definizione di sistema operativo, scopi, architettura a strati, kernel/user mode, caratteristiche salienti * **Processi e Thread.** dispatching, stati, descrizione e controllo, modelli tipici di sistemi operativi e di uso della memoria nei processi * **Scheduling.** a breve medio e lungo termine, algoritmi per cpu scheduling * **Sincronizzazione.** primitive di sincronizzazione, RMW, mutex, semafori * **Memoria.** allocatori di memoria, partitioning, best/first/next fit, buddy algorithm, paging, segmentation, memoria virtuale e sua gestione hardware/software * **I/O e File Management.** Disk scheduling, :removedtopic:`RAID`, UNIX File Management, inode, Linux VFS, ext2 * **Introduzione a Linux.** comandi di utilizzo frequente (e.g., gestione file e directory), variabili di ambiente, redirection, :removedtopic:`piping, segnali, espressioni regolari (sed e grep), scripting (bash, awk),` linux filesystem management * **Programmazione di Sistema.** Gestione in C dei processi/thread su ambiente linux * :removedtopic:`**Debugger**.` :removedtopic:`utilizzo di gdb stepping, breakpoints, watching, backtrace, comandi gdb.` * :removedtopic:`**Virtualizzazione.**` :removedtopic:`Concetti generali, container, Docker` .. warning:: :removedtopic:`topic` indica che i relativi contenuti sono stati esclusi dal programma