Specyfikacja EMS
EMS, czyli Extended Memory Specification, to standard dostępu do pamięci poszerzonej w systemie operacyjnym DOS. Przeznaczony jest dla komputerów z procesorem 80286 i nowszymi. Pamięć ta, o adresach fizycznych większych niż 1 MB, nie była bezpośrednio dostępna w trybie rzeczywistym procesora 80286.
Mechanizm dostępu do pamięci
Dostęp do pamięci poszerzonej realizowany był poprzez mechanizm okna o rozmiarze 64 kB, które znajdowało się w przestrzeni adresowej między 640 kB a 1 MB. W tym oknie program mógł korzystać z fragmentu pamięci poszerzonej, co nazywane jest również ramką stron. Okno składało się z czterech 16 kB obszarów, które mogły być odwzorowane na różne strony pamięci lub pozostawione puste. Warto zaznaczyć, że pamięć EMS była ograniczona do przechowywania danych, a kod programu musiał znajdować się w pamięci konwencjonalnej.
Zmiana odwzorowania pamięci
Aby zmienić odwzorowanie w oknie, program musiał odwołać się do sterownika, co pozwalało na efektywne wykorzystanie pamięci powyżej 1 MB.
Historia i standardy
Specyfikacja EMS została opracowana w 1988 roku przez firmy Lotus, Intel i Microsoft, w celu ujednolicenia interfejsu programowego sterowników. Dostęp do usług EMS realizowany jest przez przerwanie 67h. W systemie MS-DOS, od wersji 5.00, standardowo dostarczany był sterownik EMM386.EXE, który emulował pamięć EMS w pamięci XMS. Dzięki temu w systemach opartych na procesorze 80386 możliwe było korzystanie z trybu chronionego, co ułatwiło dostęp i wymianę stron pamięci.