Struttura dei dischi - sistemisds.altervista.org

annuncio pubblicitario
Struttura dei dischi
Il file system può essere considerato come costituito da tre parti. L’interfaccia verso l’utente e il
programmatore, le strutture dati e gli algoritmi del sistema operativo per implementare queste
interfacce, e infine le strutture di memoria secondaria.
Per i computer attuali, i dischi rappresentano la forma principale di archiviazione secondaria; oggi i
nastri vengono usati principalmente per le operazioni di backup.
I dischi rigidi sono indirizzati come grandi array monodimensionali di blocchi logici , dove
il blocco logico è la più piccola unità di dati trasferibile in lettura o scrittura. La dimensione di un
blocco logico è di solito di 512 byte, sebbene alcuni dischi possano essere configurati a basso
livello per consentire una diversa dimensione di blocco logico, ad esempio 1024 byte o più.
L’array monodimensionale di blocchi logici viene mappato nei settori del disco in modo
sequenziale. Il settore 0 è il primo settore della prima traccia sul cilindro più esterno. La mappatura
procede nell’ordine lungo quella traccia, poi sul resto delle traccie in quel cilindro e infine sul resto
dei cilindri dal più esterno al più interno.
Con il progresso della tecnologia il numero di settori per traccia è andato aumentando, e
oggi le zone esterne di un disco hanno in genere centinaia di settori per traccia. I dischi posono
avere decine di migliaia di cilindri.
Schedulazione degli accessi ad disco
Una delle responsabilità del sistema operativo è di usare l’hardware in modo efficiente. Per le unità
a disco ciò si traduce nella necessità di avere un rapido tempo di accesso e una buona larghezza di
banda.
Il tempo di accesso ha due componenti principali: il tempo di ricerca (seek time) e il tempo
che impiega il braccio del disco a muovere le testine fino al cilindro contenente il settore desiderato:
la latenza di rotazione è il tempo aggiuntivo speso in attesa che il disco faccia ruotare il settore
desiderato fino alla testina di lettura.
La larghezza di banda (bandwith) del disco è data dal numero totale di byte trasferiti
diviso per il tempo totale che intercorre tra la richiesta di servizio e il completamento dell’ultimo
trasferimento. E’ possibile migliorare sia il tempo di accesso sia la larghezza di banda
programmando opportunamente l’ordine delle azioni di risposta alle richieste di I/O su disco.
Ogni volta che un processo richiede una operazione di I/O verso o dal disco, effettua una chiamata
al sistema operativo che indica:
 Se l’operazione è di ingresso o di uscita
 L’indirizzo nel disco richiesto per il trasferimento
 L’indirizzo di memoria centrale per il trasferimento
 Il numero di byte da trasferire
