![]() |
Show 150 posts per page |
.dsy:it. (http://www.dsy.it/forum/)
- Sistemi operativi I (http://www.dsy.it/forum/forumdisplay.php?forumid=269)
-- esercizio scritto giugno 09 (http://www.dsy.it/forum/showthread.php?threadid=38725)
esercizio scritto giugno 09
Ciao a tutti! Qualcuno sa come va fatto questo esercizio (prova di giugno):
calcolare il numero di blocchi necessari per un file di 10 MB , con ogni blocco di dimensioni 4096 B e indirizzi di 64 bit.
risposte possibili: 2561, 2562, 2563, 2565, 2564
Allora ho provato a svolgere questo esercizio ma il risultato non torna (sicuro che i possibili risultati che hai messo sono corretti??)
L'ho pensato così:
- File: 10MB
- Blocco: 4KB -> che corrisponde a 4096B = 32768 bit
- Indirizzi:64 bit
Dato che un inode punta direttamente ad un massimo di 7 blocchi di memoria (7*4096B = 28KB) quei blocchi sono inutili perchè non riescono a contenere l'intero file.
A queso punto provo ad usarlo con 1 grado di indirettezza:
- l'inode punta ad un blocco composto da 32768bit/64bit = 512 linee (blocchi indirizzabili). 512 * 4096B = 2MB e quindi anche con un grado di indirettezza non riesco a salvare l'intero file.
Ora provo con una doppia indirettezza:
- abbiamo l'inode che punta ad un blocco di 512 indirizzi (stesso calcolo fatto prima); questi indirizzi puntano ad altri 512 blocchi che, a loro volta puntano a 512 blocchi di memoria fisica ma, di questi ultimi, ne utilizzo solo 5:
ogni blocco punta quindi a 2MB del file (512*4096), quindi 2MB * 5 = 10MB
quindi in totale uso: 512x5 + 5 blocchi + 1 (il blocco cui punta l'inode) = 2566 che, come puoi vedere, non corrisponde a nessuna delle possibili risposte.
Il procedimento mi sembra corretto...c'è da capire solo il numero di blocchi esalti da contare.... non so...se qualcuno ha qualche idea la esponga plz, l'esame è tra meno di una settimana e mi piacerebbe arrivarci un minimo preparato ![]()
esercizio blocchi
Riporto la risposta di un mio collega
Esercizio:
calcolare il numero di blocchi necessari per un file di 10 MB , con ogni blocco di dimensioni 4096 B e indirizzi di 64 bit dove ogni i-node aveva 7 locazioni per l'indirizzamento diretto
Comunque, procediamo:
Con indirizzi a 64bit, ogni indirizzo sono 8B, quindi in ogni blocco ci stanno 512 indirizzi
Il file è di 10MB = 10240KB = 10485760B, quindi per l'archiviazione dei soli dati sono necessari 10485760B / 4096B/blocco = 2560 blocchi
1 blocco è usato dall'i-node, che punta a 7 blocchi, ne restano da puntare 2553
1 blocco è usato dall'indirizzamento ad una indirezione, che punta altri 512 blocchi, ne restano 2041
1 blocco è usato dal primo stadio dell'indirizzamento a doppia indirezione, cui fanno capo
4 blocchi per puntare altri 2048 blocchi, di cui 7 indirizzi resteranno liberi
Facendo i conti, 2560 + 1 + 1 + 1 + 4 = 2567, non è tra le risposte, mi sa che avevano fatto una cappella... infatti, se immaginiamo indirizzi a 32 bit, ogni indirizzo sono 4B, quindi in ogni blocco ci stanno 1024 indirizzi.
Sempre 2560 blocchi per i dati, restano i metadati
1 blocco è usato dall'i-node, che punta a 7 blocchi, ne restano da puntare 2553
1 blocco è usato dall'indirizzamento ad una indirezione, che punta altri 1024 blocchi, ne restano 1529
1 blocco è usato dal primo stadio dell'indirizzamento a doppia indirezione, cui fanno capo
2 blocchi per puntare altri 2048 blocchi, di cui 505 indirizzi resteranno liberi
Totale, 2560 + 1 + 1 + 1 + 2 = 2565
| All times are GMT. The time now is 20:46. | Show all 3 posts from this thread on one page |
Powered by: vBulletin Version 2.3.1
Copyright © Jelsoft Enterprises Limited 2000 - 2002.