1. Introduzione
Concetti di base
Tipi di sistemi operativi
Architetture dei calcolatori (cenni)
2. Struttura del Sistema Operativo
Componenti di un SO
Servizi e funzioni dei SO
Interrupt e System Call
API (Application Program Interface)
3. Processi
Rappresentazione di un processo in un sistema operativo (PCB)
Meccanismo di multiplexaggio della CPU
Diagramma di transizione di stato
Scheduling dei processi
Algoritmi di scheduling:
- Round Robin
- SJF
- SJF preemptive
- Scheduling a lotteria
- Scheduling con priorità statica
- Cenni a Scheduling con priorità dinamica
4. Thread
Vantaggi della programmazione multithreading
Thread a livello utente e livello kernel
Soluzioni miste (Solaris)
Scheduling dei Thread
5. Programmazione concorrente
Errori time-dependent e corse critiche
Sezione critica
Proprietà attese per i programmi concorrenti
Liveness, Fairness
Soluzione di Peterson
Semafori binari e generalizzati
Problema Produttore-Consumatore
Monitor
Deadlock: definizione e condizioni che lo determinano
Prevenzione del Deadlock attraverso gerarchizzazione delle risorse
Detection&Recovery del Deadlock: Grafo di Allocazione delle Risorse
6. Laboratorio (2 CFU)
La programmazione concorrente in Java
La classe Thread
L'interfaccia Lock e la classe Condition
Esempi di programmi concorrenti
7. Gestione della memoria
Swap di processi
Allocazione contigua, rilocazione, registri base e limite
Paginazione
Tabella delle pagine e tabella delle pagine invertita
Bit di riferimento, bit di modifica, bit di blocco, bit ab/dis cache, bit di validità
Segmentazione
MMU, TLB
Memoria virtuale
Principio di località
LRU e working set
Scheduling di medio termine
Algoritmi di sostituzione delle pagine:
-FIFO
-Not Recently Used
-Algortimo dell'Orologio (Clock)
8. File system
L'astrazione file
Directory
Struttura di un file system
Metodi di allocazione dei file:
-Allocazione contigua
-Lista concatenata
-Lista concatenata con cluster
-File allocation table (FAT)
-Cenni agli i-node
9. Gestione dell'I/O
Introduzione a I/O nei Sistemi Operativi
I/O a controllo di programma
I/O interrupt driven
I/O con DMA
Ultimo aggiornamento: 21-12-2025