Se l’unità a disco e il controller sono disponibili, la richiesta può essere espletata immediatamente,
altrimenti viene posta nella coda delle richieste pendenti per quell’unità.
Schedulazione FCFS
La forma più semplice di schedulazione di disco è ovviamente l’algoritmo “primo arrivato primo
servito (First Come First Served) . Questo algoritmo è equo, ma generalmente non offre il servizio
più veloce. Consideriamo ad esempio una coda del disco con richieste di I/O ai blocchi sui cilindri
98,183,37,122,14,124,65,67
Struttura dei dischi
pag. 1 di 5
Se la testina è inizialmente al cilindro 53, si muoverà prima dal 53 al 98 e così via per un
movimento totale di 640 cilindri.
0
14
37
53
65 67
98
122 124
183
Schedulazione con l’algoritmo FCFS
Schedulazione SSTF
Sembra ragionevole servire tutte le richieste vicine alla posizione corrente della testina prima di
spostare lontano la testina per servirne altre. Questa assunzione è la base per l’algoritmo “prima il
più breve tempo di ricerca” (Shortest-Seek-Time-First).
Con l’esempio di prima questo metodo provoca un movimento totale di solo 236 cilindri
Struttura dei dischi
pag. 2 di 5
0
14
37
53
65 67
98
122 124
183
Schedulazione con l’algoritmo SSTF
La schedulazione SSTF può causare la starvation di alcune richieste. Supponiamo di avere due
richieste accodate per i cilindri 14 e 186 e che, mentre stiamo ervendo la richiesta per il 14, arrivi
una nuova richiesta vicino al cilindro 14. Questa nuova richiesta sarà la successiva a essere servita
facendo aspettare la richiesta al cilindro 186. Mentre questa richiesta viene servita, potrebbe
arrivare un’altra richiesta vicino al 14. In teoria, potrebbe arrivare un flusso continuo di richieste
una vicina all’altra, causando un’attesa indefinita per la richiesta al cilindro 186.
Amministrazione del disco
Configurazione
Prima che un disco magnetico possa memorizzare i dati deve essere diviso in settori (tipicamente
512 byte di dati) che il controller del disco può leggere e scrivere. Questa formattazione a basso
livello o formattazione fisica avviene normalmente in fabbrica come parte del processo di
produzione.
Per memorizzare i file su disco, il sistema operativo ha bisogno di registrare su disco le proprie
strutture dati; ciò viene fatto in due passi. Il primo passo consiste nel partizionare il disco in uno o
più gruppi di cilindri. Il sistema operativo può trattare ogni partizione come se fosse un disco
separato. Il secondo passo e la formattazione logica , che provvede alla creazione di un file system;
In questa fase il sistema operativo immagazzina sul disco le strutture dati iniziali del file system(ad
esempio una FAT16, FA32, o gli inode) e una directory inizialmente vuota.
(cluster composti da più settori)
Il blocco di avvio
Affinché un calcolatore cominci a funzionare, ad esempio quando viene acceso o riavviato, deve
avere un programma iniziale da eseguire. Questo programma di inizializzazione (bootstrap) è
Struttura dei dischi
pag. 3 di 5
usualmente semplice. Esso inizializza tutte le funzioni del sistema per poi avviare il sistema
operativo. Nella maggior parte dei computer, il bootstrap è immagazzinato in una porzione di
memoria centrale a sola lettura (Read Only Memory ROM). E’ una posizione conveniente perché la
ROM non è volatile (non perde le informazioni a computer spento) ed essendo a sola lettura non
può venire infettata da virus informatici. Il problema è che sarebbe problematico modificare questo
codice di bootstrap. Per questo motivo, la maggior parte dei sistemi memorizza un piccolo
programma caricatore nella ROM di avvio del sistema, il cui unico compito è di prendere un
programma di avvio completo dal disco. Il programma di avvio completo può essere facilmente
modificato: una nuova versione viene semplicemente scritta su disco. Il programma di bootstrap
completo è immagazzinato in una partizione di avvio situata in una posizione fissa su disco ( i
blocchi di boot). Un disco che ha una partizione per il caricamento del sistema è denominato disco
di boot o di sistema. Il programma di avvio completo è più sofisticato del caricatore posto nella
ROM di avvio; può caricare l’intero sistema operativo. MS-DOS usa un blocco di 512 byte per il
proprio programma di caricamento del sistema.
settore 0
blocco di avvio
settore 1
FAT
directory radice
blocchi di dati
sottodirectory
Struttura dei dischi
pag. 4 di 5
La struttura RAID
Le unità a disco hanno continuato a diventare sempre più piccole e meno costose, al punto che ora
è economicamente fattibile collegare un gran numero di dischi a un computer.
Avere tanti dischi in un sistema offre l’opportunità di migliorare la velocità alla quale i dati
possono essere letti o scritti, se i dischi funzionano in parallelo. Inoltre questa configurazione offre
la possibilità per migliorare l’affidabilità di archiviazione dei dati, perché in dischi multipli possono
essere memorizzate informazioni ridondanti, di modo che il guasto di un disco non porti alla perdita
dei dati. Ai fini delle prestazioni e dell’affidabilità è comunemente usata una varietà di tecniche di
organizzazione dei dischi, chiamate nel loro insieme array ridondanti di dischi a basso costo
(RAID).
Miglioramento dell’affidabilità
La probabilità che un certo disco in un insieme di N dischi non funzioni è molto più alta rispetto
alla probabilità che uno specifico disco singolo non funzioni. Si supponga che il tempo medio al
guasto di un singolo disco sia di 100 000 ore; allora il tempo medio di guasto di un certo disco in
un array di 100 dischi sarà 100 000/ 100= 1000 ore o 41,66 giorni che è un tempo breve.
(La probabilità di guasto è il prodotto delle probabilità di ogni singolo disco)
Se memorizziamo solo una copia di dati, il guasto di un disco provocherebbe la facile perdita di
dati. La soluzione al problema consiste nell’introdurre la ridondanza con la quale si memorizzano
informazioni supplementari. Il metodo più semplice (ma più costoso) per introdurre la ridondanza è
duplicare ogni disco con una tecnica denominata mirroring. Un disco logico consiste quindi in due
dischi fisici e ogni scrittura viene effettuata su entrambi i dischi: se uno dei due viene a mancare, i
dati potranno essere letti dall’altro. I dati saranno persi solo se il secondo disco si guasta prima che
il disco n° 1 venga sostituito. Se il tempo medio al guasto di un singolo disco è 100 000 ore e il
tempo medio di riparazione è 10 ore, il tempo medio alla perdita dei dati di un sistema di dischi
in mirror (supponendo che i guasti sui due dischi siano indipendenti) è 100 0002/ 2 x 10 = 57000
anni ! Bisogna tenere presente, però, che il presupposto di indipendenza dei guasti dei dischi non è
valido.
Livelli di RAID







RAID livello 0 : si riferisce agli array di dischi senza alcuna ridondanza
RAID livello 1: si riferisce al mirroring di dischi
RAID livello 2: organizzazione a codice di correzione di errore
RAID livello 3: organizzazone con parità bit per bit
RAID livello 4: organizzazione con parità a livello di blocco
RAID livello 5: parità distribuita a livello di blocco
RAID livello 6: ridondanza P+Q
RAID0 può essere utilizzato per migliorare le prestazioni in un ambiente con alto tasso di I/O.
Se vengono utilizzati 4 dischi per un RAID0, ne servono 8 uguali per un RAID1. Negli altri casi si
utilizzano tecniche di rilevazione di errore e correzione. In RAID2 il numero di dischi ridondanti è
proporzionale al logaritmo del numero di dischi di dati.
Struttura dei dischi
pag. 5 di 5
Scarica