Jak środowisko Windows wykorzystuje pamięć komputera?
- Marian Łakomy,
- 19.10.1992
Windows optymalnie wykorzystuje całą dostępną pamięć komputera, pod warunkiem, że wcześniej nie przeznaczyliśmy jej na inne cele, np. instalując dysk wirtualny (RAM-dysk).
Windows optymalnie wykorzystuje całą dostępną pamięć komputera, pod warunkiem, że wcześniej nie przeznaczyliśmy jej na inne cele, np. instalując dysk wirtualny (RAM-dysk).
Różne rodzaje pamięci
Krótko przypomnę, jakie najważniejsze rodzaje pamięci mamy do dyspozycji w komputerze.
Pamięć konwencjonalna albo pamięć główna, czyli 640 kB, do których mamy dostęp w DOS-ie. Zajmuje ona przestrzeń od adresu 0000 do 9FFF (szesnastkowo).
Pamięć rozszerzona, to pamięć o adresach wyższych od FFFFF (1 MB). Występuje ona tylko w komputerach z 16-bitowym procesorem 286, zdolnym do adresowania 16 MB pamięci i w komputerach z 32-bitowymi procesorami 386 i 486, zdolnymi do adresowania do 4 GB pamięci.
Pamięć stronicowana, zgodna ze standardem LIM EMS, może być wykorzystywana na dowolnym komputerze. Wymaga instalacji specjalnej karty w przypadku procesorów 86 i 286. Natomiast procesor 386 może zamienić część pamięci rozszerzonej na pamięć EMS (emulując pamięć EMS) i nie wymaga instalacji karty EMS.
Do czego Windows wykorzystuje pamięć?
Komputer z procesorem 286
Program Windows pracujący na komputerze z procesorem 286, całą dostępną mu pamięć przydziela uruchamianemu programowi: nie ma bowiem możliwości jednoczesnego uruchomienia dwóch programów: każdy w pełni absorbuje zasoby komputera.
Jeżeli w takim komputerze jest zainstalowana pamięć typu EMS, to korzystają z niej jedynie programy DOS-owe i nie ma tu żadnej różnicy między pracą w "czystym" DOS-ie, a pracą w okienku Windowsowym.
Komputer z procesorem 386 (lub lepszym)
W takim komputerze Windows może jednocześnie nadzorować wykonanie wielu programów. Każdy z nich otrzymuje tyle pamięci, ile potrzebuje - jeśli jest to program Windowsowy. Możliwe jest także uruchomienie kilku programów DOS-owych, z których każdy działa na własnym, wirtualnym (to jest emulowanym przez procesor i środowisko Windows) komputerze z systemem DOS z pamięcią, o rozmiarach określonych w specjalnym pliku PIF (program information file). W typowej konfiguracji wymaga to przeznaczenia ok. 1 MB pamięci rozszerzonej z zasobów komputera na jeden program DOS-owy. Na przykład na komputerze z 5 MB pamięci RAM i zainstalowanym przez środowisko Windows stałym plikiem roboczym 2 MB na dysku, udało mi się uruchomić 4 aplikacje DOS-owe, z których jedna wymagała 1 MB pamięci EMS.
System Windows jest w stanie dostarczyć pamięci LIM EMS tym programom DOS-owym, które jej potrzebują. Jeżeli mamy zainstalowaną kartę pamięci EMS, to Windows sięga najpierw do tej karty po pamięć EMS, potem zamienia część pamięci rozszerzonej na pamięć stronicowaną (emuluje ją). W końcu zaś skorzysta z dysku, na którym umieści najwolniejszą, emulowaną pamięć stronicowaną.
Jak Windows zarządza pamięcią?
Windows dla poprawnego zarządzania pamięcią wymaga zainstalowania jedynie sterownika HIMEM.SYS w pliku CONFIG.SYS; natomiast sterownik EMM386.EXE używany jest przez DOS do umieszczania swoich programów w pamięci UMB (upper memory block) i przydzielania pamięci EMS, programom działającym bezpośrednio w DOS-ie. Jeżeli w DOS-ie przekształciliśmy część pamięci rozszerzonej na pamięć EMS, jest ona nadal dostępna dla Windows.
Każde okienko DOS-owe jest dokładnym odwzorowaniem "czystego" DOS-u. Dostępne są w nim bowiem wszystkie programy rezydentne (sterownik klawiatury, DOSKEY i in.). Niestety, jedynie w oknie pełnoekranowym i w jednym rozmiarze czcionek mniejszego okna DOS-owego (trzeba sprawdzić samemu jaka to czcionka, u mnie 8x12), dostępne są polskie litery. Jeżeli więc umieściliśmy dużo programów rezydentnych, to będziemy w każdym oknie mieli mały rozmiar dostępnej pamięci głównej. Dlatego, dobrze jest instalować w każdym oknie DOS-owym pojedyncze programy rezydentne, które są naprawdę potrzebne. Ma to jeszcze tę zaletę, że możemy korzystać z programów rezydentnych, które źle ze sobą współpracują: każdy z nich uruchamiamy w oddzielnym oknie DOS.
Przy okazji korzystania z programów rezydentnych często pojawia się problem: co zrobić z myszą? Windows korzysta w naturalny sposób z myszy i nie wymaga żadnego sterownika DOS-owego do jej obsługi. (Pod warunkiem, że nasza mysz jest zgodna z jedną z popularnych myszy firmowych: Microsoft, Logitech, MSMouse). Obsługę myszy zapewnia sterownik Windows MOUSE.DRV, z kompletu sterowników Windows. Jeżeli jednak chcemy skorzystać z myszy w programach DOS-owych lub nie mamy myszy całkowicie zgodnej ze standardem, to należy w DOS-ie wywołać jej sterownik. Pisałem już o tym, że w razie wątpliwości co do zgodności myszy należy przed instalacją Windows załadować jej sterownik, aby Windows był w stanie poprawnie ją rozpoznać. Potem, jeśli nie korzystamy z myszy w DOS-ie, możemy ten sterownik usunąć w celu zwiększenia rozmiarów dostępnej pamięci. Odradzam ładowanie nietypowych sterowników w górny obszar pamięci (UMB) za pomocą polecenia LOADHIGH, gdyż niektóre programy DOS-owe nie są w stanie korzystać z tak zainstalowanej myszy.