Esercizio - Tempi di accesso al disco e capacità (slide di esercizi, eserciziario, esercizi 88, 89 e 94)
In questa pagina 6
Testo.
- Slide di esercizi, "Tempi di accesso al disco". Per trasferire 64 KB di dati da un disco rigido servono circa 9,728571 ms (senza contare l'attesa che il dispositivo o il suo canale sia libero). Il disco ha 524 288 tracce, settori da 512 B, tempo medio di posizionamento della testina 0,8 ms, velocità di rotazione 4200 rpm. Calcolare il numero totale di byte che il disco può memorizzare.
- Esercizio 88. Disco a 7200 RPM, seek medio 3 ms, transfer rate 40 MB/s. Tempo medio per leggere 4 KB da una traccia ; poi tempo medio per soddisfare una richiesta di 4 KB sempre relativa alla stessa traccia (la testina non si è ancora mossa). Si trascurano i tempi del kernel.
- Esercizio 89. File system UNIX (UFS o EXT2) con blocchi da 4 KB, disco con ms a 7200 RPM; è stato aperto un file i cui blocchi sono sulla stessa traccia del rispettivo inode. (a) Quanto si impiega per accedere direttamente alla posizione 10 000 del file? (b) E alla posizione 100 000?
- Esercizio 94. Un disco ha un tempo medio di servizio di 15 ms senza cache; con la cache attiva e hit ratio dell'80%, il tempo di servizio è di 6 ms. Calcolare il valore che deve avere l'hit ratio perché il tempo di servizio diventi 4,2 ms, a parità delle altre condizioni. Il tempo di servizio è la somma del tempo di servizio del disco (per i casi in cui non si usa la cache) e di quello della cache (quando il dato si trova nella cache).
Le formule
Il tempo di trasferimento è . Se la richiesta è sulla stessa traccia della precedente, il seek è nullo.
Slide: capacità del disco
Il tempo totale di 64 KB è ms, con:
- ms;
- ms (mezzo giro a 4200 rpm: un giro dura ms);
- quindi ms: il tempo per trasferire 64 KB.
Un giro completo dura ms e in un giro passano sotto la testina tutti i dati di una traccia. In passano 64 KB, quindi la traccia contiene
Il disco ha 524 288 tracce (cioè ):
(precisamente GiB, perché si usano le potenze di 2). Si noti che 512 KB per traccia sono 1024 settori da 512 B.
Esercizio 88
- Latenza media: ms (mezzo giro; un giro è ms).
- Trasferimento di 4 KB a 40 MB/s: s s s ms.
Prima richiesta (traccia qualunque): (la soluzione del corso scrive 7,268 ms perché usa 4,17 ms).
Seconda richiesta, stessa traccia: la testina è già lì, non c'è seek: (4,268 nel corso).
Esercizio 89
Blocchi da 4 KB: nella soluzione del corso si approssimano 4000 byte per blocco (4096 se si è esatti: cambia solo il blocco in cui cade la posizione, non il risultato qui). Con ms (mezza rotazione a 7200 RPM).
(a) Posizione 10 000. : cade nel terzo blocco del file (indice 2), un blocco diretto dell'inode. L'inode è già in memoria (file aperto): serve 1 accesso al disco, con seek più latenza:
(b) Posizione 100 000. : indice 24, cioè oltre i 12 puntatori diretti: cade in un blocco raggiungibile tramite il blocco indiretto singolo. Servono 2 accessi al disco: il blocco indiretto (per trovare l'indirizzo) e poi il blocco dati. Poiché i blocchi sono tutti sulla stessa traccia, il seek si paga una volta sola, la latenza due volte:
(Il tempo di trasferimento di 4 KB è trascurabile rispetto a seek e latenza.)
Esercizio 94
Sia il tempo di servizio, ms quello del disco, quello della cache, l'hit ratio:
Passo 1: il tempo di servizio della cache. Con e : .
Passo 2: l'hit ratio per ms. .
L'hit ratio deve salire dall'80% al 96%.
Errori tipici
- Usare l'intera durata di un giro come latenza media (è mezzo giro, ).
- Pagare il seek anche per due richieste sulla stessa traccia: nel secondo caso dell'88 non c'è.
- Nell'89(b), pagare il seek due volte: blocco indiretto e blocco dati sono sulla stessa traccia.
- Scambiare i ruoli di e nella formula del tempo di servizio.
- Convertire male KB/s e MB/s nel tempo di trasferimento.
Versione ripasso
Formule. s (mezzo giro), , ; stessa traccia: seek nullo.
Capacità (slide). 4200 rpm: ms, ms (64 KB); giro ms; traccia KB; disco GB.
88. ms, trasferimento s ms. Prima richiesta ms; seconda (stessa traccia) ms.
89. (a) posizione 10 000: blocco diretto, 1 accesso: ms. (b) posizione 100 000: blocco indiretto singolo, 2 accessi, seek una sola volta: ms.
94. ; ms; .
Passaggi. Capacità: ms; ms; traccia KB; KB GB. Es. 88: ms di latenza, ms di trasferimento: ms (con seek) e ms (stessa traccia). Es. 89: (a) 1 accesso, ms; (b) 2 accessi (indiretto), seek una sola volta, ms. Es. 94: ms, .
Errori tipici: latenza di un giro intero; seek pagato per richieste sulla stessa traccia o due volte nel caso indiretto; ruoli di e scambiati; unità del trasferimento.