Limit 2 GB w 32-bitowych systemach operacyjnych

8

Czy limit 2 GB w 32-bitowych systemach operacyjnych oznacza, że każdy proces może uzyskać dostęp tylko do 2 GB pamięci lub że wszystkie procesy łącznie mogą zużywać tylko 2 GB pamięci fizycznej ?

Czy więc 2 GB jest zarezerwowane dla jądra, aby ograniczyć całkowitą ilość, którą wszystkie procesy mogą wykorzystać razem?

Szalony naukowiec
źródło
Uwaga: Fabian odnosi się tylko do pamięci fizycznej, a nie pliku stronicowania.
Arda Xi
Odnosi się również do systemu Windows, a nie systemów operacyjnych w ogóle.
Arda Xi
Może o to pyta, ale nie ma takiego związku. Każdy proces może uzyskać dostęp do 2 GB wirtualnie. Część tego będzie w pamięci RAM („rezydent”). W 32-bitowych wersjach klienta Windows całkowita pamięć rezydująca wszystkich procesów plus pamięć rezydentna systemu operacyjnego nie może przekraczać 4 GB. Przydział pamięci fizycznej nie jest podzielony na 2 GB.
Jamie Hanrahan,
Zaakceptowana odpowiedź w tym poście zawiera pełne informacje - stackoverflow.com/questions/490520/…
RBT

Odpowiedzi:

4

Istnieje wiele nieporozumień na temat limitu pamięci w 32-bitowych systemach operacyjnych Windows.

Po pierwsze, kiedy mówię RAM, obejmuje to każdy rodzaj RAM. Więc nie tylko zwykła, ale także wideo RAM.

Maksymalna dostępna ilość pamięci RAM na proces dla 32-bitowego systemu operacyjnego wynosi 2 GB. Jeśli masz 64-bitowy system operacyjny, proces 32-bitowy może przydzielić do 4 GB.

Ponadto cały system operacyjny może adresować tylko 4 GB na każdy proces łącznie, podczas gdy 64-bitowe systemy operacyjne mogą przydzielić 8 TB.

Interesujące jest również to, że limit ten sumuje się do puli stronicowanej. Oznacza to, że 32-bitowy system operacyjny nie może zużyć łącznie więcej niż 2 GB, co oznacza 6 GB dla wszystkich aplikacji, w tym pamięci wirtualnej. Oczywiście nie ma to nic wspólnego z pamięcią RAM, ponieważ pozostałe 2 GB byłoby zapisane w pliku stronicowania, ograniczona do prędkości twojego dysku twardego.

Aby uzyskać więcej informacji, zobacz Limity pamięci dla wydań systemu Windows .

Uwaga: dotyczy tylko aplikacji. 32-bitowy system operacyjny Windows może przydzielić do 4 GB łącznie, ale 2 GB tego miejsca jest przeznaczone wyłącznie na użytek systemu, pozostawiając tylko 2 GB na aplikacje. W niektórych przypadkach (zwłaszcza nowszych systemach operacyjnych) jest to podzielone na 3 GB dla aplikacji i 1 GB dla jądra.

Dyskutowałem tylko o systemie Windows, ponieważ w tym kontekście pytanie miało na celu. Nie znam granic innych systemów operacyjnych.

Arda Xi
źródło
2
ta odpowiedź nie jest kompletna - nie obejmuje pojęcia „przestrzeni adresowej” poza tym, że pamięć wideo jest uwzględniona, a fakt, że przestrzeń adresowa w 32-bitowych systemach operacyjnych jest w rzeczywistości ograniczona do 4 GB bez rozszerzeń, a nie 2 GB (ty może nawet powiedzieć 32-bitowej kopii XP, aby uruchomił się z 3 GB
pamięci
1
Pytanie nie dotyczyło przestrzeni adresowej. Mogę was zanudzić, omawiając sposób adresowania pamięci i limit 32-bitowych liczb całkowitych, ale nie o to chodzi w tym pytaniu, więc wydaje się to niepotrzebnie złożone. I tak, możesz użyć przełącznika / 3GB. To pytanie nie obejmuje tego.
Arda Xi
1
Limit pamięci 4 GB dotyczy tylko pamięci fizycznej w standardowej architekturze 32-bitowej x86. Pamięć wirtualna jest inna, a 32-bitowy system operacyjny może zużywać znacznie więcej niż 4 GB pamięci (ogółem nie na proces), jeśli używa pliku stronicowania lub partycji wymiany. Szybkość dysku twardego nie ma wpływu na dostępny rozmiar pliku strony ani miejsca wymiany, jeśli na dysku twardym jest miejsce, niż strona lub zamiana. Wpływa tylko na wydajność stronicowania / zamiany.
1
Och, zapomniałem wspomnieć, RAM RAM nie jest czynnikiem, chyba że jest to zintegrowany RAM RAM dzielący główny RAM, ale nawet wtedy odejmuje od dostępnego fizycznego RAM. Nie wpływa na dostępną pamięć wirtualną. Dedykowane karty graficzne mają własne procesory i pamięć, które nie mają wpływu na dostępną pamięć systemu.
@Spooky Nie do końca prawda. Jeśli spojrzysz na mój link, zobaczysz, że pula stronicowana jest ograniczona wirtualną przestrzenią adresową trybu jądra, która wynosi 2 GB. Oznacza to w sumie około 6 GB.
Arda Xi
0

Jeśli OP odnosi się do systemów operacyjnych Windows, to wszystkie 32-bitowe systemy operacyjne są ograniczone do 4 GB łącznie, z wyjątkiem centrum danych serwera 2003 lub przedsiębiorstwa z koncepcją o nazwie PAE (rozszerzenie adresu fizycznego). Jest to również dostępne w nowoczesnych jądrach systemu Linux. Oczywiście 32-bitowe procesory stają się coraz rzadsze poza przestrzenią mobilną.

skub
źródło