Sistemi Operativi Giuseppe Prencipe Struttura dei dischi Schema

Struttura dei dischi
 Il file system si può considerare composto da tre parti
Sistemi Operativi
Giuseppe Prencipe
Interfaccia
Strutture dati usate dal SO per realizzare l’interfaccia
Struttura dei mezzi di memorizzazione secondaria (che
vedremo oggi)
 I dischi sono oggi il principale mezzo di
memorizzazione secondaria
Memoria Secondaria e Terziaria
Una volta lo erano i nastri che, dato il loro elevato tempo
d’accesso, sono oggi utilizzati sono per copie di riserva
(backup)
 Dal punto di vista dell’indirizzamento, si considerano
come un grande vettore monodimensionale di blocchi
logici, dove un blocco logico è la minima unità di
trasferimento
La dimensione di un blocco logico è solitamente di 512 byte
1
2
Struttura dei dischi
Schema funzionale di un disco
 Il vettore monodimensionale di blocchi logici corrisponde in modo
sequenziale ai settori del disco:
Il settore 0 è il primo settore della prima traccia sul cilindro più esterno
La corrispondenza prosegue ordinatamente lungo la prima traccia, quindi
lungo le rimanenti tracce del primo cilindro, e così via di cilindro in cilindro,
dall’esterno verso l’interno
 Sfruttando questa corrispondenza si potrebbe trasformare l’indirizzo
