D1 |
D2 |
D3 |
D4 |
D5 |
E1 |
E2 |
E3 |
E4 |
Totale |
|
Punti |
4 |
3 |
3 |
3 |
3 |
6 |
4 |
3 |
3 |
32 |
Risorse condivise semaphore S=1, T=0, U=0, V=1 int x; |
|
Processo
P1 { down(&S); read(x); if (x=0) then up(&T); down(&U); else up(&T); down(&V); endif; write(x); } |
Processo P2 { down(&T); x:=100; up(&U); up(&V); } |
Esercizio 2
Cinque processi, P1, P2, P3,
P4 e P5 richiedono
contemporaneamente di poter utilizzare la CPU.
La lunghezza dei
CPU-burst e le priorità sono dati nella
seguente tabella (numeri bassi =
priorità alte):
P1 | P2 | P3 | P4 | P5 | |
CPU burst | 4 | 6 | 8 | 4 | 2 |
Priorità | 5 | 4 | 3 | 2 | 1 |
Disegnare il diagramma di Gantt e calcolare il tempo di completamento
di ogni processo
per ciascuna
delle seguenti politiche di scheduling della CPU:
7 6 10 8 3 1 4 5 4 3 6 7 8 9 10 11 8 9 2 4
7 6 10
8 3 1 4
5 4 3 6 7 8 9
10 11 8 9 2
4
7 6
10 8 3 1
4 5 4 3 6
7 8 9 10 11
8 9 2
7
6 10 8 3
1 1 5 4 3
6 7 8
9 10 11 8 9
7 6 10 8 3 3
1 5 4 3
6 7
8 9 10 11
8
7 6 10 8 8
8 1 5 4 3
6 7 7 7
10 11
Esercizio 4
Considerate un disco con capacita' 1024 MB e blocchi
da 8 KB.
- Quanti byte servono per gli indirizzi di blocco? (1,2 o 4?)
Sia N il numero di byte degli indirizzi di blocchi calcolato nella
domanda 1.
- Calcolare la dimensione (in byte) della
FAT.
- Quanti blocchi occupa la FAT
se
memorizzata su disco?
Si supponga che, durante la fase della fsck che verifica la consistenza dei blocchi vengano prodotti i seguenti vettori:
indice di blocco: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
vettore blocchi liberi: 0 1 1 1 1 1 0 1 0 1 0 0 0 1 0 5 3
vettore blocchi occupati: 0 2 0 0 0 1 1 1 0 1 0 0 0 3 0 1 1
spiegare quali sono le azioni (passo per passo) intraprese dalla fsck per ripristinare uno stato consistente del file system.
Soluzione1) (0,0)
--> (1,0)
vettore blocchi liberi: 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 5 3
vettore blocchi
occupati: 0
2 0 0 0 1
1
1 0
1 0
0
0 3
0 1
1
2) (C,K)
--> (0,K) se C,K>0
vettore blocchi
liberi:
1 0
1 1
1 0
0 0
1 0 1
1 1 0 1 0 0
vettore blocchi
occupati: 0
2 0 0 0 1
1
1 0
1 0
0
0 3
0 1
1
3) (0,K)
--> (0,1) + K-1 copie se K>0
vettore blocchi liberi: 0 0 0 0 1 0 0 0 1 0 1 1 1 0 1 0 0
vettore blocchi
occupati: 1
1 1 1 0 1
1
1 0
1 0
0
0 1
0 1
1