La memoria secondaria (di massa)

Abbiamo visto nei paragrafi precedenti come il funzionamento di un elaboratore dipenda da due attività:

  • capacità di memorizzare programmi e dati;

  • l'elaborazione dei dati secondo le istruzioni dei programmi.

La memoria principale fornisce la prima attività, il processore la seconda; il problema, tuttavia, è che:

  • la memoria principale non può essere troppo grande a causa del suo costo elevato e quindi non si può pensare di poter tenere in tale memoria una notevole quantità di programmi e di dati (alcuni dei quali magari non di utilità frequente e immediata);

  • se anche fosse sufficientemente grande, la memoria principale ha il problema di essere volatile, ossia mantiene i dati solo quando alimentata da corrente elettrica. Nella memoria principale non si possono effettuare memorizzazioni permanenti di dati e programmi.

Queste sono le ragioni fondamentali che hanno portato a introdurre due diversi tipi di memoria nei moderni elaboratori:

  • Una memoria principale (centrale) veloce, volatile e di dimensioni non enormi e in grado di contenere di volta in volta il programma (o i programmi) in uso e i dati utilizzati da tale programma (programmi).

  • Una memoria secondaria, più lenta e meno costosa, con capacità di memorizzazione maggiore e in grado di memorizzare i dati in forma permanente (ossia fino a quando non vengono volutamente rimossi o modificati) senza necessità di alimentazione. Tale memoria dovrà essere utilizzata per mantenere tutti i possibili programmi che possono essere utilizzati sull'elaboratore e tutti i dati.

L'idea è che tutte le informazioni vengano mantenute nella memora secondaria (detta anche "memoria di massa" proprio per tali ragioni). Quando si vuole utilizzare un certo programma o un insieme di dati (che saranno quindi memorizzati in file all'interno della memoria di massa), questi dovranno essere copiati dalla memoria di massa a quella principale. Si parla spesso di tale attività come quella di "caricamento" di un programma o di un insieme di dati in memoria principale: tale operazione di caricamento viene fatta dal sistema operativo su richiesta di utilizzo da parte di un utente. Consideriamo un esempio concreto: un utente dispone sul suo elaboratore tanto di un programma per l'elaborazione dei testi quanto di uno per l'elaborazione di immagini; inoltre egli avrà vati testi e immagini già costruiti o in fase di costruzione. Sia i programmi che i dati saranno memorizzati in modo permanente su qualche supporto di memoria di massa. Quando l'utente vuole utilizzare il programma di elaborazione dei testi, egli dovrà inviare un comando per il caricamento di tale programma in memoria principale. A questo punto il programma può essere mandato in esecuzione e l'utente può effettuare modifiche sul suo testo. Al termine dell'elaborazione il testo potrà nuovamente essere salvato in modo permanente in memoria secondaria. Più precisamente la memoria secondaria contiene un file per ognuno dei programmi usabili sull'elaboratore (il contenuto del file sono le istruzioni del programma).

Poiché la memoria secondaria deve avere capacità di memorizzazione permanente dei dati non è possibile utilizzare tecnologie di tipo elettrico. Vengono invece utilizzate tecnologie che sono comuni anche ad altri campi in cui è necessaria la memorizzazione permanente di informazioni:

  • tecnologie basate sul magnetismo, in dischi e nastri magnetici (questi ultimi, ad esempio, sono, dal punto di vista tecnologico, del tutto simili a quelli usati nella registrazione audio/video);

  • tecnologie basate su incisione e uso di raggio laser, come compact disk - o dischi ottici - (usati anch'essi per la registrazione audio/video).

Nel primo caso si sfrutta l'esistenza, in natura, di sostanze che possono essere magnetizzate e il fatto che tale magnetizzazione può avere due tipi di polarizzazione: positiva (ad esempio, corrispondente all'orientamento Nord-Sud di un ago magnetico) e negativa (orientamento opposto). Tale magnetizzazione viene mantenuta in modo permanente fino a quando non viene modificata per effetto di un agente esterno (ad esempio, con una calamita). Si può pensare che i due diversi tipi di magnetizzazione corrispondano alle due unità fondamentali di informazione (BIT) e si può utilizzare una piccola componente magnetica per rappresentare un bit di informazione e insiemi di componenti (o componenti di grandi dimensioni decomposte in molte più piccole) per rappresentare una qualunque aggregazione di bit e quindi una qualunque informazione.

