raport: bariera 4 GB pamięci fizycznej w 32-bitowych systemach
Data: 22 kwiecień 2008
Identyfikator: 080549
Pamięć RAM, zwłaszcza typu DDR2, jest obecnie bardzo tania. Nic dziwnego, że coraz więcej komputerów wyposażanych jest np. w dwa 2-gigabajtowe moduły. Radość z posiadania takiej ilości RAM-u często szybko mija, gdy się okazuje, że system operacyjny zamiast czterech gigabajtów melduje mniej więcej trzy.
Strona 1 z 5
|
Zdaniem redaktora
|
|
Krzysztof Roszak
redaktor działów
Software i Internet
Nieco z przekąsem mogę stwierdzić, że problem czterech gigabajtów mnie nie dotyczy. Powód jest prosty – odkąd mam 64-bitowy procesor, używam tylko takich systemów; głównie Kubuntu, choć w odwodzie jest jeszcze XP x64. I chociaż rozwiązania do 32-bitowych platform Microsoftu przeznaczonych do użytku domowego na razie nie widać, bo zostało ono sztucznie stłamszone przez producenta, uważam, że to właśnie analiza pochodzenia problemów z 36-bitowym adresowaniem pozwala zrozumieć, jak często decyzje podjęte w trybie „na teraz nam wystarczy” mszczą się ze zdwojoną siłą w przyszłości. W tym kontekście dziwi mnie małpi upór dostawców zestawów OEM, którzy sprzedają nowe pecety z 32-bitową edycją Visty w trosce o dobro klienta. Przecież 64-bitowe systemy mogą wciąż sprawiać kłopoty w grach. Ciekawa podejście. Ja mogę tylko zapewnić, że mój komputer problemów z działaniem podzespołów nie ma ani w 64-bitowym XP, ani Linuksie.
|
Taki scenariusz, mimo że dość często ostatnio spotykany, wciąż dla wielu użytkowników jest zaskoczeniem. Na licznych forach dyskusyjnych pojawiają się pytania, gdzie znika niemal (a czasem i ponad) gigabajt. Chociaż w większości przypadków odpowiedzi adresują poprawnie źródło problemu – osiągnięcie granicy 32-bitowego adresowania, fakty często mieszają się z mitami.
Można zatem przeczytać m.in. o tym, że jest to wina Windows XP, a problem rozwiązuje instalacja Visty; że 32-bitowe systemy nie widzą więcej niż 4 gigabajty pamięci; a także znaleźć rewolucyjne rozwiązania problemu, np. przez dezaktywację pliku wymiany (ang. swap space) w systemie operacyjnym.
Takie odpowiedzi biorą się oczywiście z niezrozumienia bardzo skomplikowanego zagadnienia, jakim jest obsługa pamięci w komputerze, a także z nieznajomości kilku faktów z historii informatyki. Warto przyjrzeć się sprawie dokładniej: z czego wynika bariera 4 GB, czy i jak można ją obejść, wreszcie – czy obsługa RAM-u to jedyny problem w tej kwestii.
Pamięć pamięci nierówna
Często używanym w dyskusjach zwrotem jest: system nie widzi pamięci. Jest ono ambiwalentne pod co najmniej dwoma względami. Pierwszy, co to znaczy, że system widzi pamięć – czy stanowi to tylko kwestię oprogramowania, czy może to sprzęt dyktuje systemom warunki pracy oraz czy widzenie jest tożsame z wykorzystywaniem? Drugi zaś, czym właściwie w tym kontekście jest pamięć?
Odpowiedź należy zacząć od wyraźnego wypunktowania, że rodzajów pamięci w systemach operacyjnych jest kilka. Zacznijmy od tego, co oczywiste – RAM-u, czyli pamięci fizycznej instalowanej na płytach głównych. Jej uzupełnieniem jest pamięć (lub plik) wymiany – wydzielony obszar dysku twardego pełniący rolę rozszerzenia RAM-u, w kategorii ilościowej. Obie pamięci razem wzięte tworzą obszar, w ramach którego system operacyjny i aplikacje mogą umieszczać potrzebne dane.
|
Pamięć wirtualna procesu
|
|
|
Każdy proces dysponuje własnym wirtualnym obszarem adresacji, a system operacyjny dokonuje mapowania tych adresów na konkretne fragmenty pamięci fizycznej.
|
Oczywistym jest, że miejsce przechowywania zapisywanych w nim informacji musi być jednoznacznie określone, tak aby system wiedział, do której komórki pamięci czy sektora dysku twardego sięgnąć w celu jej odczytu. Problem ten rozwiązuje użycie mechanizmu adresowania. Obszar całkowitej dostępnej pamięci jest dzielony na numerowane bloki, z których każdy ma własny adres.
32-bitowe adresowanie
Jest on oczywiście liczbą całkowitą z zakresu od zera do maksymalnej wartości, jaką może obsłużyć procesor. Ta zaś zależy wprost od liczby bitów używanych przez CPU do adresacji. Łatwo policzyć, że dla 32-bitowej jednostki jest to 232, co daje 4 G unikatowych adresów. Wszystko byłoby proste, gdybyśmy przyjęli założenie, że jedyną dostępną pamięcią jest RAM – i tylko jej dotyczy adresacja. Ponieważ tak nie jest, systemy operacyjne od dawna dysponują mechanizmami pozwalającymi obejść ten limit.
Te 4 miliardy adresów stanowią więc tzw. pamięć wirtualną, widoczną dla aplikacji. System operacyjny stosuje zaś algorytm mapujący każdy adres wirtualny z tego zakresu na fizyczny. Tym drugim może być zarówno komórka RAM-u, jak i sektor dysku objęty plikiem wymiany. Jak łatwo się przekonać, swap file w 32-bitowych systemach może być większy niż 4 GB. Nie można zatem zastosować np. dwóch osobnych wirtualnych przestrzeni adresowych, osobno dla RAM-u i swapa, bo w przypadku tej drugiej pamięci fizycznej również nie dałoby się użyć mapowania jeden do jednego. Trzeba użyć metody pośredniej.
Ocena: 



(aby ocenić, musisz się zalogować w serwisie)
Podobne artykuły: