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