Felső memóriaterület ( UMA ), felső memóriablokkok ( UMB ), informálisan felső memória - 384 kilobájt memória , a fő memória után található, A0000 16 (640 KB) és FFFFF 16 (1024 KB, 1 MB) címeken. IBM PC-kompatibilis architektúrák jellemzői .
Az IBM az IBM PC számítógépének felső memóriaterületét az alaplapnak és a kiegészítő ROM -nak és RAM -nak, valamint a Memory-Mapped Input/Output I/O portoknak tartotta fenn. Ezt a memóriaterületet UMA-nak hívják, és az A0000 16 (640 KB) és az FFFFF 16 (1 MB) címek között található.
Ez a memóriaterület például egy EGA -kompatibilis videoadapter RAM-ját és ROM-ját, valamint a bővített memória kijelzőablakát tartalmazza .
A felső memória feltételesen három, egyenként 128 KB-os területre van felosztva. Az alapértelmezett felső memóriakiosztás így néz ki:
Valós rendszerben a lefoglalt memóriaterület (UMA) nincs lefoglalva. A 80386 -os vagy magasabb processzorral rendelkező számítógépek további memóriát képezhetnek a szabad UMA területekhez. Így felső memóriablokkok (Upper Memory Block, UMB) keletkeznek, amelyek az OS irányítása alá helyezhetők és az alkalmazások között szétoszthatók.
Az MS-DOS 5.0 és újabb verziói támogatják az UMB vezérlést. Ehhez tartalmazza a HIMEM.SYS és EMM386.EXE illesztőprogramokat (amelyek segítségével további memória jelenik meg az UMA -n virtuális 8086 módbandos=umb ) és a , devicehighés parancsokat loadhigh. Az extra memória UMA-hoz való leképezéséhez és az UMB-kezelési szolgáltatások engedélyezéséhez adja hozzá a következő sorokat a CONFIG.SYS fájlhoz :
device=HIMEM.SYS device=EMM386.EXE NOEMS dos=UMB devicehigh = ... (ez az illesztőprogram betöltődik az UMB-be)Voltak olyan illesztőprogramok is, amelyek az UMB valós módú árnyék - RAM -ot leképezték a lapkakészlet szolgáltatásaival [1] [2] .
A rezidens programok a segítségével tölthetők fel az UMB-re loadhigh. Azonban nem minden alkalmazás működik megfelelően, ha betöltik az UMB-be.
Ezen túlmenően bármely alkalmazás képes önállóan átvinni magát vagy egyes adatait az UMB-be a DOS 58xx funkció segítségével.
Mivel egy alkalmazás a rendszerindításkor több memóriát foglalhat el, mint a rezidens része, a DOS általában maximális blokkméretet foglal le. [3] Ennek eredményeként az UMA erősen töredezett, és még ha a blokkokban lévő szabad memória teljes mennyisége nagyobb is a szükségesnél, előfordulhat, hogy az alkalmazás nem fér bele egyetlen szabad blokkba sem. Az UMA optimális kitöltéséhez ki kell választani az illesztőprogramok és a rezidens programok betöltési sorrendjét és a parancsok kiterjesztett szintaxisát devicehighés loadhigh(melyekkel megadható, hogy melyik blokkban kell betölteni a programot) használni.
angol szó . a felsőt általában „felső”-nek fordítják oroszra („tetején található” [4] ), de a magas szót „felsőnek” is fordítják (vagy „magas” - „felül található” [5] ) . Ehhez sok pontatlanság társul a Felső memóriaterület (Felső memóriablokk) és a Magas memóriaterület nevek fordítása során .
Ennek eredményeként az eredeti angol nyelvű UMB és HMA írásmód továbbra is használatos az orosz nyelvű irodalomban (az UMA rövidítés gyakorlatilag nem honosodott meg).
Ezenkívül a devicehighés parancsok loadhigh, annak ellenére, hogy a névben szerepel a high szó, az UMB-be töltik be a programokat, nem a HMA-ba. A DOS csak a HMA-t használja a kernel betöltésére (ha a dos=highvagy parancsot használjuk dos=high,umb).