logico in una tripla (#cilindro, #traccia, #settore); questa operazione è
difficile perchè
I dischi contengono settori difettosi, che la corrispondenza nasconde
sostituendoli con settori funzionanti in altre parti del disco
Il numero di settori per traccia non è sempre costante
 Nei mezzi con velocità lineare costante la densità di bit per traccia è
uniforme (CD, DVD)



Più ci si allontana dal centro, più la traccia è lunga, più settori vi sono
Tipicamente le tracce esterne contengono 40% di settori in più di quelle interne
L’unità aumenta la sua velocità di rotazione man mano che la testina si sposta verso
l’esterno, per mantenere costante il flusso di dati
 In alternativa, nei mezzi a velocità angolare costante, per mantenere
costante il flusso di dati, le velocità della testina è sempre la stessa, ma
diminuisce la densità di bit
3
Scheduling del disco
Scheduling del disco
 Il sistema operativo è responsabile di una gestione
efficiente delle risorse fisiche: nel caso delle unità a disco,
far fronte a questa responsabilità significa garantire tempi
d’accesso contenuti e ampiezze di banda elevate
L’ampiezza di banda (bandwidth) è il numero totale di byte
trasferiti diviso il tempo totale intercorso fra la prima richiesta e il
completamento dell’ultimo trasferimento
 Il tempo d’accesso ha due componenti principali:
Il tempo di ricerca (seek time) è il tempo necessario affinché il
braccio dell’unità a disco sposti le testine fino al cilindro
contenente il settore desiderato
la latenza di rotazione (rotational latency) è il tempo aggiuntivo
necessario perché il disco ruoti finché il settore desiderato si trovi
sotto la testina
 Per mezzo dello scheduling delle richieste di I/O è
possibile migliorare sia tempo d’accesso che banda
5
1
4
 Ogni volta che si compie un’operazione di I/O, un
processo esegue una chiamata di sistema
 La richiesta contiene diverse informazioni
Tipo di operazione (lettura/scrittura)
Indirizzo nel disco
Indirizzo di memoria
Il numero di byte da trasferire
 Se il disco e il controllore sono disponibili, allora la
richiesta viene subito eseguita, altrimenti viene aggiunta
alla coda di richieste inevase per quel dispositivo
 Le code possono essere piuttosto lunghe (soprattutto con
multiprogrammazione), quindi il SO deve avere delle
politiche per la gestione di queste code
6
Scheduling del disco
Scheduling FCFS
(cont.)
 Esistono numerosi algoritmi di scheduling
 Semplice: FCFS (in ordine d’arrivo)
È intrinsecamente equo, ma non garantisce la massima
velocità del servizio
 Consideriamo, ad esempio, una coda di richieste che
dia una lista di cilindri sui quali individuare i blocchi
richiesti (testina inizialmente al cilindro 53)
98, 183, 37, 122, 14, 124, 65, 67
Distanza totale percorsa: 640 cilindri
7
8
Scheduling SSTF
Scheduling SSTF
 SSTF—shortest seek time first (Scheduling per
 SSTF—shortest seek time first (Scheduling per
brevità): seleziona la richiesta con il minor
tempo di ricerca rispetto all’attuale posizione
della testina.
 Lo scheduling SSTF è essenzialmente una
forma di quale scheduling già visto....????
brevità): seleziona la richiesta con il minor
tempo di ricerca rispetto all’attuale posizione
della testina.
 Lo scheduling SSTF è essenzialmente una
forma di quale scheduling già visto....????
Scheduling per brevità (SJF, shortest job first) e, al
pari di questo, può condurre a situazioni di attesa
indefinita (starvation) di alcune richieste....quando
può accadere questo....????
9
10
Scheduling SSTF
Scheduling SSTF
 SSTF—shortest seek time first (Scheduling per
brevità): seleziona la richiesta con il minor
tempo di ricerca rispetto all’attuale posizione
della testina.
 Lo scheduling SSTF è essenzialmente una
forma di quale scheduling già visto....????
Scheduling per brevità (SJF, shortest job first) e, al
pari di questo, può condurre a situazioni di attesa
indefinita (starvation) di alcune richieste....quando
può accadere questo....????
 Se continuano ad arrivare richieste vicine alla posizione
Distanza totale percorsa: 236 cilindri
corrente della testina!!!!
Non è lo scheduling ottimale!!!!
11
2
12
Scheduling per scansione
(SCAN)
Scheduling per scansione
(SCAN)
 Secondo l’algoritmo SCAN il braccio dell’unità a disco
parte da un estremo del disco e si sposta nella sola
direzione possibile, servendo le richieste mentre
attraversa i cilindri, fino a che non giunge all’altro
estremo del disco: a questo punto, il braccio inverte la
marcia, e la procedura continua
 L’algoritmo SCAN è a volte chiamato algoritmo
dell’ascensore, perché il braccio dell’unità a disco si
comporta proprio come un ascensore che serve prima
tutte le richieste in salita e poi tutte quelle in discesa
13
Scheduling per scansione
(SCAN)
14
Scheduling per scansione circolare (C-SCAN)
 L’algoritmo SCAN circolare (circular SCAN, C-
Quando la testina è a una estremità, ha servito tutte le richieste vicine, e inverte la
direzione di marcia....
In questo momento, dove si trova (probabilmente) la più alta densita di richieste
15
ancora da servire (da quale lato del disco)....????
Scheduling per scansione circolare (C-SCAN)
SCAN) è una variante dello scheduling SCAN
concepita per garantire un tempo d’attesa meno
variabile
 Anche l’algoritmo C-SCAN, come lo SCAN, sposta
la testina da un estremo all’altro del disco,
servendo le richieste lungo il percorso; tuttavia,
quando la testina giunge all’altro estremo del
disco, ritorna immediatamente all’inizio del disco
stesso, senza servire richieste durante il viaggio di
ritorno
 L’algoritmo di scheduling C-SCAN,
essenzialmente, tratta il disco come una lista
circolare, cioè come se il primo e l’ultimo cilindro
fossero adiacenti
16
LOOK e C-LOOK
 Versioni ottimizzate di SCAN e C-SCAN
 Il braccio si sposta solo finché ci sono
altre richieste da servire in ciascuna
direzione, dopo di che cambia
immediatamente direzione, senza
giungere all’estremo del disco
17
3
18
Scelta di un algoritmo di scheduling
C-LOOK
 SSTF è molto comune e naturalmente attraente,
perchè migliora FCFS
 SCAN e C-SCAN offrono migliori prestazioni in
sistemi che sfruttano molto le unità a disco, e non
conducono a attesa indefinita
 Le prestazioni dipendono in larga misura dal
numero e dal tipo di richieste
Con una sola richiesta tutti gli algoritmi si comportano
come FCFS!!!!
 Le richieste di I/O per l’unità a disco possono
essere notevolmente influenzate dal metodo
adottato per l’assegnazione dei blocchi ai file
Metodo contiguoblocchi raggruppati, metodo
concatenatoblocchi sparsi per il disco
19
20
Gestione dell’unità a disco
Scelta di un algoritmo di scheduling
 Prima che un disco magnetico possa memorizzare dati,
 Anche la posizione delle directory e dei blocchi
deve essere diviso in settori che possano essere letti o
scritti dal controllore
 Questo processo è la formattazione fisica
indice è importante
Se la directory è nel primo cilindro, e i file in essa
contenuti nell’ultimo, la testina viaggia parecchio. Se
invece la directory si trova nei cilindri centrali, la
situazione migliora
Anche l’uso della RAM come cache delle directory
contribuisce a ridurre i movimenti del braccio
 Quindi, l’algoritmo di scheduling del disco
dovrebbe costituire un modulo a sé stante del
sistema operativo così da poter essere sostituito
da un altro algoritmo qualora ciò fosse necessario
 Sia SSTF sia LOOK costituiscono un ragionevole
algoritmo di partenza
Il disco viene riempito con una speciale struttura dati per ogni
settore, consistente di un’intestazione, un’area per i dati e una coda
L’intestazione e la coda contengono informazioni usate dal
controllore del disco, come numero del settore e codice per la
correzione degli errori (ECC—error-correcting code)
Quando il controllore scrive dati in un settore, aggiorna l’ECC
secondo il contenuto dell’area dati del settore. Quando legge quel
settore, calcola l’ECC e lo confronta con il valore memorizzato: se
risultano diversiarea dati del settore non è integra
L’ECC è un codice per la correzione degli errori: se solo alcuni bit
dati sono danneggiati, il controllore può individuarli e correggerli
 La formattazione è tipicamente parte del processo
produttivo
21
22
Gestione dell’unità a disco
Gestione dell’unità a disco
 Affinché un calcolatore possa entrare in funzione
 Per usare un disco come contenitore di
informazioni, il sistema operativo deve registrare
le proprie strutture dati all’interno del disco. Ciò
avviene in due passi
Suddividere il disco in uno o più gruppi (partizioni)
 Ogni partizione viene trattata come un disco a sé
Per avviare il SO, il programma trova il nucleo nei dischi,
lo carica in memoria, e salta a un indirizzo iniziale per
avviare l’esecuzione del SO
 Il programma iniziale è memorizzato in una ROM
Creare un file system (formattazione logica)
 Vengono registrate nel disco le strutture dati iniziali (FAT,
(Read Only Memory), che non richiede
inizializzazione, e che ha un inidirizzo iniziale fisso
dal quale la CPU può cominciare l’esecuzione
inode, directory iniziale vuota,....)
23
4
(accensione o riavviamento), è necessario eseguire
un programma iniziale, che inizializza il sistema
in tutti i suoi aspetti (registri CPU, controllori
dispositivi, contenuto RAM, ....) e avvia il SO
24
Gestione dell’unità a disco
 Per cambiare il programma iniziale bisognerebbe
cambiare la ROM
Configurazione del disco
nell’MS-DOS
Alcuni sistemi memorizzano nella ROM solo un piccolo
caricatore d’avviamento (bootstrap loader) il cui
compito è di caricare da disco il programma iniziale
completo
Il programma completo si trova in una locazione
fissata del disco (la partizione contenente questa
locazione è detta d’avviamento)
Il codice nella ROM istruisce il controllore del disco
affinché trasferisca il contenuto dei blocchi
d’avviamento in RAM (non viene caricato alcun driver
per il disco), quindi comincia a eseguire il codice
Il programma d’avviamento completo è più complesso
del suo caricatore, ed è capace di caricare il SO
residente su disco
25
Blocchi difettosi
26
Blocchi difettosi
 In unità a disco più complesse (es., SCSI), la
 I dischi sono soggetti alla presenza di blocchi
difettosi
 Nel caso di dischi semplici, i blocchi difettosi
sono gestiti “manualmente”
Es.: con il format dell’MS-DOS si esegue una
formattazine logica, e come parte del processo viene
esaminato il disco per rilevare la presenza di blocchi
difettosi. Se ne viene trovato qualcuno, viene scritto
un valore speciale nell’elemento corrispondente nella
FAT, per segnalare di non usare quel blocco
Se qualche blocco diviene difettoso durante il normale
uso del sistema, bisogna lanciare programmi speciali
che individuano i blocchi difettosi (es., chkdsk)
formattazione fisica mette anche da parte dei settori di
riserva non visibili al sistema operativo: si può istruire il
controllore affinché sostituisca da un punto di vista logico
un settore difettoso con uno dei settori di riserva non
utilizzati
 Questa strategia è nota come accantonamento di
settori (sector sparing)
Es., il sistema legge un blocco X e lo trova difettoso (tramite ECC)
Segnala questo al SO
Al successivo riavvio, si esegue un comando speciale che
comunica al controllore SCSI di sostituire il settore difettoso con
uno di riserva
Ogni accesso al settore X verrà reindirizzato a quello di riserva
NOTA: un reindirizzamento di questo tipo potrebbe inficiare le
strategie di scheduling del disco
27
Blocchi difettosi
Gestione dell’area di avvicendamento
 Area d’avvicendamento (swap-space): la
 Un’alternativa all’accantonamento dei settori è
memoria virtuale usa lo spazio dei dischi come
estensione della memoria centrale
data dalla traslazione dei settori (sector
slipping)
Dato che il disco è più lento della RAM, questo può
portare a notevoli riduzioni delle prestazioni del sistema
Se il blocco logico 17 diviene corrotto, e il primo
settore di riserva è il 203, allora tutti i blocchi dal 17
al 202 vengono traslati di 1
 L’area di avvicendamento è usata in modo
diverso dai vari sistemi
 202203, 201201, ...., 1718
 In ogni caso la sostituzione di un blocco
difettoso non è un processo totalmente
automatico, e porta tipicamente alla perdita dei
dati contenuti nel blocco corrotto
Il file che usava quel blocco deve essere riparato, e
questo comporta (tipicamente) un intervento manuale
29
5
28
Può essere usata per mantenere l’immagine di un
processo in caso di avvicendamento di processi in
memoria
I sistemi a paginazione possono memorizzarvi pagine
non contenute in memoria centrale
Alcuni sistemi (es., UNIX) permettono l’uso di aree di
avvicendamento multiple, poste anche in unità a disco
distinte
30
Gestione dell’area di avvicendamento
Gestione dell’area di avvicendamento
 L’area d’avvicendamento può essere ricavata all’interno del normale
 L’area d’avvicendamento può essere ricavata all’interno del normale
file system o, più comunemente, può trovarsi in una partizione
separata del disco
 Nel primo caso, possono essere utilizzate le normali funzioni del file
system per crearla e assegnarle spazio
Questo criterio, anche se semplice da realizzare, risulta però inefficiente
 Attraversamento struttura directory, possibilità frammentazione, rallentano i
tempi
file system o, più comunemente, può trovarsi in una partizione
separata del disco
 Nel primo caso, possono essere utilizzate le normali funzioni del file
system per crearla e assegnarle spazio
Questo criterio, anche se semplice da realizzare, risulta però inefficiente
 Attraversamento struttura directory, possibilità frammentazione, rallentano i
tempi
 In alternativa, la si crea in una partizione separata, senza alcuna
struttura di file system e directory
Si usa uno speciale gestore per assegnare e rimuovere i blocchi
Il gestore adotta algoritmi ottimizzati rispetto alla velocit, piuttosto che
allo spazio impiegato
 Questo può aumentare la frammentazione, ma non è grave perchè la vita
media dei dati in area di swap è breve
In questo caso, l’area di swap ha una dimensione fissata (al momento
della creazione della partizione)per cambiarne la dimensione bisogna
ripartizionare il disco o creare qualche altra area di swap in un altro disco
 Alcuni sistemi adottano entrambe le strategie (swap su file system e
su partizione), come Solaris2
31
Gestione dell’area di avvicendamento: UNIX
32
Mappa d’avvicendamento
per il segmento di testo nello UNIX 4.3 BSD
 Nella versione 4.3BSD si assegna l’area di
avvicendamento a un processo quando questo è avviato;
si riserva spazio sufficiente per il segmento di testo dove
è contenuto il programma e per il segmento dei dati
Quando comincia l’esecuzione, il testo del processo viene
caricato dal file system, e le sue pagine trasferite in swap (il file
system viene consultato una sola volta); simile approccio per le
pagine dati
 Due mappe d’avvicendamento per ogni processo
servono al nucleo per tenere traccia dell’area
d’avvicendamento correntemente impiegata (testo o dati)
33
Mappa d’avvicendamento
per il segmento dei dati nello UNIX 4.3 BSD
34
Gestione dell’area di avvicendamento: UNIX
 Nella versione 4.3BSD si assegna l’area di
avvicendamento a un processo quando questo è avviato;
si riserva spazio sufficiente per il segmento di testo dove
è contenuto il programma e per il segmento dei dati
Quando comincia l’esecuzione, il testo del processo viene
caricato dal file system, e le sue pagine trasferite in swap (il file
system viene consultato una sola volta); simile approccio per le
pagine dati
 Due mappe d’avvicendamento per ogni processo
Per ogni indice i il blocco puntato dall’elemento i-esimo della
mappa è di 2ix16 Kb
In questo modo, processi piccoli usano solo blocchi piccoli
35
6
servono al nucleo per tenere traccia dell’area
d’avvicendamento correntemente impiegata (testo o dati)
 Solaris 2 assegna spazio nell’area d’avvicendamento solo
quando una pagina non può più risiedere nella memoria
fisica, e non al momento della creazione della pagina di
memoria virtuale
36
Strutture RAID—ridondanza
Strutture RAID
 Gli schemi RAID migliorano l’affidabilità della
 L’evoluzione tecnologica ha reso le unità a disco
progressivamente più piccole e meno costose tanto che
oggi è possibile, senza eccessivi sforzi economici,
equipaggiare un sistema di calcolo con molti dischi
 La presenza di più dischi, qualora si possano usare in
parallelo, rende possibile l’aumento della frequenza alla
quale i dati si possono leggere o scrivere
 Inoltre, avendo più dischi, è possibile migliorare
l’affidabilità della memoria secondaria
 Ci sono varie tecniche per organizzare i dischi, note con il
nome comune di batterie ridondanti di dischi (RAID,
redundant array of independent/inexpensive disk)
Hanno lo scopo di affrontare i problemi di prestazioni e affidabilità
memoria secondaria poiché diventa possibile
memorizzare le informazioni in più dischi in modo
ridondante
La copiatura speculare (mirroring o shadowing) mantiene
un duplicato di ciascun disco
 Ogni disco logico consiste di due dischi fisici
Questa tecnica è efficace se i guasti che possono capitare
sui due dischi sono indipendenti
Questo non è tipicamente vero
 I guasti capitano molto spesso come conseguenza di fattori
esterni quali cali di tensioni e disastri naturali, o difetti di
fabbricazione che possono causare guasti simili o correlati
 Una soluzione al problema del calo della tensione consiste nello
scrivere i dati in maniera differita (prima in un disco e poi nell’altro)

Se si scrivessero contemporanemente, il calo di tensione agirebbe su
entrambi i dischi
37
Strutture RAID—parallelismo
38
Strutture RAID—parallelismo
 L’utilizzo in paralello di più dischi porta a notevoli vantaggi
Nel caso di copiatura speculare, è possibile raddoppiare la
frequenza di gestione delle letture (ogni richiesta può essere
inviata indifferentemente a uno dei due dischi, e la probabilità di
trovarne uno libero è alta)
La capacità di trasferimento però non cambia in questo caso
Il sezionamento a livello del bit si può
generalizzare a un numero di dischi multiplo di
8 o che divide 8
 Come faccio con 4 dischi....????
 Si può migliorare la capacità di trasferimento distribuendo i
dati in sezioni su più dischi
Sezionamento dei dati: si distribuiscono i bit di ciascun byte su
più dischi (sezionamento a livello di bit)
 Es.: con 8 dischi, ogni bit di un byte va su un disco diverso.
 È come avere un disco di dimensione e capacità di trasferimento 8
volte superiore
Ogni disco è coinvolto in ogni accessoil numero di accessi che si
possono gestire nell’unità di tempo è lo stesso di quelli con un
disco solo, ma ogni accesso permette di leggere una quantità di
dati 8 volte superiore
39
Strutture RAID—parallelismo
40
Strutture RAID—parallelismo
Il sezionamento a livello del bit si può
generalizzare a un numero di dischi multiplo di
8 o che divide 8
 Come faccio con 4 dischi....????
 I bit i e i+4 si memorizzano nel disco i
Il sezionamento a livello del bit si può
generalizzare a un numero di dischi multiplo di
8 o che divide 8
 Come faccio con 4 dischi....????
 I bit i e i+4 si memorizzano nel disco i
Il sezionamento si può realizzare anche al
livello dei blocchi
 I blocchi di un file si distribuiscono su più dischi
 Con n dischi, il blocco i si memorizza nel disco (i mod
n)+1
sono possibili anche sezionamenti a livello di
byte di un settore, o di settori di un blocco
41
7
42
Livelli RAID
Livelli RAID
La copiatura speculare
offre affidabilità, ma
è costosa
Sono stati proposti vari
schemi, classificati
in livelli, detti livelli
RAID
Livello 0: senza
ridondanza, con
sezionamento a
livello dei blocchi
43
Livelli RAID
44
Livello 2: con ECC.
Gli errori sono
risonosciuti grazie
alla presenza di
codici di
correzione di
errori
Ne è un esempio il bit
di parità:
È presente in ogni
byte, e specifica se i
bit con valore 1
sono in numero pari
(parità=0) o dispari
(parità=1)
In questo modo
s’identificano gli
errori di un singolo
bit
Livello 1: copiatura
speculare
Livelli RAID
45
Livello 2: con ECC.
Gli errori sono
risonosciuti grazie
alla presenza di
codici di
correzione di
errori
Ne è un esempio il bit
di parità:
È presente in ogni
byte, e specifica se i
bit con valore 1
sono in numero pari
(parità=0) o dispari
(parità=1)
In questo modo
s’identificano gli
errori di un singolo
bit
Livelli RAID
Questa idea si adotta
nelle batterie di
dischi, utilizzando il
sezionamento, e
memorizzando i bit
di correzione degli
errori in ulteriori
dischi
47
8
46
Livello 3: bit di parità
intercalati
Si ha il sezionamento
dei dati ha livello di
bit e un ulteriore
disco memorizza il
bit di parità
Quando si ha un errore
di lettura da uno dei
dischi, grazie al bit
di parità
memorizzato, il
sistema sa quale
dovrebbe essere il
valore corretto di
quel bit
Livelli RAID
48
Livello 4: blocchi di
parità intercalati
S’impiega il
sezionamento al
livello dei blocchi
(come nel livello 0)
Si tiene un blocco di
parità in un disco
separato per i
blocchi
corrispondenti
presenti in n dischi
diversi da questo
Livelli RAID
Livello 5: blocchi
intercalati a parità
distribuita
Invece di memorizzare
la parità in un disco
separato, i dati e le
info di parità sono
distribuite fra i dischi
Ad esempio, con 5
dischi, la parità per
il blocco m si
memorizza nel disco
(m mod 5)+1,
mentre i blocchi mesimi degli altri
quattro dischi
contengono i dati
effettivi
Livelli RAID
49
Livello 6: simile al
livello 5
Memorizza ulteriori info
ridondanti per poter
gestire guasti
contemporanei di
più dischi
Invece di usare la
parità, si impiegano
altri codici per la
correzione degli
errori (es., codici di
Reed-Solomon)
Livelli RAID
50
RAID (0 + 1) e (1 + 0)
Raid (0+1): combina il
livello 0 (sezionamento
a livello di blocchi
prestazioni) con il
livello 0 (copiatura
affidabilità)
Si sezionano i dati presenti
e poi si copia
Richiede di raddoppiare il
numero di dischi
sezione di dati
x
dup licato
sezione di dati
a) RAID 0 + 1 con guasto di un solo disco
51
RAID (0 + 1) e (1 + 0)
Raid (1+0): si fa prima
la copiatura
speculare dei dischi
a coppie, e poi il
sezionamento su
queste coppie
Vantaggi rispetto allo
(0+1)....?? Cosa
succede se si Se si
guasta un disco....??
RAID (0 + 1) e (1 + 0)
x
sezione di dati
dup licato
dup licato
dup licato
dup licato
b ) RAID 1 + 0 con guasto di un solo disco
53
9
52
Raid (1+0): si fa prima
la copiatura
speculare dei dischi
a coppie, e poi il
sezionamento su
queste coppie
Vantaggi rispetto allo
(0+1)....?? Cosa
succede se si Se si
guasta un disco....??
In (0+1)....
x
sezione di dati
dup licato
dup licato
dup licato
dup licato
b ) RAID 1 + 0 con guasto di un solo disco
54
RAID (0 + 1) e (1 + 0)
Raid (1+0): si fa prima
la copiatura
speculare dei dischi
a coppie, e poi il
sezionamento su
queste coppie
Vantaggi rispetto allo
(0+1)....?? Cosa
succede se si Se si
guasta un disco....??
In (0+1)....tutta le
sezione è
inaccessibile, mentre
in (1+0)....
RAID (0 + 1) e (1 + 0)
x
sezione di dati
dup licato
dup licato
dup licato
dup licato
b ) RAID 1 + 0 con guasto di un solo disco
Raid (1+0): si fa prima
la copiatura
speculare dei dischi
a coppie, e poi il
sezionamento su
queste coppie
Vantaggi rispetto allo
(0+1)....?? Cosa
succede se si Se si
guasta un disco....??
In (0+1)....tutta le
sezione è
inaccessibile, mentre
in (1+0)....si può
usare il suo duplicato
x
sezione di dati
dup licato
dup licato
dup licato
dup licato
b ) RAID 1 + 0 con guasto di un solo disco
55
56
Memoria secondaria connessa
alla macchina
Connessione dei dischi
 I calcolatori accedono alla memoria secondaria
