Spis treści

Podczas korzystania z pamięci komputer typu PC pracuje w dwóch trybach: 

  • trybie rzeczywistym,
  • trybie chronionym.

Tryb rzeczywisty jest zgodną w dół technologią wprowadzoną dla procesorów x86. Oznacza to, że programy przeznaczone dla pierwszego komputera IBM XT będą nadal pracować na komputerach wyższych generacji. Tryb chroniony został wprowadzony dla procesorów 286 i późniejszych. Programy napisane dla pierwszego procesora 8086 mogły mieć dostęp do tego samego obszaru pamięci, powodując konflikty i niestabilność. Tryb chroniony pomaga rozwiązywać te konflikty, sprawiając, że programy muszą prosić system operacyjny o przydzielenie pamięci. Teoretycznie pamięć używana przez program jest chroniona przez system operacyjny. Inny program uruchamiany na komputerze musi żądać pamięci od systemu operacyjnego, który zezwoli na korzystanie tylko z nie używanej pamięci. Procesor 8086 Intela dla pierwszego komputera IBM PC mógł adresować tylko 1 MB pamięci, a programy mogły korzystać tylko z 640 KB pamięci konwencjonalnej. Późniejsze procesory Intela zachowywały ten układ, aby zapewnić zgodność w dół i upewnić programistów, że nowy sprzęt nie spowoduje, iż ich programy staną się przestarzałe. Firmy Lotus, Intel i Microsoft zjednoczyły siły podczas wprowadzania procesora 286 i utworzyły LIM - standard pamięci, który umożliwiał programom korzystanie z pamięci ponad 640 KB. Standard ten utorował drogę pamięci typu expanded, obecnie używanej dzięki plikom HIMEM.SYS Microsoftu i programom obsługi EMM386.EXE dla systemów Windows i DOS. Mimo że wprowadzenie pamięci typu expanded pokonało barierę 640 KB, limit ten nadal może dotyczyć wielu programów, używających wyłącznie pamięci konwencjonalnej. Dlatego nawet przy 64 MB pamięci RAM może pojawić się komunikat o braku pamięci. Najprawdopodobniej będzie on dotyczył wyczerpania 640 KB pamięci konwencjonalnej. Aby temu zaradzić wymyślono dwa standardy rozszerzenia pamięci. eXtended Memory Specification i Expanded Memory Specification jest dostępny tylko dla komputerów z procesorem 80286, 80386,80486 i Pentium. Drugi można stosować nawet w XT, a poza tym akceptuje go większa część programów. Rozszerzeniem steruje program Expanded Memory Manager, ładowany automatycznie z pliku CONFIG.SYS poleceniem DEVICE=. Najbardziej znanym programem zarządzającym pamięcią rozszerzoną jest Emm386.exe. Standardowo system oraz sterowniki ładowane są do pamięci konwencjonalnej. Jednak istnieje sposób aby część systemu oraz sterowników przenieść do pamięci górnej za pomocą polecenia DEVICEHIGH w pliku CONFIG.SYS i polecenia LoadHigh w pliku autoexec.bat. Dzięki temu zwalniamy część pamięci konwencjonalnej. Ma to szczególne znaczenie przy uruchamianiu aplikacji korzystających z tego rodzaju pamięci Np. gry.