Podział pamięci ściśle wiąże się z wykorzystywanym systemem operacyjnym. System MS-DOS ogranicza pamięć dostępną dla programów do 640 KB. Ograniczenie to jest spowodowane architekturą pra-peceta, czyli procesora 8086, który wymuszał takie właśnie ograniczenie pamięci. Kolejne procesory potrafiły zaadresować większy obszar pamięci. Chcąc jednak zachować kompatybilność z 8086 zachowano początkowe ograniczenia.

Mapę pamięci dla systemu MS-DOS przedstawia rysunek 4.3.:

[Mapa pamięci MS-DOS]

Rysunek 4.3. Mapa pamięci operacyjnej dla systemu MS-DOS

Poniżej zostaną opisane pokrótce wyżej wymienione bloki pamięci. Pamięć konwencjonalna, nazywana również podstawową, to obszar położony poniżej granicy pierwszych 640 KB-ów. W obszarze tym działają wszystkie programy. W pamięci konwencjonalnej, znajduje się także część instrukcji i danych systemu operacyjnego MS-DOS, dlatego też dla programów użytkownika pozostaje mniej miejsca. Wszystkie komputery kompatybilne z IBM-PC posiadają dostęp do 1 MB pamięci. MS-DOS rezerwuje 640 KB dla programów, zostają więc 384 KB nazywane UMA (ang. Upper Memory Area). Część tej pamięci zajmują programy BIOS'u i obsługi monitora. Pozostają jednak wolne bloki tej pamięci, nazywane UMB (ang. Upper Memory Blocks) [3].

Programy MS-DOS pozwalają na umieszczenie w tych górnych blokach sterowników, a nawet uruchamianie niektórych programów. W UMB znajdują się najczęściej programy rezydentne pracujące przez cały czas działania komputera. Pamięć typu Extended znajduje się powyżej 1MB. Aby korzystać z niej w systemach MS-DOS musi być zainstalowany specjalny sterownik, który zarządza tą pamięcią i czuwa nad tym, aby np. dwa programy nie korzystały z tego samego obszaru pamięci. Program ten nosi nazwę "himem.sys".

Pierwsze 64 KB pamięci Extended stanowi pamięć HMA (ang. High Memory Area). Pozwala ona na umieszczanie używanych przez system tabel z danymi i buforów (min. strony kodowe z polskimi literkami) [3]. Ta pamięć również pozwala programom na sięgnięcie poza granicę 1 MB. Pamięć Expanded jest umownie podzielona na małe, 16 KB bloki, zwane stronami. Jeśli jakiś program sięga po dane do tej pamięci, specjalny "zarządca" kopiuje całą stronę do pamięci posiadającej adres mniejszy niż 1 MB, czyli do UMA. Ze względu na zastosowane rozwiązania, pamięć tego typu jest wolniejsza i mniej efektywna od pamięci Extended [3]. W MS-DOS istnieje specjalny sterownik - "emm386.exe" - emulujący działanie tej pamięci. Sterownik ten pozwala na utworzenie 64 KB okna w pamięci UMA, poprzez które można korzystać z pamięci rozszerzonej. Okno podzielone jest na 4 strony po 16 KB każda.

NASTĘPNA