in due modi
tramite le porte di I/O (memoria secondaria
connessa alla macchina, host-attached
storage)
 Vi si accede tramite le porte di I/O
 I comuni PC impiegano un’architettura per il
bus di I/O detta IDE o ATA
Consente di avere non più di due unità per ciascun
bus di I/O
 L’architettura SCSI è più sofisticata
per mezzo di un file system distribuito
(memoria secondaria connessa alla rete,
network attached storage)
È un’architettura a bus il cui mezzo fisico è di solito
un cavo piatto con un certo numero di conduttori
(50 o 68)
Consente di avere sul bus fino a 16 dispositivi
57
58
Memoria secondaria connessa alla rete
Memoria secondaria connessa alla rete
 È un sistema di memoria al quale si accede in
Network—attached storage (NAS)
modo remoto per mezzo di una rete
 I client accedono alla memoria tramite
un’interfaccia RPC (ad es. NFS)
 Le chiamate RPC sono realizzate tramite
protocolli TCP o UDP sopra una rete IP
 Fornisce a tutti i calcolatori di una LAN un
modo semplice per condividere spazio di
memorizzazione
59
10
60
Rete di memoria secondaria
Reti di memoria secondaria
 Lo svantaggio dei NAS è che le operazioni di
I/O sulla memoria secondaria impiegano banda
di rete, aumentando la latenza della rete stessa
 Una rete di memoria secondaria
