Sei sulla pagina 1di 10

I Compendi OpenSource

di Giacomo Marciani

Teoria, Formulario e Suggerimenti Pratici

Sistemi Operativi

Memoria secondaria

La memoria secondaria rappresenta il livello logico pi basso del le system1 , ed costituita da dispositivi di memoria non volatile 2 di grande capacit e costo contenuto. Le tecnologie che realizzano i dispositivi di memoria secondaria dieriscono per velocit, capacit e costo, e sono: disco magnetico, nastro magnetico, disco ottico e disco allo stato solido. Il disco magnetico formato da un gruppo di piatti in rotazione solidale, ognuno dei quali ricoperto da uno strato di materiale ferromagnetico. La supercie di un piatto logicamente suddivisa in tracce circolari a loro volta suddivise in settori; un cilindro l'insieme delle tracce equidistanti dall'asse di rotazione. Un braccio mobile, detto braccio del disco, posizionato sopra la supercie di ogni piatto, e alla sua estremit posta la testina di lettura/scrittura, una bobina elettromagnetica sospesa su un cuscino d'aria sottilissimo3 . Il blocco logico l'unit di trasferimento del disco magnetico4 . Il disco magnetico un dispositivo di tipo Constant Angular Velocity (CAV)5 . L'accesso al disco magnetico, e in generale alla memoria secondaria, pu avvenire secondo due modelli di connessione :
Disco magnetico

l'accesso avviene attraverso porte locali di I/O, a cui connesso il bus di I/O, cio l'insieme di li che connette il disco magnetico al calcolatore7 . Lungo di esso avviene il trasferimento dei dati, il quale eseguito dall'adattatore e dal controllore del disco, rispettivamente all'estremit relativa al calcolatore e a quella del disco. Il calcolatore inserisce un comando nell'adattatore, il quale lo invia tramite il
accesso locale

6:

1 Il

le system logicamente composto da:

interfaccia strutture dati e algoritmi che realizzano l'interfaccia dispositivi di memoria secondaria e terziaria.
2 anche detta memoria persistente. 3 il cuscino d'aria dell'ordine dei micron:

