Corso di Laurea in Informatica Applicata – La Spezia

1 Aprile  2004

Sistemi Operativi – Prima  prova intermedia

 


 

 

Esercizio 1. Spiegare il funzionamento dell’istruzione TSL (Test and Set Lock)  e a qual fine viene utilizzata.


Esercizio 2 Scrivere in linguaggio C (o in pseudo-codice) l’algoritmo di Peterson per la mutua esclusione.


Esercizio 3. Descrivere i principali aspetti dell’algoritmo di scheduling di Unix.

 

Esercizio 4. Elencare le  tecniche di IPC (Interprocess Communication)  disponibili in Windows 2000.

 
Esercizio 5. Elencare le condizioni che causano la chiamata allo scheduler in Windows 2000.


Esercizio 6. Supponiamo di avere quattro processi A, B, C, D e sono 4 tipi di risorse (da R1 a R4), disponibili rispettivamente con molteplicità 3, 2, 1, 2. Supponiamo che la sequenza di richieste/rilasci sia:

 

1.         A richiede R3    

2.         B richiede R2    

3.         C richiede R3    

4.         A richiede R2    

5.         D richiede R4    

6.         B richiede R4    

7.         A richiede R4    

8.         B richiede R1    

9.         B rilascia R4     

10.       D richiede R1    

11.       A richiede R1

12.       D richiede R3    

13.       A richiede R4    

 

Questa sequenza determina un deadlock? Motivare la risposta.

 

Esercizio 7. Si consideri un sistema che adotta scheduling a priorità con code multiple, e si supponga la seguente situazione iniziale (2 è la priorità maggiore):

 

priorità 2          processo A --> processo B

priorità 1          processo C

priorità 0          processo D --> processo E

 

si assuma inoltre:

a)         il quanto di tempo lungo 20ms,

b)         la durata di ciascun processo pari a 31ms per A, 40ms per B, 11ms per C, 14ms per D e 25ms per E.

 

in queste ipotesi e trascurando il tempo di commutazione di contesto si calcoli il tempo di completamento di ciascun processo. Quale sarebbe stato invece il tempo di completamento di ciascun processo se da questa situazione iniziale si fosse applicato lo scheduling SJF ?

  
Esercizio 8
. Spiegare perché, nel diagramma delle transizioni di stato dei processi, non sono previste le transizioni:

(a) stato di pronto a stato di attesa

(b) stato di attesa ad esecuzione.


Esercizio 9

(a)   In che cosa consiste il problema delle chiamate a sistema bloccanti nei threads?

(b)   Questo problema si presenta quando essi vengono gestiti  a livello user o  quando vengono gestiti a livello kernel ? Spiegare.


Esercizio 10. Quali strategie e’ possibile adottare per  risolvere (eliminare gli effetti) di uno stallo?