Project Description

Obiettivi

Il corso ha l’obbiettivo di presentare allo studente concetti basici riguardanti la strutturazione dei moderni sistemi operativi, unitamente alle funzionalità che essi offrono sia all’utenza che agli sviluppatori di applicazioni software. Particolare attenzione verrà dedicata ai supporti che i sistemi operativi offrono per lo sviluppo del software in linguaggio C. I concetti introdotti verrano calati su due studi di caso, riguardanti la famiglia dei sistemi Unix e quella dei sistemi Windows.

Programma

Introduzione ai sistemi operativi
Richiami sull’organizzazione di un sistema di calcolo
Obiettivi dei sistemi operativi
Sistemi batch uniprogrammati
Sistemi batch multiprogrammati
Sistemi time-sharing
Architettura di massima dei sistemi UNIX/Windows
Ambienti di esecuzione
Aspetti basici sulla sicurezza del software

Processi e thread
Esecuzione e stati di processi
Multiprogrammazione e Swapping
Strutture di controllo di processi
Immagine di un processo
Liste di processi e scheduling
Processi in sistemi UNIX/Windows
Supporti per il multi-threading
Threads in sistemi UNIX/Windows

Scheduling della CPU
Metriche di riferimento
Algorithmi di scheduling classici
Scheduling in sistemi UNIX/Windows

Virtual File System ed I/O
Concetti basici
Metodi di accesso e di allocazione dei file
Implementazione del virtual file system
Gestione dei buffer di I/O
Gesitone delle utenze e dei permessi di accesso
Virtual file system ed I/O in sistemi UNIX/Windows

Gestione della memoria
Binding degli indirizzi
Partizioni fisse e variabili
Paginazione e segmentazione
Memoria virtuale
Memoria condivisa e file-mapping
Gestione della memoria in sistemi UNIX/Windows

Sincronizzazione
Spinlocks, mutex e semafori
Supporti in sistemi UNIX/Windows

Eventi
Meccanismi di segnalazione e gestione di eventi sincroni ed asincroni
Supporti in sistemi UNIX/Windows

Servizi di sistema per la programmazione di rete
Stack di protocolli di comunicazione
Sockets in sistemi UNIX/Windows

0 crediti
60 ore di lezione
0° Anno
Laurea
0° semestre