(storage—area network, SAN) è una rete
privata (che impiega protocolli specifici per la
memorizzazione anziché protocolli di rete) tra i
server e le unità di memoria secondaria,
separata dalla LAN/WAN che collega i server ai
client
61
Rete di memoria secondaria
62
Dispositivi per la memorizzazione terziaria
 La caratteristica peculiare delle memoria
terziaria è il suo basso costo
 Generalmente, la memoria terziaria è
costituita da mezzi rimovibili
 Alcuni esempi di mezzi rimovibili sono i
Sistema flessibile:
permette di connettere
alla SAN molte macchine
e batterie di memoria
floppy-disk e i CD-ROM; sul mercato
sono disponibili anche molti altri prodotti
63
64
Dischi rimovibili
 I dischi magneto—ottici registrano i dati su un disco rigido
Dischi rimovibili
ricoperto da materiale magnetico
 I dischetti (floppy disk) sono costituiti da un
disco sottile e flessibile, ricoperto da materiale
magnetico, racchiuso in un involucro protettivo
di plastica
I comuni dischetti hanno una capacità di 1 MB, ma
si usa una tecnologia simile per costruire dischi
magnetici rimovibili della capacità di oltre 1 GB
I dischi magnetici rimovibili possono funzionare a
una velocità quasi pari a quella delle unità a disco,
anche se il rischio che la loro superficie sia
danneggiata da graffi è maggiore
65
11
La testina è sospesa a una distanza molto maggiore rispetto alla
testina di un disco magnetico
L’unità ha una bobina capace di produrre un campo magnetico, ma
solo a alte temperaturela testina emette un raggio laser verso la
superficie del disco, puntandolo sull’area dove si vuole scrivere un
bit
Dato che la testina è distante dalla superficie del disco, l’unità a
disco legge i bit sfruttando una proprietà della luce laser detta
effetto Kerr
 Quando un raggio laser è riflesso da un punto magnetizzato, la sua
