Jak działa Windows, cz. 4
Jak działa Windows cz 4
Dziś dowiemy się, dlaczego Windows jest systemem 32-bitowym i co z tego wynika.
Systemy 16-bitowe
To, że system jest 8-, 16- czy 32-bitowy zależy od sposobu zarządzania pamięcią
RAM i jej podziału na tzw. segmenty. W systemach 16-bitowych (DOS, Windows 3.1x) każdy
segment miał wielkość 65536 bajtów, bo tyle dało się zapisac zapisac za pomocą 16
bitów (2 bajty, od &H0000 do &HFFFF). Było o tyle kłopotliwe, że rzadko który
program zajmował mniej niż te 64 KB. Tak więc trzeba było wyróżniać segmentu kodu,
stosu, danych itp. Do tego dochodzą jeszcze (w językach wyższego poziomu niż
assembler) takie kwiatki jak model pamięci, wskaźniki dalekie i bliskie i tym podobne
rzeczy.
Łatwo policzyć, że maksymalna ilość adresowanej w ten sposób pamięci to ok. 4 GB
(65 tysięcy segmentów po 65 tysięcy bajtów każdy).
Systemy 32-bitowe
Żeby w pełni korzystać z dobrodziejstw 32-bitowości, trzeba mieć 32-bitowy
procesor. To akurat nie problem, bo wszystkie jednostki od 386 wzwyż spełniają ten
warunek. Czym się różni taki procesor od starszych? Na przykład tym, że posiada
32-bitowe rejestry, np. EAX:
EAX
43 56 12 67h
AX
12 67h
AH
12h
AL
67h
Jednak najlepsze jest to, że nie trzeba się martwić o segmenty, gdyż ich
praktycznie nie ma. No, właściwie są, tyle że jeden zamiast 64 KB zajmuje... 4 GB! Po
prostu zamiast dwóch liczb 16-bitowych:
0453h
:
6784h
segment
:
offset
wprowadzono jedną 32-bitową:
04536784h
offset
Taki model jest nazywany pamięcia płaską (flat) i korzysta z niego Windows wraz ze
wszystkimi doń programami.
Pamięć wirtualna
Windows dba o to, żeby każdy program teoretycznie mógł korzystać z całego
czterogigabajtowego segmentu pamięci. Oczywiście bardzo rzadko jest to naprawdę
możliwe, w końcu niewielu ma więcej niż kilkaset megabajtów RAMu. W dodatku
jednocześnie uruchomionych jest zawsze przynajmniej kilka programów. I tu przychodzi
czas na pamięć wirtualną. jeżeli zabraknie RAMu, Windows wykorzystuje część dysku
jako tak zwany plik wymiany. Dzięki temu może udawac, że ma znacznie więcej pamięci w
rzeczywistości, ale z uszczerbkiem na szybkości (w końcu RAM jest znacznie szybszy niż
dysk twardy). To, w jakim stopniu plik wymiany jest wykorzystywany zależy od ilości
pamięci operacyjnej. Samo Windows potrzebuje kilka jej megabajtów, przeciętny niewielki
program (jak np. WordPad, Paint) zajmuje mniej więcej kilkaset KB do jednego MB,
natomiast wieksze (Word, Excel) - od kilku do nawet kilkunastu MB. Tak więc np. 32 MB
pamięci to zdecydowanie za mało, ale 64 MB to juz nieźle. Pominąłem tu jeszcze takie
rzeczy jak na przykład Schowek (wciśnij raz Print Screen i juz masz 1,5 MB pamięci
mniej :))
Na dzisiaj to koniec. Zapewne niektórzy zadają sobie pytanie: po kiego to? Co z tej
wiedzy przyda się w VB? Śmiem twierdzić, że całkiem sporo, a w następnej cześci
podam kilka przykładów.
Karol Kuczmarski
qkarol@go2.pl
http://www.qkarol.prv.pl
ICQ: 69629311
Wyszukiwarka
Podobne podstrony:
WSM 10 52 pl(1)VA US Top 40 Singles Chart 2015 10 10 Debuts Top 10010 35401 (10)173 21 (10)Millionaire Magazine 10więcej podobnych podstron