Memoria Secondaria e Terziaria
Memoria secondaria e terziaria Struttura dei dispositivi di memoria Struttura dei dischi Connessione dei dischi Scheduling del disco Gestione dell’unità a disco Gestione dell’area di swap Struttura RAID Realizzazione della memoria stabile Memoria terziaria
Struttura dei dispositivi di memorizzazione 1 I dischi magnetici rappresentano il mezzo fondamentale per la memorizzazione di massa nei moderni sistemi di calcolo I dischi ruotano ad una velocità compresa tra i 60 e i 200 giri al secondo La velocità di trasferimento è la velocità con cui i dati fluiscono dall’unità a disco al calcolatore Il tempo di posizionamento è il tempo necessario a spostare il braccio del disco in corrispondenza del cilindro desiderato (seek time) più il tempo necessario affinché il settore desiderato si porti sotto la testina (latenza di rotazione) Il crollo della testina, normalmente sospesa su un cuscino d’aria di pochi micron, corrisponde all’impatto della stessa sulla superficie del disco Molto male… di solito comporta la necessità di sostituire l’unità a disco
Struttura dei dispositivi di memorizzazione 2 I dischi possono essere rimovibili L’unità a disco è connessa al calcolatore per mezzo del bus di I/O Diversi tipi: EIDE (Enhanced Integrated Drive Electronics), ATA (Advanced Technology Attachment), SATA, USB (Universal Serial Bus), Fibre Channel, SCSI (Small Computer System Interface) Il trasferimento di dati in un bus è eseguito da speciali unità di elaborazione, dette controllori: gli adattatori sono i controllori posti all’estremità del bus relativa al calcolatore, i controllori dei dischi sono incorporati in ciascuna unità a disco
Schema funzionale di un disco
Struttura dei dispositivi di memorizzazione 3 Nastri magnetici Sono stati i primi supporti di memorizzazione secondaria (Relativamente) permanenti e capaci di memorizzare grandi quantità di dati Tempo d’accesso molto elevato Tempo d’accesso diretto circa 1000 volte superiore rispetto all’accesso a disco Principalmente utilizzati per backup, registrazione di dati poco usati e trasferimento di informazioni tra diversi sistemi di calcolo Il nastro è avvolto in bobine e scorre su una testina di lettura/scrittura: raggiunta la posizione desiderata, velocità di trasferimento paragonabile a quella delle unità a disco Capacità compresa fra 20 e 200GB Tecnologie diffuse sono 4mm, 8mm, 19mm, LTO2 e SDLT
Struttura del disco I dischi vengono indirizzati come giganteschi vettori monodimensionali di blocchi logici, dove il blocco logico rappresenta 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
Connessione dei dischi 1 Alla memoria secondaria connessa alla macchina si accede dalle porte locali di I/O attraverso i bus di I/O L’architettura SCSI consente di connettere al bus fino a 16 dispositivi per mezzo di un unico cavo, comunemente suddivisi in una scheda con il controllore inserita nella macchina (SCSI initiator ) e in 15 dispositivi di memorizzazione (SCSI target ) Ciascun target può permettere l’accesso ad al più 8 unità logiche (dischi attaccati al controllore di dispositivo)
Connessione dei dischi 2 L’FC è un’architettura seriale ad alta velocità che ha due varianti: Struttura a commutazione con uno spazio di indirizzi a 24 bit la base per le Storage Area Network (SAN), nelle quali molti host possono accedere a molti dispositivi di memorizzazione Struttura ad arbitrated loop (FCAL), che può accedere fino a 126 dispositivi (unità e controllori)
NetworkAttached Storage 1 Un dispositivo di memoria secondaria connesso alla rete (NetworkAttached storage, NAS) è un sistema di memoria al quale si accede in modo remoto per mezzo di una rete di trasmissione dati (piuttosto che tramite bus di I/O) NFS e CIFS sono i protocolli comuni rispettivamente per sistemi UNIX e Windows I client accedono alla memoria connessa alla rete tramite un’interfaccia RPC tra host e dispositivi di memoria iSCSI è il protocollo più recente per la memoria connessa alla rete Sfrutta il protocollo IP della rete per il trasporto del protocollo SCSI
NetworkAttached Storage 2 Memoria secondaria connessa alla rete
Storage Area Network Una rete di memoria secondaria, SAN, è una rete privata, tra i server e le unità di memoria secondaria, separata da LAN e WAN, che collegano i server ai client
Scheduling del disco 1 Il SO è responsabile dell’uso efficiente dell’hardware: per i dischi ciò significa garantire tempi di accesso contenuti e ampiezze di banda elevate Il tempo di accesso al disco si può scindere in due componenti principali: Tempo di ricerca (seek time ) è il tempo impiegato per spostare la testina sul cilindro che contiene il settore desiderato Latenza di rotazione (rotational latency ) è il tempo necessario perché il disco ruoti fino a portare il settore desiderato sotto alla testina Per migliorare le prestazioni si può intervenire solo sul tempo di ricerca e si tenta quindi di minimizzarlo Seek time distanza di spostamento
Scheduling del disco 2 L’ampiezza di banda del disco è il numero totale di byte trasferiti, diviso per il tempo trascorso fra la prima richiesta e il completamento dell’ultimo trasferimento Quando un processo deve effettuare un’operazione di I/O relativa ad un’unità a disco, effettua una chiamata al SO La richiesta di servizio contiene: Specifica del tipo di operazione (immissione/emissione di dati) Indirizzo su disco relativamente al quale effettuare il trasferimento Indirizzo nella memoria relativamente al quale effettuare il trasferimento Numero di byte da trasferire
Scheduling del disco 3 Una richiesta di accesso al disco può venire soddisfatta immediatamente se unità a disco e controller sono disponibili; altrimenti la richiesta deve essere aggiunta alla coda delle richieste inevase per quella unità Il SO ha l’opportunità di scegliere quale delle richieste inevase servire per prima: uso di un algoritmo di scheduling del disco Gli algoritmi di scheduling del disco verranno testati sulla coda di richieste per i cilindri (0199): 98, 183, 37, 122, 14, 124, 65, 67 La testina dell’unità a disco è inizialmente posizionata sul cilindro 53
FCFS FCFS First Come First Served è un algoritmo intrinsecamente equo Si produce un movimento totale della testina pari a 640 cilindri
SSTF Seleziona la richiesta con il minor tempo di seek a partire dalla posizione corrente della testina SSTF Shortest Seek Time First è una forma di SJF; può causare l’attesa indefinita di alcune richieste Si ha un movimento totale pari a 236 cilindri SSTF non è ottimo: spostandosi dal cilindro 53 al 37, e poi al 14, prima di invertire la marcia per servire le altre richieste, si riduce la distanza a 208 cilindri
SCAN Il braccio della testina si muove da un estremo all’altro del disco, servendo sequenzialmente le richieste; giunto ad un estremo inverte la direzione di marcia e, conseguentemente, l’ordine di servizio È chiamato anche algoritmo dell’ascensore Si ha un movimento totale pari a 236 cilindri
CSCAN Garantisce un tempo di attesa più uniforme rispetto a SCAN La testina si muove da un estremo all’altro del disco servendo sequenzialmente le richieste Quando raggiunge l’ultimo cilindro ritorna immediatamente all’inizio del disco, senza servire richieste durante il viaggio di ritorno Considera i cilindri come organizzati secondo una lista circolare, con l’ultimo cilindro adiacente al primo
CSCAN (Cont.)
CLOOK Versione ottimizzata (e normalmente implementata) di CSCAN Il braccio serve l’ultima richiesta in una direzione e poi inverte la direzione senza arrivare al termine del disco
Scelta di un algoritmo di scheduling SSTF è comune ed ha un comportamento “naturale ” LOOK e CLOOK forniscono prestazioni migliori in sistemi che utilizzano intensamente le unità a disco (minor probabilità di attesa indefinita) Le prestazioni dipendono dal numero e dal tipo di richieste Le richieste di I/O per l’unità a disco possono essere influenzate dal metodo di allocazione dei file L’algoritmo di scheduling del disco dovrebbe rappresentare un modulo separato del SO, facile da rimpiazzare da altro algoritmo qualora mutassero le caratteristiche del sistema di calcolo Sia SSTF che LOOK rappresentano scelte ragionevoli per un’implementazione standard
Gestione dell’unità a disco Formattazione di basso livello o fisica Si suddivide il disco in settori che possono essere letti e scritti dal controllore del disco Salvataggio su disco di una struttura dati per settore (intestazione/coda) Per poter impiegare un disco per memorizzare i file, il SO deve mantenere 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 contiene il codice per inizializzare il sistema Il bootstrap loader è memorizzato in ROM Il caricamento del sistema avviene grazie al bootstrap Si impiega l’accantonamento dei settori per la gestione dei blocchi difettosi
Configurazione del disco in MSDOS
Avviamento dal disco in Windows 2000 Master Boot Record
Gestione dell’area di swap 1 Area di swap la memoria virtuale impiega lo spazio su disco come un’estensione della memoria centrale L’obiettivo principale nella progettazione e realizzazione dell’area di swap è di fornire la migliore produttività per il sistema di memoria virtuale Lo spazio di swap può essere ricavato all’interno del normale file system o, più comunemente, si può trovare in una partizione separata del disco
Gestione dell’area di swap 2 4.3BSD UNIX Alloca lo spazio di swap all’avvio del processo; si riserva spazio sufficiente per il segmento di testo (il programma) ed il segmento dei 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 512K La mappa per il segmento dei dati ha dimensione fissa, ma contiene indirizzi relativi a blocchi di dimensioni variabili; ogni nuovo blocco allocato è grande il doppio del precedente
Gestione dell’area di swap in 4.3BSD Mappa di swap per il segmento di testo Mappa di swap per il segmento dei dati
Gestione dell’area di swap 3 Solaris 2 Alloca lo spazio di swap al momento in cui una pagina viene spostata fuori dalla memoria fisica, non all’atto della sua creazione Linux Usata solo per la memoria anonima e per aree condivise Permette di istituire più aree di swap, ognuna formata da moduli di 4KB, detti slot delle pagine Ad ogni area di swap corrisponde la relativa mappa, un array di contatori interi ciascuno dei quali corrisponde ad uno slot Se un contatore è posto a 0, la pagina che gli corrisponde è disponibile Valori diversi da 0 indicano slot allocati (il valore corrisponde al numero di processi che condividono quella pagina)
Gestione dell’area di swap in LINUX
Strutture RAID 1 RAID, Redundant Array of Independent Disks l’affidabilità del sistema di memorizzazione viene garantita tramite la ridondanza Inoltre… le tecniche per aumentare la velocità di accesso al disco implicano l’uso di più dischi cooperanti Il sezionamento del disco o interfogliatura tratta un gruppo di dischi come un’unica unità di memorizzazione: Ogni blocco di dati è suddiviso in sottoblocchi memorizzati su dischi distinti Il tempo di trasferimento per rotazioni sincronizzate diminuisce proporzionalmente al numero dei dischi nella batteria
Strutture RAID 2 Gli schemi RAID migliorano prestazioni ed affidabilità del sistema memorizzando dati ridondanti: Il mirroring o shadowing conserva duplicati di ciascun disco La struttura a blocchi di parità interfogliati utilizza un minor grado di ridondanza, mantenendo buone caratteristiche di affidabilità
Strutture RAID 3 Alcuni livelli RAID RAID (0 + 1)
Realizzazione della memoria stabile Per realizzare una memoria stabile: Si replicano le informazioni in più dispositivi di memoria non volatile con modalità di malfunzionamento indipendenti Si aggiornano le informazioni in modo controllato, per assicurare il ripristino dei dati dopo ogni malfunzionamento, anche se avvenuto durante il trasferimento o durante l’eventuale recupero degli stessi da un malfunzionamento precedente
Dispositivi di memorizzazione terziaria La caratteristica fondamentale della memorizzazione terziaria è il basso costo Generalmente, viene effettuata su mezzi rimovibili, ad esempio CDROM, DVD, supporti magnetici, memorie flash con interfaccia USB
Dischi rimovibili 1 Dischi floppy dischi flessibili e sottili ricoperti di materiale magnetico e sigillati all’interno di un involucro di plastica I floppy hanno capacità pari a 1.4 MB; tuttavia una tecnologia analoga viene adottata per dischi rimovibili con capacità superiore al GB I dischi magnetici rimovibili possono raggiungere velocità di trasferimento simili a quelle dei dischi fissi, ma corrono maggiori rischi di danneggiamento
Dischi rimovibili 2 Nei dischi magnetoottici i dati sono registrati su un disco ricoperto di materiale magnetico La testina di un disco magnetoottico è sospesa ad una distanza dalla superficie del disco molto maggiore rispetto alla testina di un disco magnetico e il materiale magnetico è protetto da uno spesso strato di plastica o di vetro, resistente ai crolli della testina Si utilizza una testina laser per amplificare un campo magnetico diffuso e debole e permettergli la memorizzazione di un bit La luce laser viene impiegata anche in fase di lettura (effetto Kerr) I dischi ottici non utilizzano il magnetismo; sono realizzati con materiali speciali che si alterano quando colpiti da un raggio laser
Dischi WORM Sui dischi di lettura/scrittura i dati possono essere modificati più e più volte I dischi WORM (Write Once, Read Many Times) si possono scrivere una sola volta La tecnologia originale per dischi WORM consiste nell’inserire una pellicola di alluminio tra due piatti di plastica o di vetro Per scrivere un bit, l’unità usa un raggio laser per praticare un piccolo foro nell’alluminio: l’informazione può venir distrutta ma non alterata Sono durevoli e affidabili I dischi a sola lettura, come CDROM e DVD, sono commercializzati con un contenuto preregistrato
Nastri Un nastro può contenere più dati di un disco, ed il costo di memorizzazione a bit è inferiore, ma l’accesso diretto è molto più lento Il nastro è un mezzo conveniente per effettuare copie di backup e per la memorizzazione di enormi moli di dati Le grandi stazioni di registrazione a nastri usano di solito meccanismi automatici per la movimentazione dei nastri dalle unità agli appositi contenitori dell’archivio Un file non attualmente utilizzato, residente su disco, può essere archiviato su nastro in maniera economicamente vantaggiosa, salvo recuperarlo e reinstallarlo su disco quando necessario
Compiti del sistema operativo I compiti principali del SO sono la gestione dei dispositivi fisici e la presentazione di una macchina virtuale astratta per le applicazioni utente Il SO realizza due astrazioni concernenti i dischi: Un dispositivo di basso livello, costituito da un array di blocchi di dati Il file system, in relazione al quale il SO accoda e organizza le richieste provenienti da diverse applicazioni
Interfaccia per le applicazioni 1 La maggior parte dei SO gestisce i dischi rimovibili come i dischi fissi: un nuovo supporto viene formattato e un file system vuoto viene generato sul disco I nastri rappresentano invece un mezzo di memorizzazione di 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
Interfaccia per le applicazioni 2 Poiché il SO non fornisce i servizi connessi al file system, è l’applicazione che deve stabilire come usare l’array di blocchi Dato che ogni applicazione stabilisce i propri criteri di organizzazione del nastro, un nastro contenente dati può essere generalmente utilizzato solo dal programma che lo ha creato
Unità a nastro Le operazioni di base relative ad un’unità a nastro differiscono sostanzialmente da quelle effettuate sui dischi L’operazione locate posiziona il nastro in corrispondenza di uno specifico blocco logico (non su un’intera traccia: corrisponde a seek, ma è più “stringente”) L’operazione read position riporta il numero del blocco logico su cui è posizionata la testina L’operazione space realizza spostamenti relativi (alla posizione corrente) Le unità a disco sono device “appendonly”: l’aggiornamento di un blocco posto in mezzo al nastro comporta la cancellazione di tutto ciò che segue tale blocco Un simbolo di fine nastro, EOT, segnala l’ultimo blocco registrato
Nomi dei file L’assegnazione dei nomi dei file su mezzi di memorizzazione rimovibili è particolarmente critica quando si scrivono dati su un supporto rimovibile su un certo calcolatore per poi riutilizzare lo stesso mezzo in un altro calcolatore I SO attuali lasciano irrisolto il problema dei nomi per i mezzi rimovibili, confidando nel fatto che le applicazioni o gli utenti forniranno una chiave di lettura e di interpretazione dei dati Alcuni mezzi rimovibili sono talmente standardizzati (ad es., i CD) da essere utilizzati allo stesso modo da tutti i calcolatori
Gestione gerarchica della memoria Un sistema di gestione gerarchica della memoria estende la gerarchia di memorizzazione oltre la memoria centrale e secondaria fino ad includere i dispositivi di memoria terziaria, di solito realizzati da un jukebox di nastri o dischi rimovibili La tecnica più comune per estendere la gerarchia di memorizzazione fino alla memoria terziaria consiste nell’ampliare il file system I file piccoli ed usati di frequente rimangono sui dischi magnetici I file vecchi, ingombranti e raramente necessari si archiviano nel jukebox L’HSM (Hierarchical Storage Management ) si applica per i supercalcolatori per gestire grandi quantità di dati usati sporadicamente o periodicamente
Prestazioni 1 La velocità della memoria terziaria è definita da due fattori: ampiezza di banda e latenza L’ampiezza di banda si misura in byte al secondo Ampiezza di banda sostenuta velocità media di trasferimento per grossi volumi di dati (rapporto fra il numero di byte e il tempo di trasferimento) Velocità di trasferimento nel momento in cui i dati stanno effettivamente fluendo Ampiezza di banda effettiva numero di byte trasferiti rapportato al tempo di I/O totale, inclusi il tempo richiesto da una seek o da una locate e l’attesa dovuta al cambio di dischi o nastri dal jukebox Velocità di trasferimento complessiva fornita dall’unità
Prestazioni 2 Latenza di accesso tempo necessario a localizzare un dato Tempo di accesso a disco posizionamento del braccio della testina sul cilindro selezionato ed attesa di latenza rotazionale (< 35 millisecondi) Un accesso diretto a nastro richiede lo svolgimento o il riavvolgimento della bobina finché il blocco richiesto raggiunge la testina (decine o centinaia di secondi) In generale, l’accesso diretto a nastro è oltre mille volte più lento dell’accesso diretto a disco
Prestazioni 3 Il basso costo della memoria terziaria deriva dall’avere un gran numero di supporti (economici) che condividono poche (costose) unità di lettura/scrittura Un archivio di supporti rimovibili è tuttavia adatto alla registrazione di dati usati raramente, perché il numero di richieste di I/O soddisfacibili per ogni ora d’uso è relativamente basso
Affidabilità I dischi fissi sono più affidabili dei dischi rimovibili e dei nastri, così come è superiore l’affidabilità dei CDROM rispetto ai supporti rimovibili magnetici L’impatto della testina su un settore del disco fisso generalmente distrugge dati; in situazione analoga, i supporti ottici, o i nastri magnetici, mostrano maggior affidabilità
Costi La memoria principale è un supporto molto più costoso del disco Il costo dello spazio disco è superiore a quello dei supporti magnetici a nastro (costi comparabili solo se si usa un unico nastro per ogni unità) Il supporto a nastro più economico e il disco più economico hanno capacità paragonabili negli anni La memoria terziaria riduce i costi solo se il numero di supporti di memorizzazione supera di molto il numerò di unità di accesso Nella gerarchia delle memorie (dalla memoria primaria alla terziaria) si va da supporti più piccoli e costosi, ma rapidamente accessibili, verso supporti grandi e poco costosi, con basse prestazioni
Costo al MB per DRAM, 19812004
Costo al MB per dischi magnetici, 19812004
Costo al MB per unità a nastro, 19842004
Esercizi Esercizio 1 Esercizio 2 Un floppy ha 40 cilindri. Un’operazione di ricerca richiede 6msec per lo spostamento tra un cilindro e l’altro, la latenza rotazionale media è di 10msec ed il tempo di trasferimento è di 25msec per blocco. Quanto tempo è necessario per leggere un file costituito da 20 blocchi e memorizzato in modo tale che blocchi logicamente contigui nel file distino mediamente 13 cilindri l’uno dall’altro sul dischetto? Quanto tempo è necessario per leggere un file con 100 blocchi mediamente distanti 2 cilindri? Esercizio 2 Al driver di un disco arrivano, nell’ordine, richieste per i cilindri 10,22,20,2,40,6,38. Uno spostamento da un traccia a quella adiacente richiede 6msec. Si stabilisca quanto tempo è necessario per servire le richieste con FCFS, SSTF, CLOOK (crescente). Si assuma, per tutti i casi, che il braccio si trovi inizialmente posizionato sul cilindro 10.
Esercizi (Cont.) Esercizio 3 Esercizio 4 Un disco possiede 5000 cilindri, numerati da 0 a 4999. Il driver del disco sta attualmente servendo una richiesta al cilindro 153. La coda di richieste in attesa, in ordine FIFO, è: 85,1470,913,1774,948,130. A partire dalla posizione corrente, qual è la distanza totale, indicata in cilindri, che deve percorrere il braccio del disco per soddisfare tutte le richieste in attesa, relativamente a FCFS, SSTF, SCAN (decrescente), CSCAN e CLOOK? Esercizio 4 Al driver di un disco arrivano, nell’ordine, richieste per i cilindri 38,23,59,3,63,22,2,11,45, Si utilizzino FCFS, SSTF e SCAN (decrescente) e si stabilisca la distanza totale (in cilindri) percorsa dal braccio del disco per soddisfare tutte le richieste in attesa. Si assuma per tutti i casi, che il braccio si trovi inizialmente posizionato sul cilindro 15.