1) Che cos'e il problema del barbiere sonnolento
?
2) Scrivere in pseudo-C (o in altro pseudocodice)
una soluzione corretta del problema del barbiere sonnolento.
3) Descrivere le differenze tra sistemi operativi
monolitici, a strati (layered), client-server e a microkernel. Classificare UNIX, LINUX e Windows
2000 da questo punto di vista.
4) Quali risorse vengono condivisi da tutti i threads
di un processo e quali risorse sono private di ciascun thread ? Giustificare le risposte
5) Descrivere i passi necessari
per il servizio di una chiamata di sistema
6) Uno schedulatore ricevere
contemporaneamente 6 job (A,
B, C, D, E, F) tali che
Job Tempo
stimato Priorità
A 20
3
B 10
4
C 15
1
D 6
6
E 4
5
F 11
2
Calcolare il tempo di turnaround
(tempo di completamento) medio ottenuto con
i seguenti algoritmi di scheduling: Shortest Job First, Scheduling a Priorità
(i processi a priorità più alta hanno la precedenza su quelli a priorità
più bassa) e un ipotetico algoritmo che schedula nell'ordine
A, F, E, B, D, C senza prerilascio. Si ignori il tempo
impiegato nella commutazione di contesto.
7) Problema dell'inversione di priorita' nella schedulazione
di Windows 2000 e euristica per la sua soluzione.
8) A cosa servono e cosa contengono le strutture
dati di UNIX chiamate tabella dei processi e struttura utente? Quale delle
due deve essere sempre residente in memoria e perche’?
9) Elencare le condizioni affinche'
si verifichi lo stallo e motivare la risposta. Quante
di esse devono verificarsi contemporaneamente per
dare origine ad uno stallo ?
10) Abbiamo un sistema con 5 tipi di risorse allocabili.
L'allocazione corrente e il massimo fabbisogno sono i seguenti:
Risorse Allocate Massimo
Processo P1 1
0 2 1 1 1 1 2 1 3
Processo P2 1
1 1 1 0 1 1 2 2 1
Processo P3 1
1 0 1 0 2 1 3 1 0
Processo P4 2
0 1 1 0 2 2 2 1 0
Il vettore delle risorse disponibili e' pari a [0
0 2 1 X]. Applicare l'algoritmo del banchiere per stabilire il valore piu'
piccolo di X per cui lo stato è sicuro.