|
Concetti introduttivi.
Il ruolo del Sistema Operativo (S.O.) nel funzionamento di un sistema di
elaborazione. Servizi offerti dal S.O. Classificazione e architetture dei
S.O. |
|
Esecuzione di un programma
Dual mode. Mode switch e process switch. Classificazione e gestione
degli interrupt. Input/Output: architettura e funzionamento. |
|
Gestione dei processi.
Definizione di processo e thread. Ciclo di vita di un processo. Livelli
di scheduling. Algoritmi di scheduling della CPU. Cenni allo scheduling
realtime. Comunicazione e sincronizzazione tra processi. Race conditions.
Costrutti per la sincronizzazione: algoritmi basati su busy waiting,
semafori, monitor, scambio di messaggi. Deadlock. |
|
Gestione della memoria centrale.
Binding degli indirizzi. Memoria virtuale. Paginazione e segmentazione.
Allocazione locale e globale delle pagine. Algoritmi di sostituzione delle
pagine. Modello basato su working set e thrashing. |
|
Gestione della memoria secondaria e file system.
Il concetto di file e di directory. Il file system e la sua
organizzazione a livelli. Metodi di allocazione dei file. Implementazione
delle directory. Gestione dello spazio libero. Cache e problemi di
consistenza. Algoritmi di scheduling per le richieste di accesso a disco. |
|
Protezione e sicurezza.
Definizioni generali, principio del minimo privilegio. Matrice di protezione e meccanismi basati su Access Control List e Capability List. Covert channels. Modelli di protezione basati su sensitivity labels. Autenticazione e gestione delle password. |
|
Programmazione di shell.
Introduzione alla shell di sistema in ambiente UNIX. Utilizzo di comandi
ed opzioni. Gestione di processi. Redirezione di I/O e pipe. La shell come
interprete. Variabili e strutture di controllo. |