Le tecnologie del compact disk (CD) o dischi ottici sono invece completamente differenti e sono basate sull'uso di raggi laser. Il laser è un particolare tipo di raggio luminoso che ha la caratteristica di essere estremamente focalizzato e può essere emesso in fasci di dimensioni molto ridotte. Tale raggio viene riflesso in modo diverso da diverse superfici. In particolare si può pensare di utilizzare superfici che possono avere piccolissimi forellini: ogni unità di superfice può essere forata o meno e questo corrisponde a diversi tipi di informazione elementare. L'informazione su una unità di superficie può essere letta inviando un raggio laser e vedendo come esso risulti riflesso. Aggregazioni di informazioni possono essere ottenute dividendo una superficie di grandi dimensioni in molte unità elementari ognuna delle quali rappresenta un singolo bit. Poiché il raggio laser può essere estremamente piccolo, tale suddivisione può essere fatta utilizzando aree di superficie molto piccole per ogni unità di informazione. Si noti che mentre la lettura di un disco ottico può essere effettuata in modo molto semplice usando un raggio laser, la sua scrittura comporta operazioni di modifica fisica (fare forellini di dimensioni impercettibili) ed è pertanto difficile e costosa (per tali ragioni, come vedremo, la maggior parte delle unità di memoria secondaria basate su dischi ottici e disponibili sui comuni elaboratori sono di sola lettura, ossia le informazioni possono essere lette ma non scritte).

Riassumiamo brevemente alcune caratteristiche comuni a tutti i dispositivi di memoria di massa:

  • Le memorie di massa sono molto più lente rispetto alla memoria principale; in altri termini, i tempi di accesso per leggere e scrivere informazioni sono molto più alti di quelli della memoria principale. Tale lentezza è in gran parte legata al fatto che in tali dispositivi entrano pesantemente in gioco componenti di tipo meccanico (ad esempio, si pensi al motore per mantenere in rotazione un disco o per avvolgere/svolgere un nastro) che sono di molti ordini di grandezza più lente di quelle di tipo elettronico usate nelle memorie principali.

  • Le memorie di massa hanno capacità di memorizzazione (dimensioni molto maggiori di quelle delle tipiche memorie principali. Supporti di memoria secondaria in grado di mantenere 1 Terabyte (e più) di informazione sono oggi comuni.

  • Le memorie di massa non sono direttamente usabili dal processore per l'elaborazione; in altri termini, il programma in esecuzione deve essere in memoria (o almeno, in ogni istante, la parte in esecuzione). Ciò significa che le informazioni in uso devono essere trasferite dalla memoria secondaria a quella principale ogni volta che servono (e ritrasferirle quando non servono più).

  • La memoria principale ha accesso diretto; alcuni tipi di memoria di massa consentono l'accesso diretto; altri solo l'accesso sequenziale.

  • Mentre la memoria principale consente di indirizzare il singolo byte di informazione e quindi ogni operazione può leggere o scrivere un byte, nelle memorie di massa le informazioni sono organizzate in blocchi di dimensione maggiore di un byte (di solito da 1Kbyte in su) e i blocchi sono le minime unità di informazione indirizzabili (ogni operazione legge o scrive un blocco). Vi sono almeno due ragioni per tale scelta. In primo luogo, in questo modo si possono ridurre le dimensioni degli indirizzi: essendo le memorie di massa molto grandi si avrebbero troppi indirizzi (e quindi servirebbero troppi bit per rappresentarli) nel casi di indirizzamento al singolo byte. In secondo luogo si deve tener conto della lentezza dei dispositivi. Per ogni operazione i lettura/scrittura entrano in gioco tempi legati a fattori meccanici per il posizionamento sull'informazione desiderata (ad esempio, per raggiungere il punto desiderato su un disco o un nastro). Poiché tali tempi sono alti (in particolare, sono molto alti rispetto rispetto al tempo di lettura/scrittura di una informazione), risulta più economico leggere informazioni a blocchi più grandi. D'altra parte le tipiche operazioni di lettura/scrittura in memoria secondaria sono il caricamento o scaricamento di file (e quindi di grandi quantità di informazioni). In questi casi risulta quindi conveniente leggere interi blocchi a ogni operazione piuttosto di dover fare tante operazioni per leggere i singoli byte di un blocco. Si noti che tale vantaggio è legato al tipo di uso della memoria secondaria che è solo un depositi di dati e programmi che devono essere portati in memoria principale per essere usati (ed è solo durante l'uso che è rilevante poter accedere ai singoli byte o alle singole parole). Il blocco di informazione che viene letto/scritto in una singola operazione prende il nome di "record fisico" e costituisce quindi la minima quantità di informazione indirizzabile in un supporto di memoria di massa. Per essere memorizzato, un file viene suddiviso in blocchi della dimensione dei record fisici.

Last updated