Homepage  Il progetto dsy.it è l'unofficial support site dei corsi di laurea del Dipartimento di Scienze dell'Informazione e del Dipartimento di Informatica e Comunicazione della Statale di Milano. E' un servizio degli studenti per gli studenti, curato in modo no-profit da un gruppo di essi. I nostri servizi comprendono aree di discussione per ogni Corso di Laurea, un'area download per lo scambio file, una raccolta di link e un motore di ricerca, il supporto agli studenti lavoratori, il forum hosting per Professori e studenti, i blog, e molto altro...
In questa sezione è indicizzato in textonly il contenuto del nostro forum


.dsy:it. .dsy:it. Archive > Didattica > Corsi N - Z > Sistemi operativi I
 
esercizio scritto giugno 09
Clicca QUI per vedere il messaggio nel forum
zigio
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

alby858585
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 :D

zigio
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

Powered by: vbHome (lite) v4.1 and vBulletin v2.3.1 - Copyright ©2000 - 2002, Jelsoft Enterprises Limited
Mantained by dsy crew (email) | Collabora con noi | Segnalaci un bug | Archive | Regolamento |Licenze | Thanks | Syndacate