Esercizio
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?
- Qual'e' il
contenuto della FAT relativamente ad un file "pippo"
i cui dati sono memorizzati (in sequenza) nei blocchi 3, 6, 0 e
10?
Soluzione
Ricordiamo che 1KB=1024 byte = 210byte ; 1
MB=220 byte.
Esercizio
Dato un file
system FAT con blocchi di 4KB (4096 byte) e il seguente frammento di FAT, dire
in quali blocchi fisici sono collocati i seguenti byte:
frammento di FAT
:
blocco fisico
contenuto della FAT
…..
30
31
31
37
32
36
33
32
34
35
35
30
36
40
37
41
…..
1) il byte 6758
sta nel blocco logico 1, quindi il blocco fisico è 32
2) il byte 8192
sta nel blocco logico 2, quindi il blocco fisico è 30
3) il byte 4094
sta nel blocco logico 0, quindi il blocco fisico è 34
Esercizio
Fornire il
contenuto dell'i-node e del blocco relativo alla directory `tool' di un file system Unix V7 nel seguente
caso :
(si assume che
file e directory nella gerarchia indicata occupino un solo blocco,accanto ad
ogni file o directory è indicato il numero di i-node (I=…)
e il numero del blocco (b=…))
Contenuto dell’i-node numero 7
(attributi vari)
100 (indirizzo
primo blocco dati)
Contenuto del
blocco 100
Numero di i-node Nome file/directory
7
. (punto)
1
. . (punto punto)
83
src
4
c
156
d
99
a
Dato un file system NTFS con blocchi di dimensione 4KB, e il
seguente MTF record del file Pippo, individuare
i blocchi fisici nei quali sono contenuti i seguenti byte del file A:
1. 5672
2. 47657
3. 61000
1- il
blocco logico è 1, quindi si tratta del secondo blocco del primo run, per cui
l’indirizzo del blocco fisico è 38
2- il
blocco logico è 11, quindi si tratta del quarto blocco del terzo run, per cui
l’indirizzo del blocco fisico è 90
3- il
blocco logico è il 14, quindi si tratta del primo blocco del quarto run, per
cui l’indirizzo del blocco fisico è 51
Esercizio
Calcolare la dim.
(in byte) della FAT per un disco da 512MB con blocchi da 16 KB e indirizzi dei
blocchi a 16 bit.
Quanti blocchi
occuperebbe la FAT se memorizzata su disco?
Quanti accessi
alla FAT occorrono per recuperare l’indirizzo fisico del blocco nel quale si
trova il byte 125384 di un certo file del file system in questione?
Nota: 16K=24*210=214
512M=29 * 220=229
Soluzione
La dimensione del
disco è di’ 229 byte e quindi di 229/214= 215
blocchi di 214 byte.
Il campo di
indirizzamento della FAT (16 bit=2 byte) consente di indirizzare tutti i
blocchi.
La dimensione
della FAT è di 215*2 = 216 byte. Se risiede su
disco occupa 216/214= 4 blocchi.
Supponendo che i
blocchi dell’archivio siano numerati a partire da 0, il byte 125384 si trova
nel blocco 7.
Quindi occorre
accedere 7 volte alla FAT per poter recuperare l’indirizzo fisico associato a
tale byte.
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 17
vettore blocchi
liberi: 1 1 1
1 0 0 0
1 1 1 0
0 0 0 0
2 2 1
vettore blocchi
occupati: 1
2 1 1 0
0 1 1 1
0 0 0 0
0 0 1 1
2
spiegare quali sono le azioni intraprese dalla fsck per
ripristinare uno stato consistente del file system.
Soluzione:
La fsck
intraprende un insieme di azioni volte ad avere ogni blocco presente con un
solo 1 in una delle due tabelle
blocchi 0,1,2,3,7,8,15,16,17 : sono presenti sia nella lista dei blocchi
liberi che nell’i-node di qualche file. La fsck gli elimina dalla lista libera
e la ricostruisce, risultato
indice di
blocco:
0
1 2 3 4
5 6 7 8
9 10 11 12 13 14 15 16 17
vettore blocchi
liberi: 0
0 0 0 0
0 0 0 0
1 0 0 0
0 0 0 0
0
vettore blocchi
occupati: 1
2 1 1 0
0 1 1 1
0 0 0 0
0 0 1 1
2
blocchi 4,5,10,11,12,13,14 : non sono presenti in nessuna delle due
tabelle, la fsck assume siano liberi e li inserisce nella lista dei blocchi
liberi, risultato
indice di
blocco:
0
1 2 3 4
5 6 7 8
9 10 11 12 13 14 15 16 17
vettore blocchi
liberi: 0
0 0 0 1
1 0 0 0
1 1 1 1
1 1 0 0
0
vettore blocchi
occupati: 1
2 1 1 0
0 1 1 1
0 0 0 0
0 0 1 1
2
blocchi : 1,17 : sono presenti come blocchi dati di due file distinti, la
fsck crea due copie diverse per ognuno (usando due blocchi liberi, ad esempio
il 4 ed il 5)
e corregge i corrispondenti i-node. Inoltre avverte l’utente di possibili
inconsistenze sui dati stampando un messaggio di errore. Risultato finale :
indice di
blocco:
0 1
2 3 4 5
6 7 8 9
10 11 12 13 14 15 16 17
vettore blocchi
liberi:
0
0 0 0 0
0 0 0 0
1 1 1 1
1 1 0 0
0
vettore blocchi
occupati: 1
1 1 1 1
1 1 1 1
0 0 0 0
0 0 1 1
1
Esercizio
Dato un file system FAT
con blocchi di 3KB e il seguente frammento di FAT,
dire in quali blocchi fisici sono collocati i seguenti byte:
Frammento FAT :
Entry |
Contenuto |
0 |
7 |
1 |
2 |
2 |
11 |
3 |
5 |
4 |
3 |
5 |
20 |
6 |
13 |
7 |
1 |
8 |
0 |
Soluzione
Esercizio
Dato un file system FAT con blocchi di 2KB e il seguente frammento di
FAT,
dire in quali blocchi fisici sono collocati i seguenti byte:
Frammento FAT :
Entry |
Contenuto |
0 |
10 |
1 |
2 |
2 |
0 |
3 |
6 |
4 |
1 |
5 |
8 |
6 |
7 |
7 |
11 |
8 |
12 |
Soluzione
Esercizio
Calcolare la dimensione minima di una FAT necessaria per
indirizzare un disco di capacità 5096 MB con blocchi da 4KB.
Considerate ora i seguenti due file:
A di dimensione
13000 byte
B di
dimensione 7500 byte
Mostrate un
esempio di come vengono memorizzati gli indirizzi dei blocchi
dei file A e B in una FAT per un disco con le caratteristiche viste sopra
(scegliete indirizzi di blocco a piacere per i due file).
Soluzione:
N. blocchi= 5096
MB/4KB=1304576 indirizzabili con 3 byte
Fat= 1304576 * 3= 3913728 byte
A occupa 4 blocchi (ad es. 0 1 2 3), B 2 blocchi (ad es. 4 5)
FAT: 0(1) 1(2)
2(3) 3(*) 4(5) 5(*) ....
Esercizio
In una organizzazione dell'allocazione dei file simile a quella adottata in
UNIX vi sono 14 puntatori nel descrittore di file
(mantenuto in memoria durante l'accesso al file) di cui
Se la dimensione
di un blocco è 1Kb, e un puntatore occupa 4 bytes:
Soluzione
Un blocco puo'
contenere (dim. blocco/dim.puntatore=) 1024/4=256 puntatori a blocchi.
Esercizio
In una organizzazione dell'allocazione dei file simile a quella adottata in
UNIX vi sono 13 puntatori nel
descrittore di file (mantenuto in memoria durante l'accesso al file) di
cui
Se la dimensione
di un blocco è 1KB, e un puntatore occupa 4 bytes:
Soluzione
Un blocco puo' contenere
(dim. blocco/dim.puntatore=) 1024/4=256 puntatori a blocchi.
1000K> 522KB. Quindi il
1000000-esimo byte di un file si trova in un blocco accessibile tramite
puntatore doppiamente indiretto:
occorrono quindi 2 accessi aggiuntivi (uno alla tabella esterna e uno a quella
interna).