Project Description
Obiettivi
Programma
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