Memoria secondaria e terziaria
•
•
•
•
•
•
•
•
•
Struttura del disco
Scheduling del disco
Gestione dell’unità a disco
Gestione dello spazio di swap
Affidabilità dei dischi
Realizzazione di memoria stabile
Dispositivi di memoria terziaria
Compiti del Sistema Operativo
Prestazioni
Sistemi Operativi
13.1
Struttura del disco
•
•
I dischi vengono indirizzati come grandi array monodimensionali
di blocchi logici, dove per blocco logico si intende la minima unità
di trasferimento.
L’array di blocchi logici viene mappato sequenzialmente nei
settori del disco.
– Il settore 0 è il primo settore della prima traccia del 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.
Sistemi Operativi
13.2
Scheduling del disco
•
•
•
•
•
Il sistema operativo è responsabile dell’uso efficiente dell’hardware.
Per i dischi questo significa garantire tempi di accesso contenuti e
ampiezze di banda maggiori.
Il tempo di accesso ha due componenti principali:
– Tempo di seek – è il tempo impiegato per spostare le testine al
cilindro che contiene il settore desiderato.
– Latenza di rotazione – è l’ulteriore tempo necessario per
attendere che il disco ruoti fino a portare il settore desiderato
sotto alla testina.
Per migliorare le prestazioni si può intervenire solo sul tempo di
seek, e si cerca quindi di minimizzarlo.
Seek time  distanza di spostamento
La larghezza di banda del disco è il numero totale di byte trasferiti,
diviso per il tempo trascorso fra la prima richiesta del servizio e il
completamento dell’ultimo trasferimento.
Sistemi Operativi
13.3
Scheduling FCFS
FCFS (First Come First Served): si ha un movimento totale di 640 cilindri.
Sistemi Operativi
13.4
Scheduling SSTF
•
•
•
Seleziona la richiesta con il minor tempo di seek a partire dalla posizoine corrente.
SSTF è una forma di SJF; può causare l’attesa indefinita per qualche richiesta.
Si ha un movimento totale di 236 cilindri.
Sistemi Operativi
13.5
Scheduling SCAN
•
•
Il braccio della testina parte da un estremo del disco, e si sposta all’altro estremo,
servendo sequenzialmente le richieste fino all’arrivo all’altro estremo dove inverte
l’ordine di servizio. E’ chiamato anche algoritmo dell’ascensore.
Si ha un movimento totale di 208 cilindri.
Sistemi Operativi
13.6
Scheduling C–SCAN
•
•
•
Si ha un tempo di attesa più uniforme rispetto a SCAN.
La testina si muove da un estremo del disco all’altro. Quando raggiunge la fine
ritorna subito all’inizio del disco e riparte.
Considera i cilindri come una lista circolare.
Sistemi Operativi
13.7
Scheduling C–LOOK
•
•
Versione ottimizzata di C-SCAN
Il braccio arriva fino all’ultima richiesta in una direzione e poi
inverte la direzione senza arrivare al termine del disco.
Sistemi Operativi
13.8
Scelta di un algoritmo di scheduling
•
•
•
•
•
•
SSTF è comune ed ha un comportamento “naturale”.
SCAN e C-SCAN hanno migliori prestazioni per sistemi con
un grosso carico di lavoro per il disco (minor probabilità di
blocco indefinito).
Le prestazioni dipendono dal numero e dal tipo di richieste.
Le richieste di servizio al disco possono essere influenzate dal
metodo di allocazionedei file.
L’algoritmo di scheduling del disco dovrebbe essere scritto
come un modulo separato del SO, permettendo di
rimpiazzarlo con un algoritmo diverso.
Sia SSTF che LOOK sono scelte ragionevoli per un algoritmo
di default.
Sistemi Operativi
13.9
Gestione del disco
•
•
•
•
Formattazione di basso livello, o formattazione fisica — Si
divide il disco in settori che possono essere letti e scritti dal
controllore del disco.
Per poter impiegare un disco per memorizzare i file, il sistema
operativo deve comunque tenere le proprie strutture dati sul
disco.
– Si partiziona il disco in uno o più gruppi di cilindri.
– Formattazione logica o “creazione di un file system”.
Il blocco di boot inizializza il sistema.
– Il bootstrap è memorizzato in ROM.
– C’è un programma bootstrap loader.
Si impiegano metodi come l’accantonamento di settori per
gestire blocchi difettosi.
Sistemi Operativi
13.10
Gestione dello spazio di swap
•
•
•
Spazio di swap: la memoria virtuale impiega lo spazio su disco come
un’estensione della memoria centrale.
Lo spazio di swap può essere ricavato all’interno del normale file system o,
più comunemente, si può trovare in una partizione di disco separata.
Esempio: Gestione dello spazio di swap di UNIX 4.3BSD
– Alloca lo spazio di swap all’avvio del processo; si riserva spazio
sufficiente per il segmento di testo e il segmento di dati.
– Il kernel impiega due mappe di swap per ogni processo per tener
traccia dell’uso dello spazio di swap.
– La mappa per il segmento di testo indicizza blocchi di dimensione
512K.
– La mappa per il segmento di dati ha dimensione fissa, ma contiene
indirizzi relativi a blocchi di dimensioni variabili. Ogni nuovo blocco
aggiunto è grande il doppio del precedente.
Sistemi Operativi
13.11
Affidabilità dei dischi
•
•
•
Miglioramento delle prestazioni dei dischi: implica l’impiego di
dischi multipli cooperanti.
Il sezionamento del disco tratta gruppi di dischi come una
singola unità di memorizzazione. Ogni blocco di dati è
suddiviso in diversi sotto-blocchi memorizzati in dischi distinti.
Lo schema RAID (Redundant Array of Independent Disks)
migliora le prestazioni e l’affidabilità memorizzando dati
ridondanti.
– Mirroring o shadowing mantengono dei duplicati di
ciascun disco.
– Blocchi a parità interfogliati hanno meno ridondanza,
impiegando un disco per i blocchi di parità degli altri.
Sistemi Operativi
13.12
Realizzazione della memoria stabile
•
•
Lo schema di write-ahead log richiede una memorizzazione
stabile (le informazioni non vanno mai perse).
Per realizzare una memoria stabile:
– Si replicano le informazioni in più di un mezzo di
memorizzazione non volatile con modalità di
malfunzionamento indipendenti.
– Si aggiornano le informazioni in modo controllato, per
assicurare che si possano recuperare i dati dopo ogni
malfunzionamento durante il trasferimento o anche
durante l’eventuale recupero dei dati.
Sistemi Operativi
13.13
Dispositivi di memorizzazione terziaria
•
•
•
•
•
La caratteristica di base della memorizzazione terziaria è il basso costo;
generalmente, viene effettuata con mezzi rimovibili, es. floppy disk e CD-ROM.
Floppy disk — sottile disco flessibile ricoperto di materiale magnetico, memorizza
circa 1 MB, tecnologia simile è impiegata per dischi da più di 1 GB. Veloci quasi
quanto i dischi rigidi, ma esposti a maggiori rischi di danneggiamento.
Dischi magneto-ottici memorizzano i dati su un piatto rigido ricoperto di
materiale magnetico.
– Si legge e si scrive per mezzo di laser, (ma l’informazione è “magnetica”).
– La testina è distante dalla superficie, (protetta con materiale plastico).
I dischi ottici non impiegano il magnetismo, ma impiegano speciali materiali
alterati dalla luce laser.
I dischi WORM (Write Once, Read Many Times) possono essere scritti
solo una volta. Sono costituiti da una pellicola sottile di alluminio fra due
piatti di vetro o plastica. Per scrivere un bit col laser si crea un piccolo foro
nell’alluminio. Durano a lungo e sono affidabili.
Sistemi Operativi
13.14
Nastri
•
•
In confronto ai dischi, i nastri sono meno costosi e contengono più
dati, ma la modalità di accesso (tipicamente sequenziale) è molto
più lenta.
Il nastro rappresenta un mezzo economico quando non sia
richiesto accesso casuale, ad esempio per copie di backup.
•
Grosse installazioni tipicamente impiegano dispositivi per il cambio
di nastri (jukebox).
• Le operazioni di base per un nastro sono diverse da quelle
per un disco.
•
•
locate posiziona il nastro ad uno specifico blocco logico
(corrisponde a seek).
I lettori di nastri sono dispositivi “append-only”; il cambiamento
di un blocco nel mezzo del nastro cancella effettivamente tutto
ciò che si trova dopo il blocco.
Sistemi Operativi
13.15
Compiti del SO
•
•
•
•
I compiti principali del SO sono la gestione dei dispositivi fisici
e la presentazione di una macchina virtuale astratta alle
applicazioni utente.
La maggior parte dei SO gestisce i dischi rimovibili
praticamente come i dischi fissi: una nuova cartuccia viene
formattata, e un file system vuoto viene generato sul disco.
I nastri sono presentati come un mezzo di memorizzazione a
basso livello, e le applicazioni non aprono un file, ma l’intero
nastro.
In genere l’unità a nastro è riservata per un’applicazione alla
volta.
Sistemi Operativi
13.16
Nomi di file
•
•
•
Fornire dei nomi ai file su mezzi rimovibili è particolarmente
difficile, soprattutto quando si vogliono scrivere dati su un
computer, per poi rileggerli su un altro computer.
I SO contemporanei in genere lasciano non risolto il problema
per i mezzi rimovibili, delegando all’applicazione il compito di
decidere come accedere a ed interpretare i dati.
Alcuni tipi di dischi rimovibili (es. CD) so tanto standardizzati
che tutti i computer li usano nello stesso modo.
Sistemi Operativi
13.17
Gestione gerarchica della memoria
•
•
•
HSM (Hierarchical Storage Management) estende la gerarchia di
memoria oltre la memoria centrale e l’archiviazione secondaria
incorporando la memoria terziaria: in genere viene implementata
per mezzo di jukebox di nastri o dischi rimovibili.
Normalmente si incorpora l’archiviazione terziaria estendendo il file
system.
– File piccoli ed usati frequentemente restano sul disco.
– File grandi, vecchi ed inattivi sono memorizzati nel jukebox.
HSM viene comunemente realizzata in centri con supercomputer e
altre grandi installazioni che hanno enormi quantità di dati.
Sistemi Operativi
13.18
Velocità – 1
•
•
I due componenti principali per le prestazioni della memoria
terziaria sono la larghezza di banda e la latenza.
La larghezza di banda viene misurata in byte al secondo.
– Larghezza di banda sostenuta: è la velocità media di
trasferimento nel caso di una rilevante quantità di dati.
# di byte/tempo di trasferimento.
– Larghezza di banda effettiva: si ottiene considerando il
tempo di I/O globale, includendo seek o locate, e il
cambiamento di cartuccia. E’ la velocità di
trasferimento fornita effettivamente dall’unità.
Sistemi Operativi
13.19
Velocità – 2
•
•
•
Latenza di accesso: tempo richiesto per localizzare i dati.
– Tempo di accesso per un disco: spostamento del braccio al
cilindro selezionato e attesa per la latenza di rotazione; < 35
millisecondi.
– L’accesso su un nastro richiede l’avvolgimento delle bobine
del nastro fino a che il blocco selezionato raggiunge la testina
del nastro; decine o centinaia di secondi.
– Generalmente un accesso casuale su nastro è migliaia di
volte più lento di un accesso casuale su disco.
Il basso costo della memorizzazione terziaria è dovuto al fatto che
si impiegano molte cartucce economiche con pochi lettori costosi.
Un archivio di supporti rimovibili è più utile per la memorizzazione
di dati usati poco frequentemente, dato che solo poche richieste
all’ora possono essere normalmente soddisfatte.
Sistemi Operativi
13.20
Affidabilità e costi
•
•
•
•
Un disco fisso è in genere più affidabile di un disco rimovibile
o di un nastro.
Un disco ottico è in genere più affidabile di un disco
magnetico o di un nastro.
La memoria principale è molto più costosa della memoria
secondaria e terziaria.
Il costo per megabyte della memorizzazione su hard disk è
competitivo con quello del nastro magnetico se si impiega
solo un nastro per lettore.
Sistemi Operativi
13.21
Scarica

ch13