Esercizio - Allocazione dei file con metodo contiguo, concatenato, indicizzato e FAT (eserciziario, esercizi 42, 53, 65, 71, 104, 108, 113 e 119)
In questa pagina 9
Testo (eserciziario del corso di Sistemi Operativi, Ing. Informatica UniPD).
- 42. File system FAT su un disco con 20 blocchi da 4 KB (indirizzi da 0 a 19). Il file occupa nell'ordine i blocchi 5, 19, 4, 11, 7; il file i blocchi 18, 12, 13, 1, 6, 15, 10. (1) Contenuto della FAT, con per i blocchi liberi e per l'ultimo blocco di un file. (2) Dimensione massima di un nuovo file in byte.
- 53. FAT32 su un disco da 1 GB con cluster da 2 KB, pieno al 10%; metà dello spazio occupato è di file di dimensione inferiore a 2 KB. Stimare il numero di file di dimensione inferiore a 2 KB.
- 65. Disco da byte con blocchi da 1024 byte. Quanti accessi al disco servono per leggere l'ultimo blocco di un file A da byte, se il numero del primo blocco è già in RAM e l'allocazione è concatenata? Ogni puntatore occupa 4 byte.
- 71. File di 70 record, con allocazione contigua, concatenata e a tabella indice (un record per blocco). Le informazioni del file sono già in memoria centrale, e la tabella indice è contenuta in un unico blocco. Quanti accessi al disco (letture e scritture) servono per cancellare (1) il primo record, (2) il 40-esimo, (3) l'ultimo?
- 104. FAT-: è il numero di bit per l'indice di blocco. Variante FAT-15 rispetto a FAT-16, dove un bit dell'indice non è utilizzabile e tutto il resto è uguale; come in FAT-16 i blocchi sono al massimo da 32 KB. Dimensione massima di file e di partizione.
- 108. Chiavetta USB da 2 GB con FAT32 e blocchi da 4 KB, 100 file da 1000 blocchi ciascuno. Lettura di un blocco: 100 s; accesso a un blocco non contiguo: 5 ms (nullo se contiguo); FAT già in memoria. Tempo per leggere tutti i file nel caso di (a) minima e (b) massima frammentazione.
- 113. File con record di 512 byte su disco con blocchi da 512 byte. Le informazioni sul file (i-node) sono già in memoria in tutti e tre i casi. L'ultimo record letto è il 3, il prossimo da leggere è l'8. Quanti accessi al disco servono con allocazione contigua, concatenata e indicizzata?
- 119. Dimensione minima in bit di ogni elemento di una FAT che gestisce al massimo una partizione da 200 GB con blocchi da 4 KB.
Esercizio 42 (FAT)
La FAT. Ogni riga della tabella contiene il blocco che segue il blocco nel suo file. Seguendo le catene (con la correzione del corso: è 5, 9, 19, 4, 11, 7, perché la soluzione del corso include anche il blocco 9; nel testo l'elenco salta il 9):
- : (e 7 è l'ultimo: );
- : (10 è l'ultimo: ).
| blocco | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |
|---|---|---|---|---|---|---|---|---|---|---|
| FAT | 6 | 11 | 9 | 15 | 19 |
| blocco | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 |
|---|---|---|---|---|---|---|---|---|---|---|
| FAT | 7 | 13 | 1 | 10 | 12 | 4 |
I blocchi liberi () sono 0, 2, 3, 8, 14, 16, 17: 7 blocchi.
Dimensione massima di un nuovo file. Un file può usare tutti i blocchi liberi: byte.
Se si seguisse il testo alla lettera (senza il blocco 9 in , con ) anche il blocco 9 risulterebbe libero e i blocchi liberi sarebbero 8, cioè 32 KB. La soluzione del corso (28 KB) corrisponde alla lista con il 9.
Esercizio 53
Il disco ha 1 GB e il 10% è occupato: circa 100 MB. Metà (50 MB) è occupata da file piccoli. Un file, anche se più piccolo di 2 KB, occupa comunque un intero cluster da 2 KB. Quindi il numero di file piccoli è
(Con 1 GB MB; con le potenze di 2 il conto dà circa 26 200.) Sugli altri file non si può dedurre nulla: non si sa quanti sono né quanto sono grandi.
Esercizio 65
Ogni blocco contiene 1020 byte di dati e 4 di puntatore al blocco successivo. Il file è di byte:
(Se si usasse un blocco intero per i dati, blocchi; ma 4 byte per blocco sono puntatori, quindi 33.) Con allocazione concatenata, per arrivare all'ultimo blocco si devono leggere tutti i blocchi in sequenza: servono i puntatori dei primi 32 blocchi più il contenuto del 33°. Il numero di accessi è 33. (Il numero del primo blocco è già in RAM, quindi non si legge nessun'altra struttura.)
Esercizio 71
| operazione | contigua | concatenata | indicizzata |
|---|---|---|---|
| cancellare il primo record | 0 accessi: basta cambiare l'inizio e la lunghezza nella directory (in memoria) | 0 accessi: si cambia il puntatore al primo blocco nella directory | 1 lettura + 1 scrittura: si modifica la tabella indice |
| cancellare l'ultimo | 0: basta ridurre la lunghezza | 68 letture + 1 scrittura (vedi sotto) | 1 lettura + 1 scrittura |
| cancellare il 40-esimo | 30 letture + 30 scritture: si copiano il 41° sul 40°, il 42° sul 41°, …, il 70° sul 69° | 40 letture + 1 scrittura | 1 lettura + 1 scrittura |
Spiegazioni:
- Contigua, 40-esimo: i record dal 41° al 70° (30 record) vanno spostati di una posizione: si legge e si riscrive ciascuno: 30 + 30.
- Concatenata, ultimo: per modificare il puntatore del penultimo blocco bisogna arrivare fino a lui seguendo la catena; la soluzione del corso conta 68 letture e 1 scrittura. (Se si conta anche la lettura del penultimo blocco stesso, cioè la lettura-modifica-scrittura di un blocco, sono 69 letture e 1 scrittura.)
- Concatenata, 40-esimo: servono 40 letture per ottenere gli indirizzi del 39° e del 41° blocco, e 1 scrittura nel blocco 39 per fargli puntare il 41°.
- Indicizzata: si modifica solo il blocco indice: 1 lettura (per accedere a tutto l'indice) e 1 scrittura (per riscriverlo), qualunque sia il record: i blocchi dati non si spostano e non si toccano.
Esercizio 104
FAT-15 significa che un indice di blocco ha 15 bit: blocchi. Come in FAT-16, i blocchi sono al massimo da 32 KB byte. La dimensione massima di partizione è
cioè la metà di quella di FAT-16 ( GB). La dimensione massima di un file è la stessa, 1 GB (un file può occupare l'intera partizione, trascurando la FAT).
Esercizio 108
La chiavetta ha blocchi. I file occupano blocchi.
(a) Minima frammentazione: tutti i blocchi sono contigui e uno dopo l'altro. Si leggono blocchi a 100 s: s (la soluzione ammette anche 10 s più i 5 ms iniziali per il primo blocco). Se i file fossero separati fra loro (ogni file contiguo ma con un salto fra un file e l'altro): ogni file costa ms, più 5 ms di salto: s.
(b) Massima frammentazione: poiché i blocchi liberi sono , ogni blocco di dato può essere separato dal successivo da almeno un blocco libero. Ogni lettura costa quindi un salto più la lettura:
Il caso peggiore è 51 volte più lento del migliore (510 s contro 10 s): ogni accesso non contiguo costa 50 volte più del trasferimento del blocco.
Esercizio 113
Il record è di 512 byte e il blocco è di 512 byte: un record per blocco.
- Contigua: il record 8 è all'indirizzo base blocchi: si calcola subito, 1 accesso.
- Concatenata: il record 3 è appena stato letto (e con lui il puntatore al blocco 4): per arrivare all'8 si leggono i blocchi 4, 5, 6, 7, 8: 5 accessi.
- Indicizzata: il blocco indice è in memoria (è un'ipotesi): si legge direttamente il blocco 8: 1 accesso.
Esercizio 119
Una partizione da 200 GB con blocchi da 4 KB ha blocchi (circa 50 milioni). Si ha , quindi ogni indice di blocco richiede almeno 26 bit.
Errori tipici
- Dimenticare di togliere dai blocchi della concatenata lo spazio del puntatore (1020 e non 1024 byte di dati).
- Nella concatenata, contare solo il blocco da raggiungere e non tutti i blocchi precedenti da leggere.
- Nell'esercizio 42, non contare il blocco 9 o i blocchi liberi (indicati con ) e quelli di fine file ().
- Dimenticare che un file piccolo occupa comunque un cluster intero (esercizio 53).
- Nel caso di massima frammentazione dell'esercizio 108, contare i 5 ms una volta sola invece che a ogni blocco.
Versione ripasso
42 (FAT). : 5, 9, 19, 4, 11, 7 (il corso include il 9); : 18, 12, 13, 1, 6, 15, 10. FAT: , , , , , , , , , , , , , , , , , , , . Liberi: 0, 2, 3, 8, 14, 16, 17 blocchi KB. (Senza il 9 si avrebbero 8 blocchi liberi, 32 KB.)
53. GB MB, metà piccoli MB; un file piccolo occupa un cluster da 2 KB: .
65. Dati per blocco ; blocchi; si leggono tutti in catena: 33 accessi.
71. Contigua: primo 0, ultimo 0, 40-esimo 30 letture + 30 scritture. Concatenata: primo 0, ultimo 68 letture + 1 scrittura, 40-esimo 40 letture + 1 scrittura. Indicizzata: 1 lettura + 1 scrittura in tutti i casi.
104. FAT-15: blocchi da byte GB (partizione e file, metà di FAT-16).
108. (a) s (10,5 s se i file sono separati); (b) blocchi, blocchi totali: ms s min 30 s.
113. Contigua 1; concatenata 5 (blocchi 4-8); indicizzata 1.
119. blocchi : 26 bit.
Passaggi. Ex. 42: seguire le catene () e (); gli ultimi blocchi valgono , i liberi (sono 0, 2, 3, 8, 14, 16, 17); massimo KB KB. Ex. 65: dati per blocco ; blocchi ; 33 letture in catena. Ex. 71 (70 record): contigua primo 0 e ultimo 0 accessi, 40-esimo 30+30 (si spostano i record 41-70); concatenata primo 0, ultimo 68 letture 1 scrittura (69 con lettura-modifica-scrittura), 40-esimo 40 letture 1 scrittura; indicizzata 1 lettura 1 scrittura. Ex. 104: B GB. Ex. 108: blocchi totali, occupati; minima s, massima ms s. Ex. 113: contigua 1, concatenata 5, indicizzata 1. Ex. 119: : 26 bit. Ex. 53: .
Errori tipici: 1024 invece di 1020 byte di dati; contare solo l'ultimo blocco della catena; dimenticare il 9 o i valori speciali nella FAT; cluster intero per i file piccoli; 5 ms contati una volta sola.