La memoria è una zona nella quale i programmi devono essere stoccati per poter essere eseguiti. Un computer compatibile PC può possedere tre tipi di memoria: convenzionale, estesa e numerica. La quantità di memoria presente (e disponibile) nel sistema può essere conosciuta eseguendo il comando «mem» (o «mem /c |more» per avere delle informazioni dettagliate).
La memoria convenzionale è la parte di memoria nella quale i programmi possono essere caricati senza istruzioni specifiche. La sua dimensione varia secondo i sistemi da 256 KB a 640 KB (sui computer recenti: 386, 486, Pentium, ecc.). La quantità di memoria disponibile è la memoria che resta per i programmi dopo che il DOS si sia caricato in memoria (cioè il sistema stesso nonché tutti i gestori di periferiche e tutti i comandi contenuti nei file config.sys e autoexec.bat).
La memoria estesa permette al sistema di accedere a più memoria. Questo tipo di memoria è disponibile sui computer dotati di un processore di tipo 80286 o superiore. Solo gli indirizzi della memoria convenzionale sono naturalmente riconosciuti, per accedere alla zona di memoria posta oltre i 640 KB i programmi hanno bisogno di istruzioni specifiche. È un programma che si incarica di gestire l'accesso alla memoria estesa, esso impedisce ad esempio a due programmi di usare simultaneamente lo stesso indirizzo di memoria. Questo programma è detto «gestore di memoria estesa». MS-DOS è dato in standard con il gestore di memoria detto HIMEM.SYS (è ancora presente su Windows 98). Si dichiara in config.sys con la stringa:
DEVICE=chemin/himem.sys
, dove il path rappresenta il path d'accesso al file.
Un altro modo di accedere alla memoria posta oltre i 640 KB consiste nell'usare la memoria numerica. Alcuni programmi (pochi ad oggi) sono ottimizzati per usare questo tipo di memoria. Esattamente come la memoria estesa, questo tipo di memoria ha bisogno di un programma per essere gestita che si chiama «gestore della memoria impaginata». I programmi previsti per usare questo tipo di memoria non possono essere utilizzati direttamente: il gestore di memoria deve copiare dei segmenti di 16 KB (dette pagine) in una zona (detta segmento di quadro) posta in una memoria superiore. Questo tipo di memoria è comparso prima della memoria estesa, ed è quindi più lenta e permette l'uso che di una sola porzione limitata di memoria in un dato momento.
Molti sistemi dispongono di 384 KB di memoria superiore (HMA, High Memory Adresses), posti immediatamente dopo i 640 KB di memoria convenzionale. Questa zona di memoria può essere usata dall'hardware. Le zone non utilizzate dal materiale sono dette «blocchi di zone della memoria superiore» (UMB, upper memory blocks), e permettono di eseguire i programmi servendosi della memoria impaginata.
Foto: © Pixabay.