Apri il menu principale

Memoria di massa

(Reindirizzamento da Memoria secondaria)
Confronto di dimensioni tra diverse memorie di massa rimovibili.

Una memoria di massa, in informatica, è un tipo di memoria che raccoglie tipicamente grandi quantità di dati rispetto alla memoria primaria e in maniera non volatile cioè permanente almeno fino alla volontà dell'utente.[1]

Cenni storiciModifica

Le prime memorie di massa furono delle unità a nastro magnetico sul quale immagazzinavano dati: ebbero una certa diffusione a partire dalla seconda metà del XX secolo, come le bobine a nastro utilizzate nei primi mainframe fino alle audiocassette diffuse a partire dagli anni 1970 nei primi modelli di home computers; essi utilizzavano un piccolo controller per convertire i segnali analogici in dati digitali. L'interfaccia utilizzata erano dei cavi audio standard, i più diffusi erano quali muniti di o connettore Jack da 3,5 mm e di connettore RCA. Questo tipo di sistema è stato utilizzato sull'Apple II e sul TRS-80 Color Computer, così come su molti sistemi bus di tipo S-100.

A partire dagli anni 1980 il progresso tecnologico ha portato all'utilizzo di numerosi altri dispositivi, come il CD, il DVD fino ad arrivare alle chiavi USB negli anni 2000 in grado di immagazzinare diversi gigabytes di dati.

DescrizioneModifica

Nell'architettura di von Neumann, quando ci si riferisce alla memoria, s'intende la memoria principale, che è quella sulla quale il calcolatore carica i processi (programmi in esecuzione) ed i dati ad essi relativi (si parla appunto di memoria di lavoro), mentre si considera la memoria secondaria alla stregua di un dispositivo d'ingresso (input) e/o di uscita (output) dei dati (periferica di I/O).

La caratteristica principale della memoria di massa è la "non volatilità", ovvero la possibilità di memorizzare permanentemente i dati (per questo si parla anche di memoria di archiviazione). Inoltre, la memoria di massa ha un costo inferiore rispetto alla memoria principale, per questo verrebbe da chiedersi perché nei moderni computer non si utilizzi solo memoria secondaria (tramite il meccanismo della memoria virtuale). La ragione risiede nella velocità di accesso ai dati: i tempi medi di accesso alla memoria principale sono dell'ordine delle centinaia di nanosecondi (ns, 10-9), contro i millisecondi (ms, 10-3) delle memorie di archiviazione, che, quindi, necessitano di tempi di accesso maggiori di ben 6 ordini di grandezza.

La tecnologia, infatti, è riuscita nel corso degli anni a rendere le memorie ROM e RAM sempre più veloci, ma nulla ha potuto contro i limiti "fisici" dei dischi, che hanno bisogno di aspettare che la testina si posizioni sulla traccia giusta (tempo di ricerca o seek-time) e sul blocco giusto (latenza di rotazione o latency-time).

Quindi la memoria di massa è un dispositivo che consente la registrazione, la conservazione e la rilettura dei dati. Può essere di tipo fisso o rimovibile, installato all'interno del computer o esterno e collegato ad esso tramite cavo opportuno o tramite la rete locale, di sola lettura o di lettura/scrittura.ll

OperazioniModifica

I dati sono riuniti in entità omogenee dette file. Le memorie di massa sono gestite da un componente fondamentale dei sistemi operativi, il file system: ogni sistema operativo ne utilizza uno diverso ed i più famosi sono FAT32 ed NTFS di casa Microsoft, ext2-ext3 dei sistemi Linux e HFS+ di MacOS. Fondamentalmente l'organizzazione delle memorie di massa è gestita tramite strutture dati collegate che possono essere liste o, molto più frequentemente, B-Alberi, oppure tabelle di indirizzamento (dette TOC, dall'inglese Table Of Contents).

Ricerca e accesso ai datiModifica

Nel caso di file system a TOC la ricerca è piuttosto semplice e rapida (si pensi ad un magazzino con un registro che indichi lo scaffale che contiene la merce desiderata), mentre nel caso di struttura collegata la ricerca può risultare onerosa (utilizzando una lista collegata, nel caso peggiore si deve scorrere l'intera lista, ma, nel caso di Albero B+, alla peggio si ha un tempo di ricerca logaritmico).

Memorizzazione dei datiModifica

La memorizzazione dei dati, nel caso di memorie non riscrivibili (per esempio CD-R) avviene progressivamente, riempiendo lo spazio in ordine progressivo di indirizzo (nell'esempio del CD-R, se abbiamo 700 MB di spazio, ma ne utilizziamo 658, le tracce vuote saranno quelle più esterne, come è facilmente visibile, guardando la superficie del CD). Per quanto riguarda le memorie riscrivibili (per esempio gli hard disk) il data-storage viene eseguito fondamentalmente secondo tre possibili criteri:

  1. first-fit: si cerca la prima locazione di memoria abbastanza grande da ospitare il file da salvare
  2. best-fit: si cerca la più piccola locazione di memoria abbastanza grande da ospitare il file da salvare
  3. worst-fit: si cerca la più grande locazione di memoria disponibile (può sembrare, a prima vista, un assurdo, ma ciò spesso permette che la parziale occupazione della locazione lasci abbastanza spazio libero per ospitare un altro file).

Statisticamente si può osservare che i primi due metodi sono più efficienti del terzo

Cancellazione dei datiModifica

La cancellazione dei dati (nei supporti che lo consentono, ovvero quelli riscrivibili) viene spesso intesa dai sistemi operativi come la semplice rimozione del record relativo al file in questione dalla TOC o dall'albero B+, il che rende possibile tramite apposite utility il ripristino di dati cancellati, in quanto, questi risiedono di fatto in memoria, finché la necessità di spazio sul quale memorizzare nuovi dati spingerà il sistema operativo a scrivere nella locazione che l'utente, cancellando il vecchio file, ha di fatto indicato come vuota.

Recentemente Apple, nel suo macOS ha incluso un tool di cancellazione sicura (utility simili si trovano facilmente in rete per tutti i sistemi operativi) che riscrive più volte dati casuali sul file da cancellare.

Frammentazione interna ed esternaModifica

 Lo stesso argomento in dettaglio: Frammentazione (informatica).

Da notare che tutti i file system commerciali utilizzano la tecnica del file paging: un supporto di memoria di massa viene suddiviso in pagine o cluster (la cui misura in genere varia da 512 byte a 4 KiB), per ottimizzare le operazioni di lettura e scrittura. Questo però può causare uno spreco di memoria, soprattutto quando le pagine sono di grandi dimensioni (si pensi ad un file di 5 KiB ed un file system con cluster di 4 KB: ne sono necessari 2 per un totale di 8 KiB ed uno spreco di ben 3KiB: in questo caso si parla di frammentazione interna.

Invece, per frammentazione esterna s'intende il fenomeno per il quale tra due file si viene a creare uno spazio vuoto troppo piccolo per memorizzarvi un altro file: questo fenomeno è tipico dei file system con cluster troppo piccoli.

NoteModifica

Voci correlateModifica

Controllo di autoritàGND (DE4277196-1
  Portale Informatica: accedi alle voci di Wikipedia che trattano di informatica