Zarządzanie pamięcią w DOS-ie i w Windows

Optymalne wykorzystanie posiadanej pamięci, to nie tylko problem ekonomiczny (po co nam duża pamięć w komputerze, jeśli z niej nie korzystamy), ale także kwestia wolnego lub szybkiego działania tegoż komputera, zarówno w DOS-ie jak i w Windows. Dlatego warto się zastanowić jak optymalnie wykorzystać pamięć komputera.

Optymalne wykorzystanie posiadanej pamięci, to nie tylko problem ekonomiczny (po co nam duża pamięć w komputerze, jeśli z niej nie korzystamy), ale także kwestia wolnego lub szybkiego działania tegoż komputera, zarówno w DOS-ie jak i w Windows. Dlatego warto się zastanowić jak optymalnie wykorzystać pamięć komputera.

Organizacja pamięci

Struktura organizacyjna pamięci jest dobrze zdefiniowana:

- Pierwsze 640 kB pamięci (pamięć główna, podstawowa lub konwencjonalna) jest przeznaczone do umieszczania programów niezbędnych do funkcjonowania systemu operacyjnego i do ładowania programów aplikacyjnych.

To oczywiste, że im więcej miejsca zajmie system operacyjny, tym mniej miejsca zostanie dla aplikacji. DOS 5.0 umożliwia uzyskanie dla programów aplikacyjnych więcej miejsca (niż poprzednie wersje), pod warunkiem dysponowania pewną minimalną konfiguracją sprzętową komputera.

- Część zawarta między 640 kB a 1 MB jest nazywana górnym obszarem pamięci. Zawiera ona w szczególności pamięć monitora ekranowego (tekst i grafikę), pamięć stałą (ROM) sterującą urządzeniami zewnętrznymi, itd.

Praktycznie cały ten obszar nie jest zajęty. Dawniej, ta pamięć była kompletnie stracona. Obecnie możemy z niej korzystać w celu załadowania sterowników urządzeń (zwykle zawartych w plikach o rozszerzeniu .SYS) i programów rezydentnych.

Zauważmy, że pewne komputery umożliwiają przekopiowanie w górny obszar pamięci zawartości pamięci stałej ROM. Taka opcja nosi nazwę pamięci fantom - ang. shadow RAM. Pozwala ona na przyspieszenie obsługi urządzeń, ponieważ pamięć RAM jest znacznie szybsza niż pamięć stała ROM; może to jednak wywoływać konflikt w dostępie do pamięci i dla pełnego wykorzystania możliwości, jakie daje system DOS 5.0, opcja ta powinna być wyłączona (dobrze jest w tym miejscu posłużyć się dokumentacją sprzętową posiadanego komputera).

- Pamięć powyżej 1 MB, zwana jest pamięcią rozszerzoną. Każdy komputer może jej mieć dość dużo (małe są szanse, że dojdziemy do granicy, gdyż komputer z procesorem 286 może jej mieć 16 MB, a z procesorem 386 aż 4 GB, czyli 4096 MB).

Niektóre programy są zdolne do bezpośredniego korzystania z pamięci rozszerzonej, ale to raczej wyjątek niż reguła. Nie ma więc wielkiego pożytku z tej pamięci; istnieją na szczęście inne możliwości jej wykorzystania.

Pamięć rozszerzona może być zamieniona w tzw. pamięć stronicowaną (ang. expanded), zgodną z normą LIM EMS 4 (Lotus Intel Microsoft Expanded Memory Specification). Pamięć stronicowana działa w następujący sposób: w górnym obszarze pamięci (do którego DOS może swobodnie sięgać) jest tworzona ramka 64 kB, złożona z 4 okienek po 16 kB. Te okienka mogą, na żądanie programu korzystającego z tej pamięci, przesuwać się po obszarze pamięci rozszerzonej (powyżej 1 MB). Tak więc ta ramka, to pewna forma otwarcia DOS-u na "panoramę pamięci", pozwalająca na korzystanie w pokrętny sposób z pamięci, do której nie może on się dostać bezpośrednio.

Do przekształcenia pamięci rozszerzonej w pamięć stronicowaną jest potrzebny program, zwany sterownikiem pamięci stronicowanej. W przypadku systemu operacyjnego DOS tę rolę pełni program EMM386.EXE. Jednakże, aby z niego korzystać, trzeba dysponować co najmniej procesorem 386.

- Obszar pierwszych 64 kB pamięci powyżej 1 MB może być wykorzystywany dzięki sterownikowi HIMEM.SYS. Ten program przekształca tę pamięć w tzw. pamięć HMA (ang. high memory area), służącą do ładowania pewnej części systemu operacyjnego. Jest to jedna z nowych, korzystnych cech DOS-u w wersji 5.0.

Pamięć i mikroprocesory

Komputer z procesorem 80286 jest w stanie korzystać ze znacznie większej pamięci niż przestarzały już komputer XT (z procesorem 8088 lub 8086). Może on działać w dwóch trybach pracy:

- W trybie rzeczywistym działa tak, jak procesor 8086 i nie może korzystać z pamięci ponad 1 MB. Większość programów korzysta właśnie z tego trybu pracy procesora.

- W trybie chronionym (protected) może sięgać do pamięci o pojemności do 16 MB. Niewiele jest programów korzystających z tej możliwości (takim programem jest Windows).

Procesor 386 dysponuje tymi samymi trybami pracy. W trybie z protekcją może adresować do 4096 MB pamięci. A ponadto ma on tryb pracy zwany trybem wirtualnym, umożliwiający mu emulację tylu komputerów z procesorem 8086, na ile pozwala pojemność posiadanej pamięci (w przybliżeniu 1 komputer w 1 MB pamięci). Niektóre z programów są zdolne do wykorzystywania tej możliwości procesora w pracy wielozadaniowej, to jest wykonywania kilku zadań jednocześnie.

Z systemem DOS jest następujący kłopot: może on pracować tylko w trybie rzeczywistym, niezależnie od procesora komputera.

W celu komercyjnej reprodukcji treści Computerworld należy zakupić licencję. Skontaktuj się z naszym partnerem, YGS Group, pod adresem [email protected]

TOP 200