Nella gestione della memoria nei sistemi DOS, l'area di memoria superiore (in inglese upper memory area, UMA) è la memoria situata tra gli indirizzi di 640 KB e 1024 KB (0xA0000–0xFFFFF) in un PC compatibile IBM.
Questa memoria superiore, comprensiva di 384 kilobyte dedicati al sistema operativo, era raramente utilizzata totalmente, così il gestore della memoria rendeva disponibili le aree inutilizzate che si aggiungevano alla memoria convenzionale (i primi 640 KB). Queste aree sono dette blocchi di memoria superiore.[1]
Spazio di memoria riservato
[modifica | modifica wikitesto]La IBM riservò la regione superiore della memoria del PC, sopra la memoria convenzionale, per la ROM e per la RAM per l'I/O delle periferiche.[2] Questa regione è chiamata UMA e si colloca tra i 640 kB e il 1 MB, limite massimo indirizzabile per il processore Intel 8088. Ad esempio, l'area per il video monocromo è compresa tra B000 e B7FF[non chiaro].
Comunque, alcuni spazi di questi 384 kB erano inutilizzati, ad esempio c'era un banco di 64 kB riservato per il gestore di memoria espansa. Nella maggior parte dei PC, lo spazio tra C800 e EFFF è inutilizzato. Gli spazi inutilizzati vennero detti Upper memory blocks (UMB) e si cercò un modo per sfruttarli per liberare memoria convenzionale, quando questa iniziò ad essere insufficiente per i programmi dell'epoca.
DR-DOS
[modifica | modifica wikitesto]Con la versione 5.0 di DR-DOS, uscita nel 1990, fu disponibile il gestore di memoria espansa, EMM386, che compieva la maggior parte delle operazioni di QEMM.
Il kernel di DR-DOS e i suoi componenti potevano essere allocati nella memoria superiore, lasciando virtualmente tutta la memoria convenzionale libera, dai 620 ai 640 KB.
La configurazione non era automatica, i blocchi UMB liberi dovevano essere identificati a mano, EMM386 doveva essere scritto nel file CONFIG.SYS, e bisognava scegliere i driver da caricare nella memoria alta.
MS DOS
[modifica | modifica wikitesto]Questa funzionalità fu copiata dalla Microsoft con la versione 5.0 di MS-DOS 5.0, pubblicata a giugno del 1991.
Nei primi anni 1990, l'ottimizzazione manuale della memoria del DOS richiedeva conoscenze alte. La tecnica era quella di creare più blocchi UMB possibili e quindi identificare quali componenti DOS caricare in questi UMB.
Multitasking
[modifica | modifica wikitesto]Con l'uso di un multitasker DOS, come il Quarterdeck DESQview, potevano essere lanciate più sessioni, ognuna con 600 KB di memoria libera.[senza fonte]
Windows
[modifica | modifica wikitesto]La popolarità di Windows 3.0 rese questo problema[non chiaro] irrilevante, visto che le applicazioni Windows non soffrivano dei limiti di memoria DOS.[senza fonte]
Memoria superiore e RAM nascosta
[modifica | modifica wikitesto]Su molti sistemi, compresi quelli più moderni, è possibile utilizzare la memoria riservata per la ROM nascosta[non chiaro] come memoria superiore. Molti chipset si riservano 384 KB di RAM a questo scopo.
Memoria superiore sui IBM XT
[modifica | modifica wikitesto]Sui computer IBM XT era possibile aggiungere memoria alla scheda madre e utilizzare una PROM per farla vedere come ulteriore upper memory area [1].
Note
[modifica | modifica wikitesto]- ^ Glossario dell'informatica, termine - UMB, su infocorsi.org. URL consultato il 3 dicembre 2023.
- ^ Memory Map (x86) - OSDev Wiki, su wiki.osdev.org. URL consultato il 20 dicembre 2020.