Introduzione ai Sistemi Operativi Quali sono gli obiettivi principali di un sistema operativo? Quali sono i vantaggi della multiprogrammazione ? Cos’è il ciclo fetch-decode-execute Come funziona l’esecuzione di programmi con time-sharing ? A cosa serve uno scheduler ? Quali sono le caratteristiche dei sistemi distribuiti ? Quali sono i principali requisiti dei sistemi operativi real-time ?
Processi e Thread Descrivere le variazioni di stato di un processo che effettua molte operazioni di I/O. Cos’è il context switch. Come sono gestiti i thread in Java. Elencare le differenza principali tra i processi e i thread. A cosa serve uno scheduler a medio termine e uno a lungo termine.
Sicnronizzazione fra thread Perché i thread possono avere problemi di sincronizzazione? Illustrare con un esempio. Spiegare cosa sono i problemi di mutua esclusione, attesa limitata e progresso? Come funziona l’algoritmo del fornaio? Qual è la differenza nell’implementazione di un semaforo binario e di uno generalizzato? Illustrare con un esempio il problema del deadlock e della starvation.
Scheduling della CPU Valutare i diversi algoritmi di scheduling sugli esempi usati per gli scheduling FCFS, SJF e RR. Come dovrebbe essere un algoritmo di scheduling per processi di tipo I/O bound ? Valutare l’effetto di quanti di tempo differenti sull’algoritmo RR. Spiegare l’effetto della priorità dinamica sugli algoritmi di scheduling con priorità.
Gestione della memoria Descrivere quando accade di avere frammentazione interna e/o frammentazione esterna. Discutere i pro e i contro del metodo worst-fit anche rispetto agli altri metodi. Discutere le differenze principali tra paginazione e segmentazione. Quali sono i benefici di usare la segmentazione paginata ? Spiegare le operazioni da eseguire per la gestione di un page fault. Discutere le differenze tra gli algoritmi di sostituzione FIFO e LRU.
Esercizi Calcolare il tempo di attesa medio usando l’algoritmo di scheduling FCFS, e SJF preemptive e non preemptive, considerando i seguenti processi (di seguito diamo tempo di arrivo e tempo di burst): P1 0 5, P2 1 4, P3 1 8, P4 0 4, P5 2 2. Calcolare il numero di page fault per gli algoritmi FIFO e LRU, usando 3 frame e considerando la sequenza di pagine 1, 2, 3, 4, 3, 2, 1 , 1, 2 , 3, 3, 4, 4,1 ,3.