Sistemi Operativi 13.1
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.2
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.3
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.4
Scheduling FCFS
FCFS (First Come First Served): si ha un movimento totale di 640 cilindri.
Sistemi Operativi 13.5
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.6
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.7
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.8
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.9
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.10
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.11
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.12
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.13
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.14
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.15
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.16
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.17
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.18
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.19
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.20
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.21
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.
Top Related