Corso
di Laurea in Informatica Applicata - La Spezia
30
marzo 2006
Sistemi
Operativi - Prima prova intermedia
1) Qual e' la differenza principale tra una chiamata di sistema e una normale chiamata a procedura?
2) Quali tecniche di IPC (Interprocess
Communication) sono disponibili per i threads di Unix?
3) Cosa sono i semafori? Descrivere il loro
funzionamento.
4) Scrivere in pseudo-C (o in altro pseudocodice)
una soluzione corretta del problema del produttore-consumatore
utilizzando i
semafori .
5) Descrivere i meccanismi di schedulazione in
UNIX.
6)
Differenza tra job, processsi, thread e fibre di Windows 2000. Quali di
essi
sono thread gestiti a livello utente ?
7) Quali tra i seguenti elementi sono condivisi
tra tutti i threads di un processo e
quali sono privati di ciascun thread di
un processo ? (Movivare la risposta)
a)
Stack
b)
Spazio
di indirizzamento
c)
Stato
8) In un sistema con 3 tipi di risorse il vettore
delle risorse esistenti è [X 3 5 2] con X>=2. Consideriamo lo stato
definito
dalla seguente matrice di allocazione corrente:
Processo 0
2 0 1 0
Processo 1
0 1 0 0
Processo 2
0 0 1 0
Processo 3
0 1 1 0
E dalla seguente matrice delle richieste CORRENTI
di ciascun processo :
Processo 0 1 0 4 1
Processo 1
0 1 0 1
Processo 2
0 2 0 0
Processo 3
2 0 3 1
Dire per quali valori di X il sistema è in
deadlock.
9) In un sistema che adotta uno scheduling round
robin con quanti di tempo di 100ms, si considerino i seguenti processi:
Processo
tempo
di arrivo
durata
A
0 ms
200 ms
B
50 ms
100 ms
C
150 ms
150
ms
D
320 ms
50 ms
Considerando un tempo di commutazione di contesto
di 1 ms, si calcoli l'istante di
terminazione
di ogni processo.
10) Elencare le condizioni di Coffman per lo
stallo. Quante di esse devono essere
negate per non avere uno stallo (spiegare)? Fate un esempio di
negazione di una
condizone di Coffman.