polarizzazione è ruotata in senso orario o antiorario secondo
l’orientazione del campo magnetico: per leggere i bit la testina rileva
questa rotazione
Il materiale magnetico è protetto da uno spesso strato di plastica o
vetro; di conseguenza il disco è più resistente a eventuali collisioni
della testina.
 I dischi ottici non sfruttano il magnetismo ma usano
materiali speciali che la luce laser può alterare in modo da
creare punti relativamente chiari o scuri
66
Dischi WORM
Disco a cambio di fase
 È ricoperto di un materiale che può solidificare
passando a uno strato cristallino o a uno stato
amorfo
 Impiegano laser capaci di emettere raggi a tre
differenti livelli di potenza
Bassa: per le letture
Maedia: per cancellare il disco fondendo e facendo
solidificare il mezzo di registrazione nello stato
cristallino
Alta:, per scrivere, fondendo e facendo solidificare il
mezzo di registrazione nello stato amorfo
 Esempi di questo tipo di disco sono i CD-RW e
i DVD-RW
 I dati memorizzati sui dischi a lettura e scrittura possono
essere aggiornati e modificati
 I dischi WORM (Write Once, Read Many) possono essere
scritti solo una volta
 Una sottile pellicola di alluminio viene inserita tra due
piatti di plastica o vetro
 Per scrivere un bit, l’unità usa un raggio laser per