esiste dunque il pericolo del crollo della testina, ovvero l'urto fra testina e supercie capace di danneggiare irreparabilmente il disco. 4 la dimensione di un blocco logico tipicamente di 512 byte, ma pu essere modicata attraverso la formattazione a basso livello. 5 Un generico supporto a disco pu essere di due tipi: velocit lineare costante (CLV, constant linear velocity ): uniforme densit di bit per traccia; la lunghezza delle tracce,e quindi il numero di settori che le compongono, aumentano allontanandosi dal centro di rotazione, mentre la velocit di rotazione diminuisce. E' impiegata in CD e DVD. velocit angolare costante (CAV, constant angular velocity ): non uniforme densit di bit per traccia, che diminuisce allontanandosi dal centro di rotazione. E' impiegata nei dischi magnetici. integrated drive electronics), ATA (advanced technology attachment), SATA (serial ATA), FC (ber channel) e SCSI.
6 anche detto memoria secondaria connessa alla macchina. 7 esistono diverse tipologie di bus di I/O: EIDE (enanched

bus di I/O al controllore del disco, il quale porta a termine il comando pilotando l'elettromeccanica del disco.

accesso remoto

l'accesso avviene attraverso una rete di trasmissione dati IP e un le system distribuito, la cui interfaccia RPC realizzata per mezzo dei protocolli TCP e UDP.

8:

Prestazioni Le prestazioni del sistema dipendono in modo essenziale dalle prestazioni della memoria secondaria, in quanto trattasi dei dispositivi di memorizzazione pi lenti. Le prestazioni del disco magnetico si misurano in termini di ampiezza di banda e tempo di accesso. Il tempo di accesso Taccesso dato dunque da queste quattro tempistiche, a cui si aggiunge l'eventuale tempo di attesa Taltri processi dovuto all'accesso al disco da parte di altri processi.

Taccesso = Tposizionamento + Trotazione + Ttransf erimento + Tcontrollo + Taltri processi

(1)

1. 2.

cilindro giusto.

tempo di posizionamento

: impiegato dalle testine per posizionarsi sul

: necessario anch il settore desiderato si posizioni sotto la giusta testina; corrisponde al tempo impiegato per compiere mezzo giro ad un dato RPM 9 .
tempo di rotazione

Trotazione =

0, 5 RP M

(2)

3.

: impiegato dalla testina per trasferire tutti i bit del settore; questo tempo in funzione della dimensione del settore, e della velocit di trasferimento.
tempo di trasferimento

Ttrasf erimento =

dimsettore velocita `trasf erimento

(3)

4.

: introdotto dai circuiti elettronici che gestiscono ed interfacciano il disco.


tempo di controllo

Per migliorare le prestazioni del disco magnetico occorre mitigare la latenza dovuta al tempo di posizionamento. Il tempo di posizionamento pu essere minimizzato attraverso le seguenti soluzioni:
pi testine su ogni piatto10 .
coda di I/O

e scheduling

del disco

8 anche detto memoria secondaria connessa alla rete. 9 ovvero Route-Per-Minut, cio Giri-Per-Minuto (GPM ). 10 questa soluzione hardware riduce anche la latenza di rotazione.

organizzazione dei dati su disco in modo da minimizzare gli spostamenti

delle testine.

utilizzare la RAM come soluzione


Scheduling del disco

caching per il disco magnetico

Lo scheduling del disco denisce l'ordine di evasione delle richiesta nella coda di I/O, al ne di minimizzare il tempo medio di accesso e massimizzare l'ampiezza di banda, grazie all'impiego di uno dei seguenti algoritmi di scheduling, che trattiamo prendendo in esame la seguente sequenza di richieste11
98, 183, 37, 122, 14, 124, 65, 67
ordine d'arrivo

(FCFS12 ): evade la richiesta in base all'ordine d'arrivo. E' intrinsecamente equo, ma non massimizza la velocit di servizio, poich non tiene conto del tempo di posizionamento.
98, 183, 37, 122, 14, 124, 65, 67

(SSTF13 ): evade la richiesta con il minimo tempo di posizionamento rispetto alla posizione corrente delle testine; bisogna dunque conoscere la posizione corrente della testina. Minimizza il tempo di posizionamento, ma non equo e pu causare starvation, in quanto un usso continuo di richieste vicine potrebbe causare l'attesa indenita di una richiesta lontana.
brevit

(53)
scansione

65, 67, 37, 14, 98, 122, 124, 183

(SCAN)14 : la testina parte da un estremo del disco e procede unidirezionalmente evadendo le richieste mentre attraversa i cilindri; giunta all'estremo opposto inverte la direzione e la procedura continua; bisogna dunque conoscere la posizione corrente della testina, e la direzione di spostamento. Minimizza il tempo di posizionamento, ma pu comportare movimenti inutili del braccio ed inoltre non equo in quanto, assumendo una distribuzione uniforme delle richieste, quando la testina, le richieste inevase all'estremo opposto saranno invecchiate e comunque servite per ultime; questo difetto rende estremamente variabile il tempo medio d'attesa.
(53 0) 37, 14, 65, 67, 98, 122, 124, 183

scansione circolare

(C-SCAN15 ): variante dello SCAN che tratta il disco come una lista circolare; una volta giunta unidirezionalmente ad

11 i numeri indicano il numero di cilindro della richiesta. Il cilindro 0 l'estremo radiale, mentre il cilindro 199 l'estremo assiale. 12 ovvero First-Come-First-Served. 13 ovvero Shortest-Seek-Time-First. 14 anche detto algoritmo dell'ascensore. 15 ovvero Circular-Scan.

un estremo evadendo le richieste dei cilindri visitati, la testina riparte dall'estremo opposto e ripete la procedura; bisogna dunque conoscere la posizione corrente della testina, e la direzione di spostamento. Minimizza il tempo di posizionamento, pi equo dello SCAN e rende meno variabile il tempo d'attesa, ma pu comportare movimenti inutili del braccio.
(53)
LOOK

65, 67, 98, 122, 124, 183, 14, 37

e C-LOOK16 : sono le rispettive varianti dello SCAN e C-SCAN. La testina si sposta solo se nella direzione dello spostamento ci sono richieste da servire, dopodich inverte la direzione senza giungere necessariamente alle estremit del disco.
(53 0) (53) 37, 14, 65, 67, 98, 122, 124, 183 65, 67, 98, 122, 124, 183, 14, 37

La scelta dell'algoritmo di scheduling non pu basarsi sulla determinazione di un ordine ottimo di servizio, in quanto la computazione richiesta eccederebbe il miglioramento delle prestazioni. Dobbiamo dunque tener conto della geometria sica del disco e dei seguenti fattori: metodo di allocazione dei le : l'allocazione contigua genera richieste vicine, mentre la allocazione concatenata o indicizzata potrebbe richiedere maggiori spostamenti della testina.
posizione di directory e blocchi indice : per essere usato, un le deve prima

essere aperto, quindi va tenuto conto dei necessari accessi alle directory.

a ridurre i movimenti della testina, soprattutto quando si tratti di richieste di lettura. Lo scheduling del disco pu essere realizzato all'interno dei controllori del disco: in tal caso il sistema operativo invier al controllore la coda di I/O, delegandogli lo scheduling. Tuttavia, dovendo tener conto di altri vincoli relativi all'ordine di servizio, il sistema operativo pu scegliere di accollarsi la responsabilit dello scheduling del disco, presentando al controllore una richiesta alla volta.
Memoria tampone del disco:

memoria centrale come cache di directory e blocchi indice : pu contribuire

I principi di localit permettono di migliorare le prestazioni del disco magnetico attraverso le seguenti tecniche di caching

track cache

: memorizza il contenuto di tracce o cilindri del disco recentemente acceduti, disaccoppiando le velocit di trasferimento dell'interfaccia del controllore da quella delle testine; contenuta nel controllore del disco. In presenza di command queueing, permette di soddisfare una lettura utilizzando il contenuto derivante da una precedente scrittura, senza bisogno di accedere al disco.
Circular-Look.

16 ovvero

: memorizza il contenuto di blocchi recentemente acceduti, disaccoppiando le velocit di programmazione degli accessi al disco dall'eettivo trasferimento dei dati.
buffer cache page cache

: memorizza i dati dei le acceduti una pagina alla volta, disaccoppiando le velocit di programmazione degli accessi al le mappato in memoria dall'eettivo trasferimento dei dati su disco; prevista come servizio del sistema operativo in ambiente paginato con memoria virtuale.
dentry cache inode cache

: memorizza i pathname recentemente risolti.

duti.

: memorizza le informazioni sugli inode recentemente acce-

Alcuni sistemi operativi eliminano la buer cache, impiegando la page cache unificata, soluzione in cui la page cache viene utilizzata per tutti i tipi di accesso, aancata spesso dalla dentry cache e dalla inode cache. Altri sistemi operativi preferiscono impiegare sia la page cache che la buer cache, rispettivamente per i le mappati in memoria e per tutti gli altri tipi di accesso. L'integrazione dei due tipi di caching tuttavia aggiunge un overhead al sistema operativo, e rende necessario un protocollo di coerenza dei dati sulle due cache. Il caching del disco semplica la realizzazione dell'I/O asincrono, e permette l'ottimizzazione dell'accesso sequenziale attraverso le seguenti tecniche:

: il trasferimento di dati di un le viene avviato prima delle eettive richieste da parte dei processi. Le letture sono evase rapidamente, in quanto i dati sono gi presenti nella memoria tampone. Qualora non venisse rispettato l'accesso sequenziale17 , comporterebbe uno spreco di memoria centrale e di banda sul bus.
lettura anticipata

precedentemente.

rilascio all'indietro

: ad ogni nuova richiesta, rilascia i dati richiesti

Per utilizzare un disco come contenitore di dati occorre renderlo capace di memorizzare dati, e imprimergli le modalit di accesso ad essi. La formattazione fisica18 il processo che permette ad un disco magnetico tabula rasa di memorizzare i dati, dividendolo in settori, e riempiendo ogni settore con una speciale struttura dati19 , tipicamente consistente di un'intestazione, un'area per i dati e una coda. L'intestazione e la coda sono informazioni usate dal controllore del disco: come il numero di settore, ed il codice per la correzione degli errori 20 .
Formattazione

17 gli algoritmi di lettura anticipata si basano su regole euristiche per determinare se si tratti o meno di accesso sequenziale. 18 anche detta formattazione di basso livello ; generalmente fa parte del processo produttivo. 19 la formattazione sica in settori pi grandi implica meno settori per ogni traccia, quindi meno intestazioni e code, e quindi maggiore spazio per i dati veri e propri. 20 anche detto, error-correcting code (ECC).

Il partizionamento il processo in cui il sistema operativo suddivide il disco in uno o pi gruppi di cilindri, detti appunto partizioni, che il sistema operativo pu trattare come unit a se stanti. La formattazione logica il processo in cui il sistema operativo registra nel disco le strutture dati relative al le system Alcuni sistemi operativi permettono di impiegare una partizione del disco come raw disk, ovvero un ampio vettore sequenziale di blocchi logici privi di qualsiasi struttura dati relativa al le system, sul quale operare secondo il relativo raw I/O, il quale permette l'accesso secondo l'esatta posizione nel disco di ogni informazione, scavalcando tutti i servizi del le system.
Blocco d'avviamento Il programma di avviamento inizializza il sistema in tutti i suoi aspetti: trovato il kernel e caricatolo in memoria, salta a un indirizzo iniziale per avviare il sistema operativo. Il programma di avviamento risiede nei blocchi di avviamento del disco di sistema21 , ed caricato dal 22 bootstrap loader, tipicamente memorizzato in una ROM

Un settore difettoso un blocco logico i cui dati vanno perduti a causa di malfunzionamente strutturalmente intrinsechi nella mobilit a bassa tolleranza del disco. Esistono diverse soluzioni per ovviare al problema dei blocchi difettosi:
Settori difettosi

la formattazione sica mette da parte dei settori di riserva trasparenti al sistema operativo; il controllore sostiuisce logicamente un settore difettoso con uno dei settori di riserva inutilizzati, registrando il reindirizzamento. Ogni tentativo di accesso al blocco difettoso viene tradotto dal controllore in un accesso al corrispondente settore di riserva. Per non inciare l'ottimizzazione dello scheduling del disco, i settori di riserva vengono accantonati in ogni cilindro.
sector sparing

23 :

dato un settore difettoso d e un settore di riserva disponibile r > d, vengono traslati di un posto in avanti tutti i settori dal d al r 1.
sector slipping

24 :

La swap area una zona del disco dedicata allo swapping, quindi a mantenere una copia delle pagine non contenute nella memoria sica25 . La dimensione della swap area va stimata per eccesso26 , in quanto il suo esaurimento pu causare la terminazione forzata dei processi nanche all'arresto completo
Swap area

la CPU pu cominciare l'esecuzione, ed essendo di sola lettura non pu essere contaminata da virus. 23 ovvero accantonamento dei settori, o anche detto sector forwarding. 24 ovvero traslazione dei settori. 25 alcuni sistemi operativi vi memorizzano l'intera immagine del generico processo presente in memoria sica. 26 Linux ha sempre suggerito di raddoppiare la swap area rispetto alla memoria sica.

21 anche detto disco di avviamento : il disco che contiene i blocchi di avviamento. 22 read-only memory : non richiede inizializzazione, ha un indirizzo inziale sso dal quale

del sistema. La swap area pu essere collocata all'interno del normale le system, o in una partizione dedicata non formattata. la prima soluzione poco eciente27 , la seconda poco essibile28 . Alcuni sistemi operativi permettono l'uso di swap area multiple, ovvero residenti in dischi distinti al ne di distribuire su pi dischi il carico della paginazione e dell'avvicendamento dei processi, e swap area ibride, ovvero collocabili sia su le system che su partizioni dedicate non formattae. In Linux, la swap area ibrida29 e adoperata per lo stoccaggio delle pagine di memoria anonima e/o condivisa. La memoria stabile un modello di memoria in cui le informazioni non vanno mai perse. Si realizza tramite la replica dei dati in pi dispositivi di memorizzazione30 con modalit di guasto indipendenti, coordinando l'aggiornamento dei dati in modo che un'eventuale interruzione non ne causi l'incoerenza. Per mantenere elevate le prestazioni nei casi di I/O sincrono, i dispositivi di memorizzazione vengono supportati dal caching non volatile 31 . Un'operazione di scrittura pu avere uno dei seguenti esiti: successo, fallimento parziale e fallimento totale. Il successo si verica una volta replicati tutti i dati. In caso di ripristino, se un blocco contiene un errore, se ne sostituisce il contenuto con la successiva replica corretta; se di due blocchi nessuno contiene un errore, ma i dati non combaciano, si sostituisce il contenuto del primo blocco con quello del secondo. Questa procedura di ripristino assicura che gli unici due esiti possibili di una scrittura in memoria stabile siano il successo o il fallimento totale.
Memoria stabile

Un sistema RAID32 una batteria33 di dischi gestita coordinatamente da un unico controllore. Un sistema RAID aumenta la velocit di trasferimento e l'adabilit34 , rispettivamente grazie alla parallelizzazione 35 degli accessi e alla ridondanza . 36 Il mirroring una tecnica di realizzazione della ridondanza, in cui ogni
Sistemi RAID

27 l'avvicendamento implica l'attraversamento della struttura delle directory, e l'utilizzo dispendioso degli algoritmi di allocazione nel le system; inoltre la frammentazione esterna pu aumentare gravosamente i tempi di avvicendamento. 28 la frammentazione interna pu aumentare, ma ha vita breve essendo la swap area inizializzata ad ogni avvio. Per cambiare la dimensione della swap area deve essere ripartizionato il disco. 29 si distinguono infatti swap le e swap area. 30 per quanto all'aumentare delle repliche diminuisca la probabilit di malfunzionamenti, tipicamente vengono impiegate due sole copie. 31 ad esempio memorie cache NVRAM (non-volatile-RAM ). 32 ovvero Redundant Array of Indipendent (o Inexpensive) Disk. 33 una batteria RAID un'unit indipendente dotata di un controllore, una cache ed un insieme di dischi autonomi. 34 ovvero la tolleranza ai guasti. 35 anche detta memorizzazione ridondante, la memorizzazione di informazioni normalmente non necessarie, ma utilizzabili per il ripristino dei dati in caso di guasto. 36 anche detto shadowing, o copiatura speculare.

disco logico consiste di due o pi dischi sici. Ogni scrittura si eettua su tutti i dischi sici e la lettura parallelizzabile. Il mirroring pu basarsi su replica sincrona o replica asincrona. Ipotizzando l'indipendenza tra i guasti, questa tecnica ore un'alta adabilit, ma ad un alto costo. Il problema degli improvvisi cali di tensione viene ovviato dalla scrittura sequenziale e/o dall'aggiunta di una cache NVRAM 37 . Lo striping38 una tecnica di realizzazione della parallelizzazione degli accessi tramite la distribuzione dei dati su pi dischi. Lo striping a livello dei bit distribuisce i bit di ciascun byte su pi dischi39 . Lo striping a livello dei blocchi distribuisce i blocchi di ciascun le su pi dischi40 . Lo striping con ECC una tecnica di realizzazione della ridondanza e della parallelizzazione degli accessi, in cui i dati vengono distribuiti su pi dischi, e in ognuna di queste distribuzioni presente un ECC, che sia un bit o un blocco, realizzato dal controllo della parit, dal codice Hamming o dal codice ReedSolomon. I livelli RAID sono schemi che realizzano le diverse tecniche di ridondanza, trovando un compromesso tra prestazioni e costi.
RAID 0: striping a livello dei blocchi, senza ridondanza. Usato nelle

applicazioni ad alte prestazioni in cui le perdite dei dati non sono critiche. abilit e un rapido ripristino.

RAID 1: mirroring. Usato nelle applicazioni che richiedono un'alta ad RAID 241 : striping a livello dei bit con ECC basato su codice di Hamming. RAID 342 : striping a livello dei bit con ECC basato su controllo di parit. RAID 443 : striping a livello dei blocchi con ECC a blocchi basato su

controllo di parit.

RAID 544 : striping a livello dei blocchi con ECC a blocchi intercalati

basato su controllo di parit. Usato in applicazioni che richiedono un'alta adabilit, ed una grande capacit.

RAID 645 : striping a livello dei blocchi con due ECC a blocchi intercalati

basati su due codici di correzione d'errore dierenti. Attualmente poco usato, ore comunque maggiore adabilit di RAID 5.

esimo. 41 anche detto 42 anche detto 43 anche detto 44 anche detto 45 anche detto

37 non-volatile-RAM. 38 anche detta sezionamento. 39 in una batteria RAID a 8 dischi, si scrive l'i-esimo bit di ciascun byte nel disco i-esimo. 40 in una batteria RAID a n dischi, si scrive l'i-esimo blocco di un le nel disco (i mod n) + 1-

organizzazione con ECC. organizzazione con bit di parit intercalati. organizzazione con blocchi di parit intercalati. organizzazione con blocchi di parit intercalati distribuita. organizzazione a ridondanza duale, o anche organizzazione P+Q.

RAID annidato

: combinazione di livelli RAID. RAID 0+1 prevede uno striping e un successivo mirroring. RAID 1+0 prevede un mirroring e un successivo striping. Usati nelle applicazioni che richiedono un'alta adabilit, elevate prestazioni e non necessitano di grande capacit.

Un sistema RAID presenta spesso un hot spare, ovvero un set di dischi di scorta che subentrano in sostituzione di dischi guasti. Le importanti decisioni riguardanti sistemi RAID sono il numero dei dischi di ogni batteria, il numero di bit da proteggere tramite ECC e la capacit degli eventuali hot spare. Il sistema RAID pu essere realizzato:
via SW: all'interno del kernel o a livello dei programmi di sistema. via HW: batteria RAID, o opportuno adattatore. via HW+SW: dispositivi di virtualizzazione del disco a livello di intercon-

nessione SAN.

10