Docente
|
MAROTTA ROMOLO
(programma)
- Richiami di calcolatori elettronici: architettura di un elaboratore, CPU, registri, esecuzione di una istruzione, interrupt, gerarchie di memoria, localita', I/O, chiamate di procedura - 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 - Memoria: allocatori di memoria, partitioning, best/first/next fit, buddy algorithm, paging, segmentation, memoria virtuale e sua gestione hardware/software - Scheduling: a breve medio e lungo termine, algoritmi per cpu scheduling - I/O e File Management: Disk scheduling, RAID, UNIX File Management, inode, Linux VFS, ext2 - Sincronizzazione: primitive di sincronizzazione, RMW, mutex, semafori - Introduzione a Linux: comandi di utilizzo frequente (e.g., gestione file e directory), variabili di ambiente, piping, redirection, segnali, espressioni regolari (sed e grep), scripting (bash, awk), linux filesystem management - Debugger: utilizzo di gdb stepping, breakpoints, watching, backtrace, comandi gdb. - Programmazione di Sistema: Gestione in C dei processi/thread su ambiente linux - Virtualizzazione: Concetti generali, container, Docker
(testi)
Il corso è in parte basato sui seguenti testi:
[t1] Operating Systems: Internals and Design Principles - William Stallings - Prentice Hall, quinta edizione (o superiori). Riferimento: nona edizione. [t2] Sistemi operativi: Concetti ed Esempi - Silberschatz Abraham, Galvin Peter Baer, Gagne Greg - Addison Wesley/Pearson, nona edizione (o superiori). Riferimento: tenth global edition.
Tuttavia alcuni argomenti sono trattati solo sulle slide pubblicate nel materiale didattico.
|