Sei sulla pagina 1di 5

GESTIONE DELLT/O

361

FCFS, la pi semplice da gestire, pur non ottimizzando i tempi medi di risposta l'unica
che garantisce in tutti i casi l'avanzamento delle richieste, o detto in altri termini
l'unica pojitica che garantisce la non starvation delle richieste.
~~5infatti pervengono continuamente richieste che soddisfano meglio i requisiti di
scheduling, ad esempio sono posizionati sulla stessa traccia di quella corrente, evidente
che le altre richieste vengono sempre accantonate e rimangono in attesa indefinita:
come se fossero a priorit inferiore rispetto a tutte le nuove arrivate.
Per ovviare a questo inconveniente si aggiunge un campo alle richieste ( i l loro
tempo di arrivo) ed i l gestore della risorsa, saltuariamente, ne controlla i l valore, e sposta
quelle pi remote in cima alla coda d'attesa, indipendentemente dalla politica di
gestione.
D i solito tutte queste valutazioni vengono fatte dal gestore della risorsa disco
rigido mentre i l controllore, normalmente, integra al suo interno una memoria cache di
dimensioni opportune (ad esempio in un disco da 60 GB pu valere da 2 a 16 M B )
organizzata a frame, dove ogni frame composto da uno o pi blocchi di lettura scritura
. Tuster). In tal modo la lettura/scrittura viene sempre effettuata dal driver direttamente
sulla "cache del disco e solo nel caso di miss la cache viene aggiornata con i dati del
disco. Viene affrontato in maniera analoga anche i l problema della scrittura per la cache
ella memoria principale, scegliendo tra le tecniche di write-back o write-throught ed
^lizzando i cicli di (hit) lettura della cache per accedere direttamente al disco.
RAID

Un'altra particolare funzione fornita dal gestore della risorsa disco rigido, in stretto
. legamento con i l relativo controllore, la cosiddetta organizzazione R A I D , da
Redundant Array of Independent Disks. In realt non si tratta di una sola tecnica, bensi
di un insieme di organizzazioni distinte, via via pi complesse, che puntano a migliorare
essenzialmente due aspetti della gestione della memoria di massa:

affidabilit, intesa come garanzia di continuit di funzionamento, anche a


fronte di improvvisi guasti o malfunzionamenti dei dispositivi fisici. Un
disco rigido difficilmente perde un dato: vorrebbe dire che una
piccolissima zona della sua superficie si smagnetizzata, cosa davvero
improbabile. molto pi facile che un urto meccanico determini i l
disallineamento del gruppo testine, oppure che uno spegnimento o sbalzo
di alimentazione durante una fase di scrittura determini lo strisciamento
fisico o la sovrascrittura al v o l o d i piste adiacenti. In tutti i casi i l danno
comporta la non leggibilit del file che conteneva i l blocco dati
danneggiato e, solo in casi decisamente sfortunati, l'inutilizzabilit
dell'intero sistema. Per evitare questi problemi utile introdurre una quota
di ridondanza sui dati. In forma minima viene fatto di norma su tutti i
dischi, introducendo un codice di rivelazione dell'errore in ogni settore, ma
l'organizzazione R A I D propone una ridondanza pi ampia, applicata ai
singoli blocchi o all'intero disco. Nel primo caso si parla di tecniche di
parit, che oltre alla rivelazione di errori nei blocchi che controllano,
consentono anche una certa correzione degli stessi errori, purch

362

CAPITOLO NONO

evidentemente in numero e in posizione prestabiliti. Nel secondo caso


