Cognome:
Nome:
Matricola:
Sistemi Operativi
Docente: Paolo D’Arco
Appello del 16/09/2008
Non è ammesso alcun materiale per consultazione. Buon lavoro! ☺
1
2
3
4
5
1) (20 punti) Sincronizzazione tra processi
Si definisca il problema della sezione critica, la struttura generale di un protocollo per la sezione critica
e le proprietà che un tale protocollo deve soddisfare.
Si analizzi il seguente protocollo per la sezione critica per due processi (variante del protocollo
di Peterson). Presenta problemi?
Pi e Pj condividono due variabili booleane flag[i] e flag[j] inizializzate a FALSE e una variabile intera
turn.
Codice per Pi
do{
flag[i]=TRUE;
turn = i;
while (flag[j] == TRUE && turn == j) no-op;
sezione critica
flag[i] = FALSE;
sezione non critica
} while(TRUE);
2) (20 punti) Scheduling della CPU
I parametri solitamente utilizzati per valutare le performance degli algoritmi di schedulazione sono
utilizzo della cpu, throughput, turnaround time, waiting time e response time.
1. Cosa rappresentano?
2. Quali parametri si cerca di massimizzare e quali di minimizzare?
3. Perché alcuni ricercatori sostengono che invece di minimizzare il valore medio del tempo di
risposta occorrerebbe minimizzare la varianza del tempo di risposta?
4. L’algoritmo SJF è ottimo nel senso che dà il minimo tempo medio d’attesa. Perché?
5. Come si stimano le durate dei prossimi CPU-burst per implementare l’algoritmo SJF e qual è il
significato del parametro α nella formula di approssimazione?
3) (20 punti) Memoria Paginata.
Utilizzando l’immagine che segue si descrivano il funzionamento di una memoria paginata e le
caratteristiche delle componenti architetturali coinvolte. Inoltre, si spieghi cosa si intende per tempo di
accesso effettivo alla memoria (EAT – effective memory-access time)
4) (20 punti) Deadlock
Si spieghi cosa si intende per stato sicuro e sequenza sicura e che relazione esiste tra questi concetti ed
il problema del deadlock.
Si consideri lo stato di allocazione delle risorse del sistema che segue. Il sistema dispone di 12 unità.
1. E’ il sistema in uno stato sicuro?
2. Nell’ipotesi in cui P2 richiedesse un’ulteriore risorsa e gli venisse assegnata, il sistema
risulterebbe in uno stato sicuro?
P0
P1
P2
Richieste
massime
Unità
possedute
10
4
9
5
2
2
5) (20 punti) Thread
1. Cos’è un thread e perché può essere conveniente avere applicazioni multithread? Si fornisca
qualche esempio.
2. Una struttura di dati che rappresenta un blocco di controllo del thread cosa dovrebbe contenere?
3. Una libreria che offre thread al programmatore può essere implementata attraverso i modelli Ma-1, M-a-M, 1-a-1, e a due livelli (ibrido). Si pongano brevemente in evidenza i vantaggi e gli
svantaggi dei differenti approcci.
Programmazione di sistema
1. Cos’è un’ API e perché solitamente i programmatori preferiscono usare funzioni offerte dalle
API piuttosto che direttamente chiamate di sistema offerte dal sistema operativo? Si illustri
schematicamente (e possibilmente con un esempio) la relazione che esiste tra funzioni dell’API
e system call.