[Sistemi Operativi] Esercizi allocazione

Messaggioda MatematiNO » 07/08/2017, 16:50

Salve, non riesco a capire come si svolgono questi esercizi. Alcuni hanno le soluzioni ma comunque non mi sono chiari alcuni passaggi.

Un hard disk ha la capienza di $2^38 byte$, ed è formattato in blocchi da $1024 byte$.

A) Quanti accessi al disco sono necessari per leggere l’ultimo blocco di un file A della dimensione di $4096
byte$, assumendo che sia già in RAM il numero del primo blocco del file stesso e che venga adottata una
allocazione concatenata dello spazio su disco? (motivate la vostra risposta)

La risposta è 5. Ogni blocco infatti memorizza $1020 byte$ di dati più $4 byte$ di puntatore al blocco successivo (infatti,
$2^38/2^10 = 2^28)$, per cui sono necessari 5 blocchi per memorizzare l’intero file.

Non riesco a capire perché sono 5, da cosa lo deduco? Perché mi specifica che l'hard disk è suddiviso in $2^28$ blocchi?

B) Se si adottasse una allocazione indicizzata dello spazio su disco, quanti accessi al disco sarebbero
necessari per leggere l’ultimo byte di un file B grande 400k byte (specificate quali assunzioni fate nel
rispondere a questa domanda e motivate la vostra risposta)?

Su questo esercizio non so da dove cominciare :oops:

Per caso qualcuno ha dispense ben fatte sulla parte teorica di questi argomenti? Gli appunti del mio prof non sono il massimo! Non hanno esempi, solo tante parole!

Grazie in anticipo.
You can't cross the sea merely by standing and staring at the water.
Avatar utente
MatematiNO
New Member
New Member
 
Messaggio: 25 di 70
Iscritto il: 04/12/2016, 23:42

Re: [Sistemi Operativi] Esercizi allocazione

Messaggioda insideworld » 09/08/2017, 13:37

4096/1024 fa esattamente 4,in questo caso dovresti fare 4 accessi, però devi considerare che in ogni blocco 4 byte sono utilizzati per il puntatore al blocco successivo.

i 4 Byte si ottengono calcolando la dimensione dell'HDD ($2^38$) diviso la dimensione di ogni blocco($2^10$), per la proprietà degli esponenziali sai già che fa $2^28$= numero di blocchi da indirizzare.
$2^28$ blocchi si possono indirizzare usando 28 cifre binarie, in 1 Byte ci sono 8 cifre, in 2 byte ce ne sono 16, in 3 byte sono 24 e in 4 byte possono essere rappresentate 32 cifre. quindi per indirizzare tutti i blocchi devi usare almeno 4 byte.

quindi devi sottrarre alla dimensione di ciascun blocco i 4 byte del puntatore. quindi ogni blocco contiene 1020 byte.
quindi 4096/1020 fa 4,01, ciò significa che non si può memorizzare tutto il file in 4 blocchi, ma bisogna usarne 5, anche se l'ultimo è quasi del tutto vuoto, e il sistema deve effettuare 5 accessi perchè deve accedere a 5 blocchi diversi, e conosce il blocco successivo a cui deve accedere, solo quando accedi al blocco precedente.


Il secondo lo devi fare in maniera simile considerando le differenze dell'allocazione indicizzata
Avatar utente
insideworld
Junior Member
Junior Member
 
Messaggio: 142 di 306
Iscritto il: 13/01/2017, 15:24


Torna a Informatica

Chi c’è in linea

Visitano il forum: Nessuno e 1 ospite