parla di ridondanza completa, cio la duplicazione dei dati di un suppor
su di un altro totalmente distinto, detta mirroring. Da notare che que
tecnica permette, in sola lettura, un accesso parallelo ai dati, permetter
di dimezzare i l tempo di lettura totale (leggendo ad esempio met blc
dal disco originale e contemporaneamente l'altra met dal disco copia)

prestazioni, intese come tempi di accesso ad un blocco di dati:


parallelismo ottenibile ricorrendo a pi supporti fisici distinti permette
aumentare i l throughput, cio i l numero di informazioni accessit
nell'unit di tempo. Una tecnica adottata dal R A I D quella deli
suddivisione dei dati, o striping, in cui le informazioni contenute in
blocco di dati vengono suddivise in pi gruppi ed ogni gruppo v i
memorizzato su dischi diversi: a fronte di un'operazione sul blocco,
esempio una lettura, la stessa si scompone in tante letture di dur
inferiore contemporanee su supporti diversi. La suddivisione del blocc
viene decisa in base al numero di dischi rigidi utilizzabili, e p u ar.
arrivare ad esempio a scomporre e spalmare ogni Byte in 8 supporti, uno
per ogni bit. In tal modo avremo i l disco rigido che conterr tutti i bit men
significativi delle varie informazioni, i l secondo tutti i secondi, e cos v i i
Le prestazioni in tal caso aumentano ovviamente di 8 volte.

Le tecniche R A I D propongono varie possibili organizzazioni che ricorrono i


diversi gradi di ridondanza e/o di parallelismo e classificano le varie soluzioni prop
in livelli, come indicato sinteticamente in figura 9.9:
R A I D di livello 0
utilizza solo lo striping al fine di migliorare unicamente le prestazi co:
globali: di norma impiega dischi di uguali dimensioni e prestazioni, no
migliora l'affidabilit ed i l guasto di un solo supporto fisico penalizza
l'intero sistema. A d esempio, con 4 dischi da 60 GB si ottiene un sistema di
memorizzazione globale da 240 GB, 4 volte pi veloce dei singoli disch
R A I D di livello 1
utilizza solo i l mirroring, al fine di migliorare unicamente l'affidabilit c
sistema; di norma impiega dischi dT uguali dimensioni e prestazio;:
migliora le prestazioni solo in lettura ed i l sistema sopporta tranquillameng]
il guasto integrale di un supporto fisico. A d esempio, con 4 dischi da **>
GB si ottiene un sistema di memorizzazione globale da 120 GB. :
prestazioni uguali a quelle dei singoli dischi in scrittura e raddoppiate a
lettura ed in grado di sopportare la rottura di entrambi i dischi masti
slave;
R A I D di livello 1+0
utilizza sia striping che mirroring, al fine di migliorare sia l'affidabilit d f l
le prestazioni globali del sistema; di norma impiega dischi di uguafil
dimensioni e prestazioni, migliora le prestazioni solo in lettura ed il si> . .

GESTIONE DELLT/O

363

sopporta tranquillamente il guasto integrale di un supporto fisico. A d


esempio, con 4 dischi da 60 GB si ottiene un sistema di memorizzazione
globale da 120GB; con prestazioni in scrittura doppie rispetto a quelle dei
singoli dischi, quadruple in lettura ed in grado di sopportare la rottura di
entrambi i dischi master o slave;
R A I D dilivello 2
utilizza solo tecniche di parit, introducendo come algoritmo di correzione
i cosiddetti E C C , da Error-Correcting
Codes, al fine di migliorare
unicamente Vaffidabilit
del sistema; non migliora le prestazioni del
sistema ed i l guasto di parte di un supporto fisico viene rilevato e. sono
certe condizioni, anche corretto. A d esempio, con 4 dischi da 60 GB si pu
ottenere (ma personalizzabile in base al grado di affidabilit desiderato)
un sistema di memorizzazione globale da 180 GB, della stessa velocit dei
singoli dischi, ma in grado di gestire correttamente un numero contenuto di
errori;
R A I D di livello 3
utilizza tecniche di parit, introducendo come algoritmo di correzione il
cosiddetto bit di parit incrociata, applicato ai singoli settori, al fine di
migliorare unicamente l'affidabilit del sistemafnon migliora le prestazioni
del sistema ed i l guasto in un settore viene rilevato e anche corretto. In
pratica si utilizza i l tradizionale codice di rilevazione d'errore per
riconoscere se e quale i l settore danneggiato, poi si calcola per ogni bit di
eguale posizione nei singoli settori i l relativo bit di parit e lo si memorizza
in un supporto fisico aggiuntivo. Sapendo qual' i l settore danneggiato
(supposto l'unico con bit sbagliati!), i l bit di parit del settore di parit
calcolata permette di correggere i l settore in esame. I l vantaggio di questa
tecnica, rispetto al livello 2, che si utilizza un solo disco aggiuntivo e
sotto certe condizioni la correzione garantita egualmente. I dischi dati non
coinvolti nella ridondanza adottano la tecnica dello striping, consentendo
un miglioramento delle prestazioni. A d esempio, con 4 dischi da 60 GB si
pu ottenere un sistema di memorizzazione globale da 180 GB tre volte pi
veloce dei singTTdischi, ma in grado di gestire i l guasto di un intero
settore;
"
R A I D di livello 4
utilizza tecniche di parit applicate ai blocchi, spalmando (striping) i vari
blocchi tra i vari dischi e memorizzando in un ulteriore disco di ridondanza
un blocco di bit di parit calcolato per ogni segmento suddiviso. In pratica",
se scompongo i l settore in 4 blocchi dovr calcolare un quinto blocco,
composto dai singoli bit di parit dei rispettivi bit di tutti i blocchi che
compongono i l settore originale, e memorizzarlo su un disco aggiuntivo per
l~ridoridanza. A d esempio, con 4 dischi da 60 GB si pu ottenere un
sistema di memorizzazione globale da 180 GB, tre volte pi veloce dei
singoli dischi ed in grado di gestire i l guasto di un intero disco;

364

CAPITOLO NONO

J8L0CC0 0_
J L O C C O 4_
BLOCCO 8

disco 1

J3LOCCO 1_
j L O C C O 5_
BLOCCO 9

J L O C C O 2__
" B L O C C O 0

J3LOCCO 3__
_BLOCC07__
BLOCCO 11

disco 2

disco 3

disco 4

j L O C C O 6___

RAIDO
striping

RAID 1
mirroring
disco 2

disco 1

disco 3

disco 4

d _
BLOCCO 0 jLOCCO 2 ,
JSLOCCO i**]

