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
- Algoritmo basato su CPU burst
- Scheduling a lotteria
- Scheduling con priorità statica
- Scheduling con priorità dinamica
- Scheduling di Windows
- Scheduling di Linux (CFS)
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
Implementazione del monitor attraverso semafori
Implementazione dei semafori:
-limiti della disabilitazione delle interruzioni
-implementazione attraverso Test and Set Lock
-cenni ad altre implementazioni
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
Problema del Trashing e scheduling di medio termine
Allocazione locale e globale
Algoritmi di sostituzione delle pagine:
-FIFO
-Not Recently Used
-Algortimo dell'Orologio (Clock)
-LRU basato su stringhe di bit di riferimento
-Algoritmo basato su martice HW
-Algoritmo basato su working set
-Algoritmo WSClock
8. Cache
Introduzione alla cache
Analisi del tempo di accesso alla memoria in presenza di cache
Cache a corrispondenza diretta (con tag)
Cache associative
Cache set-associative
9. 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)
Organizzazione File System in Unix: Boot Block, Super Block, I-List, Data Blocks
I-node con single, double and triple indirect
soft e hard link
Dimensione massima di un file indicizzabile con i-node
Strutture dati relative ai file:
- Processo: Tabella dei file aperti
- Kernel: Tabella dei file aperti e I/O pointer e Tabella dei file attivi
Gestione dello spazio libero
-mappa di bit
-liste concatenate
10. Gestione dell'I/O
Introduzione a I/O nei Sistemi Operativi
Dispositivi di I/O: a caratteri, a blocchi, di rete, speciali
Device Controller
Strutturazione a livelli del SW di I/O:
interrput handler, driver, device-independent software, user-level sofwtare
Caratteristiche generali dei driver.
Funzioni dell'user-level software:
- funzioni per invocare le API/System Call
- gestione eccezioni
- Spooling
Funzioni del device-independent software:
- bufferizzazione e tecnica del read ahead,
- interfaccia verso i driver,
- naming e formattazioni blocchi
- gestione accesso ai dipositivi,
- gestione delle eccezioni
Interrupt: precisi e imprecisi
I/O a controllo di programma
I/O interrupt driven
I/O con DMA
11. Memoria secondaria
Struttura dei dischi (magnetici)
Funzione dell'MBF
Tempo di accesso al disco
Formattazione dei dischi:
-Interleaving
-Skew
Gestione blocchi difettosi
Algoritmi di Scheduling del disco:
-FIFO
-Shortest Seek First
-SCAN, CSCAN, Lookahead
NAS - Network Attached Storage
SAN - Storage Area Network
Misure di affidabilità e disponiblità: MTBF e rapporto di Availability
MTBF e array di dischi
RAID (0,1,2,3,4,5)
12. Fondamenti di Cybersecurity (con riferimento ai SO)
Attributi della Security: CIA
Security nei sistemi operativi
Security policies e access control
User account
Modalità di esecuzione
Isolamento dei processi, fairness, quote
Privilegi di utenti e processi
Access Control Matrix
Domain transfer
Access delegation
Resource ownership
Access Control List
Capability List
Usecase (UNIX): accesso alle risorse, modifica dei permessi (chmod), user e group ID,
file: /etc/passwd, EUID e cambio di UID (bit SETUID).
Cenni al buffer overflow.
Ultimo aggiornamento: 21-12-2025