Fondamenti I. Architettura del calcolatore: CPU, memoria, I/O.
Laurea Triennale in Informatica · Sapienza Università di Roma
Anno Accademico 2026/27 — I Canale (9 CFU)
Il corso introduce i sistemi operativi come componente essenziale di ogni sistema di calcolo e come esempio paradigmatico del concetto di astrazione.
L'obiettivo primario è comprendere come il processo di virtualizzazione delle risorse fisiche permetta di gestire la complessità hardware, offrendo un ambiente semplificato per lo sviluppo del software applicativo.
INIZIO DEL CORSO: La prima lezione del corso si svolgerà mercoledì 23 settembre.
Martedì
15:00 – 18:00
Mercoledì
16:00 – 18:00
Giovedì
13:00 – 15:00
Aula 4 — Via De Lollis (RM158) — accesso dai laboratori di Via Tiburtina 205.
L'iscrizione al Google Classroom del corso è obbligatoria per rimanere aggiornati su tutto ciò che riguarda il corso.
Iscriviti al ClassroomUsare sempre il seguente pattern nell'oggetto delle email:
Il corso introduce i sistemi operativi come componente essenziale di ogni sistema di calcolo e come esempio paradigmatico del concetto di astrazione. L'obiettivo primario è comprendere come il processo di virtualizzazione delle risorse fisiche permetta di gestire la complessità hardware, offrendo un ambiente semplificato per lo sviluppo del software applicativo.
Richiesti
Consigliati
Testo principale
Operating Systems: Three Easy Pieces — Arpaci-Dusseau & Arpaci-Dusseau
Disponibile gratuitamente online.
Scritto — obbligatorio
| Risposta | Punteggio |
|---|---|
| Corretta | +2 |
| Non data | 0 |
| Errata | −1 |
Il punteggio grezzo S ∈ [−48, 96] è convertito linearmente in voto V(S):
dove T è la soglia minima (es. T = 42). Voto minimo per l'accesso all'orale: V(S) = 18.
Orale — facoltativo
| Prestazione | Effetto |
|---|---|
| Eccellente | fino a +8 (lode) |
| Sufficiente | conferma voto scritto |
| Insufficiente | fino a −8 |
Fondamenti I. Architettura del calcolatore: CPU, memoria, I/O.
Fondamenti II. Introduzione ai SO: storia, astrazione, obiettivi; supporto hardware: interrupt, syscall, DMA, modalità utente/kernel.
Fondamenti III. Programmazione in C: tipi primitivi, array, puntatori, memoria (stack, heap).
Fondamenti IV. Programmazione in C: compilatore, linker, assembler.
Virtualizzazione I (CPU). Processi e API: fork, exec, wait, ecc.
Virtualizzazione II (CPU). Scheduling della CPU: politiche di base (FIFO, RR, SJF, STCF).
Virtualizzazione IV (CPU). Scheduling della CPU: MLFQ, Lottery/Stride, Linux CFS.
Virtualizzazione IV (Memoria). Spazio di indirizzamento, Rilocazione statica e dinamica (Base/Bounds).
Virtualizzazione V (Memoria). Segmentazione e introduzione al paging.
Virtualizzazione VI (Memoria). Accelerazione tramite TLB e paging multilivello.
Virtualizzazione VII (Memoria). Swapping: meccanismi e politiche (LRU/Clock).
Concorrenza I. Thread e memoria condivisa.
Concorrenza II. Lock: test-and-set, CAS, spinlock.
Concorrenza III. Variabili di condizione (condition variables).
Concorrenza IV. Semafori: binari e a conteggio.
Concorrenza V. Deadlock.
Materiale e comunicazioni relativi alle precedenti edizioni del corso.