^BLOCCO 1

^BLOCCO

^BLOCCO

^ B L O C C O 3__^

^ B L O C C O 2__

^BLOCCO 3 ^

[^BLOCCO

^ J L O C W T J
BLOCCO

disco 1

1_

MIRROR
disco 3

disco 2

RAID 1+0
sfr/p/ng + mirroring

MIRROR
disco 4

RAID 2
cod/'c/' ci/' correzione
disco 2

disco 3

BLOCCO 1
_ B L O C C O 4___
^ B L O C C O 7__,

^ B L O C C O 2__
^ B L O C C O 5__,
,BLOCCO 8 j

disco 2

disco 3

disco 4

j L O C C O 1_
JSLOCCO 4_
BLOCCO 7

JSLOCCO 2_
J3LOCCO 5_
BLOCCO 8

BLOCCO W g W

disco 1

disco 2

disco 3

disco 4

J3LOCCO0
j L O C C O 3_
BLOCCO 6

^BLOCCO
^ B L O C C O 4__
lCOTWRTW

disco 1

disco 2

disco 1

^BLOCCO 1 .
^BLOCCO ! _
(^BLOCCO

disco 1
JSLOCCO 0__
j L O C C O 3_
BLOCCO 6

^ B L O C C O 0__^

^BLOCCO 1
^BLOCCO

[[J1L0CC05,

_ P

disco 4
>

d _ I
I,

PARIT

PAR/7,4 , R A I D 3
PARITA\~J bit di parit incrociata

BLOCCO PARIT
BLOCCO PARIT

^BLOCCO 2

BLOCCO PARIT

BLCCO PARTA

BLOCCO 7

^ B L O C C O 5__
BLOCCO 8

disco 3

disco 4

^ L O C C O 2__

^ L O C C O 4____

P + Q

disco 2

BLOCCO 6

disco 3

RAID 4
blocchi di parit incroc ah

RAID 5
blocchi di parit incrociata

P + Q

BLOCCO

disco 1

RAID 6
ridondanza P+Q

disco 4
Figura 9.9

GESTIONE DELLT/O

365

R A I D di livello 5
utilizza tecniche di parit applicate ai blocchi, con parit distribuita tra i
vari supporti, in modo da evitare che nello stesso disco sia memorizzato un
blocco ed i l suo blocco di parit. In pratica, se scompongo i l settore in 4
b l o c c h i d o v r calcolare un quinto blocco, composto dai singoli bit di parit
dei rispettivi bit di tutti i blocchi che compongono i l settore originale, e
rnemorizzarlo i n un disco diverso da quello che contiene dati: ma
attenzione che ogni disco contiene una quota uguale di blocchi di parit.
Questa tecnica ottiene le stesse caratteristiche del livello precedente in
termini di memoria globale e di affidabilit, ma evita di usurare
continuamente l'unico disco di ridondanza;
R A I D divello 6 "
Utilizza tecniche di rivelazione degli errori analoghe al livello precedente
ma basate su meccanismi pi ridondanti (detti P + Q ) del semplice bit di
parit. Questa tecnica ottiene le caratteristiche del livello precedente in
termini di affidabilit, mentre peggiora leggermente in termini di memoria
globale, ma consente di sopportare guasti anche a due dischi.
Le tecniche R A I D pi diffuse sono quelle di livello 0, 1, 0+1 e 5, vengono di
norma implementate via hardware nel controller ma possono essere realizzate anche via
software dal gestore della risorsa, pur se con un'efficienza inferiore.

9.3

Buffering e spooling

Quando la velocit della CPU molto diversa da quella della periferica da gestire
il relativo gestore della risorsa ricorre a tecniche per tentare di svincolare gli
avanzamenti di questi elementi, introducendo soluzioni specifiche quali i l buffering e lo
spooling.
I l buffering, la tecnica che fa ricorso ad aree di memoria temporanee dove i l
gestore della risorsa immagazzina temporaneamente le informazioni e le scambia in
momenti diversi con le velocit proprie dell'interlocutore, sia esso la risorsa o la CPU. I
dispositivi fisici possono leggere o scrivere un carattere o un blocco di dati per volta nel
buffer alla sua velocit, mentre i l processo potr accedere al buffer per gestire quantit
anche diverse di dati alla propria velocit, purch non siano richieste particolari
interazioni tra processo e risorsa.

Figura 9.10