praticare un piccolo foro nell’alluminio; poiché questo
processo non è reversibile, le informazioni possono
essere lette ma non alterate
 I dischi WORM sono considerati durevoli e affidabili
 I dischi a sola lettura come i CD-ROM e i DVD sono
commercializzati con un contenuto pre-registrato. E
fanno uso di una tecnologia simile a quella dei WORM
67
Nastri
68
Compiti del sistema operativo
 Rispetto a un disco, un nastro è meno costoso e
contiene più dati, ma l’accesso diretto è molto più lento
 I nastri magnetici sono un mezzo conveniente qualora
non si richiedano rapidi accessi diretti, e quindi per
copie di riserva, anche nei grandi centri di calcolo
 Grandi stazioni di registrazione a nastri usano
meccanismi automatici per spostare i nastri dalle unità
ad appositi contenitori in un archivio di nastri
 Un file non immediatamente necessario può essere
archiviato su nastro a un costo per gigabyte che può
essere inferiore; quando il file si renderà necessario, il
calcolatore potrà installarlo nuovamente nel disco
 Due tra gli obiettivi primari di un sistema
operativo sono la gestione dei dispositivi fisici e
la presentazione di una macchina virtuale alle
applicazioni
 Relativamente ai dischi, il sistema operativo
realizza due astrazioni:
Dispositivo a basso livello: un semplice vettore di
blocchi di dati
File system: il sistema operativo accoda e organizza
le richieste provenienti da diverse applicazioni
69
Interfaccia per le applicazioni
Interfaccia per le applicazioni
 In questo caso, di solito, l’unità a nastro si riserva per
 La maggior parte dei sistemi operativi gestisce i
