Sistemi Operativi A.A. 2022/2023¶
Benvenuti al corso di Sistemi Operativi per A.A. 2022/2023 del Corso di Laurea in Ingegneria Informatica di Roma Tre
Lecturer: Romolo Marotta
News¶
Warning
Pubblicati i risultati della sessione di Luglio 2023
Per la lista completa degli aggiornamenti visita la sezione dedicata: News
Course objectives¶
The course intends to provide competencies about the architecture of modern operating systems, expecially Linux, and knowledge about methodologies adopted for solving problems within the management of resources. Finally, practical aspects will be also covered, in particular system programming and scripting.
Schedule¶
Day |
Time |
Classroom |
---|---|---|
Tuesday |
16:00 - 18:00 |
N13 [Vasca Navale 79/81] - Aula Teams |
Wednesday |
16:00 - 18:00 |
N13 [Vasca Navale 79/81] - Aula Teams |
Warning
Il corso è pensato per essere seguito dagli studenti in presenza.
Le lezioni saranno comunque trasmesse in streaming e registrate, ma queste ulteriori modalità di erogazione sono disponibili soprattutto per coloro che saltuariamente non possono partecipare alle lezioni.
Se, per motivi tecnici, non sarà possibile registrare o trasmettere, la lezione sarà impartita ugualmente.
Se il docente riterrà utile usare la lavagna e non sarà possibile inquadrarla in modo efficace, la lezione si svolgerà ugualmente.
Non è detto che sarà possibile, per gli studenti che parteciperanno in remoto, interagire con il docente durante la lezione.
Link to course contents¶
Stream
Student reception¶
Contattare il docente alla seguente email {nome}.{cognome}@uniroma3.it e riportare il prefisso [SO2223] nell’oggetto.
Exam details¶
L’esame prevede 2 prove i cui punteggi sono ripartiti secondo quanto segue.
# Test |
Topic |
Points |
Perc. |
Minimum mark |
Durata |
1 |
Theory questions |
~21 |
~65% |
~12 |
~2h |
2 |
Programming exercises |
~10 |
~35% |
~6 |
~1h30m |
Rules:
The final mark is the sum of points obtained
by passing test 1 and 2;
by winning the challenges provided by the lecturer.
To pass the exam it is necessary to obtain at least the minimum mark in both tests.
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. 2022/2023. Potrà perciò risostenere unicamente il test dove non ha conseguito la sufficienza.
A score of 31 points is required for honors
I punteggi ottenuti nei test e nelle sfide potranno essere mantenuti fino all’ultima sessione di esame per l’A.A. 2022/2023.
Dates¶
I Appello (Gennaio)
Prova di programmazione: 31/01 in Aula ECampus (turni disponibili dopo il 25/01)
Prova di teoria: 07/02 in Aula N11 ore 14:00
II Appello (Febbraio)
Prova di programmazione: 21/02 (turni disponibili dopo il 15/02)
Prova di teoria: 28/02 in Aula N11 ore 10:00
Textbooks and useful links (still updating)¶
[t1] Operating Systems: Internals and Design Principles - William Stallings - Prentice Hall, fifth edition (or higher). Reference: ninth global edition.
[t2] Operating System Concepts - Silberschatz Abraham, Galvin Peter Baer, Gagne Greg - Addison Wesley/Pearson, ninth edizione (or higher). Reference: tenth global edition.
[t3] Programmazione in Ambiente UNIX - Francesco Quaglia, Camil Demetrescu - Available in pdf [Italian]
Planned topics¶
Overview of modern operating systems: definition, goals, architectures, kernel/user mode, main concepts
Processes and Threads. dispatching, states, description and control, models and process memory
Scheduling: long, mid and short term scheduling, CPU scheduling
Synchonization: synchronization primitives, Read-Modify-Write, locks, mutex, semaphores
Memory:, allocators, partitioning, paging, segmentation, virtual memory
I/O e File Management. Disk scheduling, UNIX File Management, inode, Linux VFS, ext2
Introduzione a Linux. comandi di utilizzo frequente (e.g., gestione file e directory), variabili di ambiente, redirection, piping, segnali, espressioni regolari (sed e grep), scripting (bash, awk), linux filesystem management
System programming: Process and thread management in C
**Debugger**. utilizzo di gdb stepping, breakpoints, watching, backtrace, comandi gdb.
**Virtualizzazione.** Concetti generali, container, Docker