Corso di Laurea in Informatica Applicata - La Spezia

4 Aprile  2003

Sistemi Operativi - Prima  prova intermedia

 

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.