dischi rimovibili pressoché nella stessa maniera
dei dischi fissi. Quando s’inserisce un nuovo disco
nella relativa unità a disco esso deve essere
formattato, quindi si crea sul disco rimovibile un
file system vuoto che si usa proprio come il file
system di un’ordinaria unità a disco
 La gestione dei nastri è, invece, spesso differente
 Il sistema operativo di solito presenta un nastro
come mezzo di memorizzazione a basso livello.
Un’applicazione non apre un file presente nel
nastro, apre l’intera unità a nastro come
dispositivo a basso livello
71
12
70
l’uso esclusivo da parte di tale applicazione fino a che
essa termina o chiude il dispositivo (ragionevole,
perchè l’accesso ai dati potrebbe richiedere minuti)
 Quando un’unità a nastro è presentata come
dispositivo di basso livello, il sistema operativo non
fornisce i servizi del file system: è l’applicazione che
deve decidere come usare il vettore di blocchi
Un programma che crea una copia di riserva di un
disco su un nastro, potrebbe ad esempio scrivere
un elenco dei nomi e delle dimensioni dei file
all’inizio, e poi i dati in quell’ordine
 Visto che ogni applicazione stabilisce i propri criteri di
organizzazione del nastro, un nastro contenente dati
può essere generalmente usato solo dal programma
che lo ha creato
72
Unità a nastro
Nomi dei file
 Le operazioni fondamentali relative a un’unità a nastro differiscono
da quelle di un’unità a disco
 locate posiziona il nastro in corrispondenza di uno specifico blocco
logico e non di un’intera traccia (corrisponde a seek)
Nel caso di un blocco corrotto, le informazioni vengono scritte in blocchi
successivi
Le dimensioni dei blocchi non sono determinate a priori, e si
determinano al momento della scrittura
Questo spiega perchè non sia possibile effettuare una locate oltre
l’area del nastro registrata: le posizioni e le numerazioni dei blocchi
logici non sono state ancora determinate
 read position riporta il numero del blocco logico in
corrispondenza del quale si trova la testina
 L’operazione space riguarda gli spostamenti relativi
Es.: space-2 riavvolge il nastro di due blocchi logici
 Le unità a nastro sono dispositivi a solo accodamento di dati
(“append-only” devices); l’aggiornamento di un blocco posto in
mezzo al nastro comporta la cancellazione di tutto ciò che segue
tale blocco
 Un simbolo di fine nastro (EOT, end of tape) viene posto dopo
l’ultimo blocco registrato
 L’assegnazione dei nomi dei file sui mezzi
rimovibili è complicata nel caso s’intenda
scrivere dati su un mezzo rimovibile in un certo
calcolatore e poi riutilizzare lo stesso mezzo in
un altro calcolatore
 In genere gli attuali sistemi operativi lasciano
irrisolto il problema, confidando nel fatto che le
applicazioni o gli utenti forniranno una chiave
di lettura e di interpretazione dei dati
 Alcuni tipi di mezzi rimovibili (ad es. i CD) sono
così ben standardizzati da essere usati allo
stesso modo da tutti i calcolatori
73
74
Gestione gerarchica della memoria
Velocità
 Un sistema di gestione gerarchica della memoria estende
la gerarchia di memorizzazione oltre la memoria centrale
e secondaria, comprendendo la memoria terziaria;
quest’ultima è di solito costituita da un juke—box di nastri
o di dischi rimovibili (che permette a un calcolatore di
cambiare un nastro o un disco rimovibile senza
l’intervento di un utente)
 In genere la memoria terziaria viene incorporata
estendendo il file system
I file piccoli e frequentemente usati rimangono nei dischi magnetici
I file vecchi, ingombranti e raramente necessari, si archiviano nel
juke—box
 La gestione gerarchica della memoria (HSM, hierarchical
storage management) si trova di solito in centri di calcolo
 La velocità della memoria terziaria è definita da due
fattori: ampiezza di banda e latenza
 L’ampiezza di banda si misura in byte al secondo
Ampiezza di banda sostenuta: velocità media di trasferimento
nel caso di una rilevante quantità di dati; in altre parole, il
numero di byte diviso il tempo di trasferimento
Ampiezza di banda effettiva: numero di byte trasferiti
rapportato al tempo di I/O totale, inclusi il tempo richiesto da
una seek o una locate, e l’attesa eventualmente dovuta a
cambi di dischi o nastri eseguita dal juke-box.
basati su supercalcolatori e in altri grandi sistemi che
possiedono enormi quantità di dati
75
76
Velocità
Affidabilità
 Latenza d’accesso: quantità di tempo necessaria per
 I dischi magnetici rimovibili sono meno affidabili
accedere ai dati
Tempo d’accesso per un disco: si sposta il braccio al cilindro
selezionato e si aspetta che il settore interessato ruoti sotto la
testina: < 35 millisecondi.
Un accesso diretto a un nastro richiede lo svolgimento o il
riavvolgimento della bobina finché il blocco richiesto raggiunge la
testina, in decine o in centinaia di secondi
In linea generale l’accesso diretto a un nastro è oltre mille volte
più lento dell’accesso diretto a un disco
 La convenienza economica della memoria terziaria è
dovuta alla possibilità di usare molte cartucce (a disco o
a nastro) a basso costo, con poche costose unità di
lettura e scrittura
 Un archivio di dati rimovibili è soprattutto adatto alla
registrazione di dati usati raramente, perché il numero
delle richieste di I/O soddisfacibili per ogni ora d’uso di
un tale archivio è relativamente basso
77
13
dei dischi fissi
È più probabile che siano esposti a condizioni
ambientali dannose (polvere, sbalzi di temperatura,
umidità, urti)
 I dischi ottici sono considerati più affidabili di un
disco o un nastro magnetico perché lo strato che
memorizza le informazioni è protetto da uno
strato trasparente di plastica o vetro
 Anche le unità a disco fisso hanno punti deboli: la
collisione della testina col disco in genere
distrugge i dati, mentre il guasto di un’unità a
nastro o di un’unità a dischi ottici lascia spesso
intatto il mezzo di memorizzazione in uso al
momento del guasto
78
Prezzo al MB della memoria DRAM,
dal 1981 al 2000
Costi
 La memoria principale è molto più costosa di quella su
1280
disco
640
16 Kb
320
 Il costo per MB su disco magnetico è competitivo
rispetto al nastro
Dollari/MB
160
 L’unità a nastro meno costosa e l’unità a disco meno
costosa hanno all’incirca la stessa capacità di
memorizzazione
64 Kb
80
256 Kb
40
20
1 Mb
4 MB simm
10
 La memoria terziaria produce effettivi risparmi solo
5
quando il numero di cartucce è sostanzialmente
superiore al numero dei dispositivi di lettura/scrittura
32 MB
2
1,2
0,8
128 MB
1982
1984
1986
1988
1990
79
1994
1996
1998
2000
80
Anno
Prezzo al MB delle unità a disco magnetico
dal 1981 al 2000
Prezzo al MB delle unità a nastro, dal
1981 al 2000
100
50
1992
40
10 MB
20
20
20 MB
8
Dollari/MB
Dollari/MB
5
120 MB
2
1,2 GB
0,5
50 MB
120 MB
2
2 GB
0,2
1,2 GB
0,5
0,05
0,02
19 GB
0,004
4 GB
0,1
45 GB
1982
1984
1986
1988
1990
1992
1994
1996
1998
72 GB
2000
0,025
Anno
81
1982
1984
1986
1988
1990
1992
1994
1996
1998
Anno
2000
82
Realizzazione della memoria
stabile
 La registrazione con scrittura anticipata (writeahead log scheme) richiede la disponibilità di
una memoria stabile.
Per oggi basta!!!!
 Per realizzare la memoria stabile occorre:
Replicare le informazioni necessarie in più dispositivi
di memorizzazione con modi di malfunzionamento
indipendenti.
Coordinare l’aggiornamento delle informazioni in
modo tale che un eventuale malfunzionamento
durante l’aggiornamento non danneggi tutte le
copie.
83
14
84