Co się stanie, gdy zainstalujesz> 4 GB pamięci RAM na komputerze z 32-bitowym systemem operacyjnym?

10

Jestem programistą i nie jestem kompletnym idiotą, więc wiem dokładnie, dlaczego nie możesz uzyskać dostępu do pamięci, w której nie masz wskaźników. Ale nigdy tego nie próbowałem i nie sądzę, żebym kiedykolwiek to zrobił, ponieważ wydaje się to dużą stratą pieniędzy / czasu.

Zastanawiam się tylko, czy są jakieś narzędzia, które pozwalają mi uzyskać dostęp do mojego himem (można by pomyśleć, że do tej pory poradziliśmy sobie z tym problemem).

Peter Turner
źródło
Sprawdź ten alternatywny sposób sformułowania tego samego pytania: superuser.com/questions/7964/where-did-the-other-8-gb-of-ram-go
stamtąd
Dzięki, tutaj też jest dobra odpowiedź, być może będę musiał zamknąć to pytanie. serverfault.com/questions/3342/…
Peter Turner

Odpowiedzi:

20

Jeśli masz procesor z rozszerzeniem adresu fizycznego (co prawdopodobnie robisz) i odpowiedni system operacyjny ( np. Nie jest to wersja konsumencka systemu Windows, używa PAE, ale jest ograniczona do 4 GB ), to pamięć można zmapować i normalnie używać. W przeciwnym razie pamięć po prostu nie zostanie zaadresowana, system operacyjny poinformuje cię, że masz tyle chipów, jakkolwiek są one duże, ale po prostu nie zostaną dodane do ilości dostępnej pamięci.

Mike McQuaid
źródło
3
Dlaczego normalne wersje systemu Windows nie obsługują PAE? Kolejny powód do korzystania z Linuksa ...
Zifre
1
Ponieważ wersje 64-bitowe / serwerowe kosztują więcej.
Martin Beckett,
2
Nawet wersje konsumenckie systemu Windows obsługują PAE - są one ograniczone do 4 GB (ze względu na zgodność i ze względów marketingowych). (PAE jest nadal używany dla funkcji „Zapobieganie wykonywaniu danych”.)
user1686
3
@Zifre, wielu kierowanych do konsumentów sterowników nie radzi sobie z PAE i> 4G pamięci RAM w systemie Windows. W związku z tym włączenie PAE często powoduje tajemnicze awarie i dlatego jest używane tylko w wersjach serwerowych, gdzie prawdopodobnie zainstalujesz sterowniki wyższej jakości zaprojektowane dla dużych ilości pamięci.
bdonlan
bdonlan: PAE jest również włączony w wersjach konsumenckich, mają po prostu sztuczny limit 4 GB z tego powodu.
user1686,
1

Wszystko działałoby dobrze, ponieważ 4 GB to limit dla procesora 32-bitowego. Oto artykuł, który jest bardziej szczegółowy i pokazuje, że możesz zainstalować i używać znacznie więcej niż 4 GB w 32-bitowym systemie operacyjnym.

mandroid
źródło
Tyle że nie cała rzeczywista przestrzeń adresowa jest koniecznie przeznaczona na pamięć fizyczną.
Jason S
Przepraszam, miałem na myśli więcej niż 4 GB, po prostu coś w zakresie większym niż 2 ^ 32.
Peter Turner
1

Sądzę, że technicznie, jeśli system operacyjny byłby dobrze zaprojektowany, można by użyć więcej niż 4 GB. Nie ma powodu, dla którego myślę, że system operacyjny z pamięcią wirtualną nie może używać 32-bitowych adresów wirtualnych z 64-bitowymi adresami rzeczywistymi.

Jason S.
źródło
1

Zależy, co masz na myśli 32-bitowy system operacyjny!

Oczywiście w nowoczesnych systemach operacyjnych możesz podłączyć tyle, ile Twoja płyta główna jest w stanie bez problemu (chociaż możesz nie być w stanie korzystać z nich wszystkich), ale nie zawsze tak było, przynajmniej w przypadku systemu Windows:

Błąd w Windows 95, 98, SE i ME pojawia się, jeśli masz zainstalowane więcej niż 512 MB pamięci.

http://answers.google.com/answers/threadview/id/333688.html

Factor Mystic
źródło
0

Pierwszą rzeczą do zrozumienia jest to, że nowoczesne systemy komputerowe wykorzystują pamięć wirtualną. Możesz mieć 32-bitowe adresy wirtualne dla aplikacji, mając jednocześnie większe niż 32-bitowe adresy fizyczne.

Drugą rzeczą do zrozumienia jest to, że fizyczna przestrzeń adresowa jest wykorzystywana do różnych rzeczy, przede wszystkim do głównych urządzeń pamięci RAM i pamięci mapowanych. Zwłaszcza karty graficzne często mają duże obszary mapowane w pamięci. Rezultat jest taki, że jeśli masz tylko 4 GB użytecznej fizycznej przestrzeni adresowej, możesz uzyskać znacznie mniej niż 4 GB użytecznego pamięci RAM. Typowo użyteczne jest około 3,5 GB, ale widziałem systemy, w których było tak niskie, jak 2,5 GB.

Na komputerze PC, który obsługuje ponad 4 GB fizycznej przestrzeni adresowej, wykorzystywany jest mechanizm PAE. Aby to zadziałało, potrzeba kilku rzeczy.

  1. Procesor musi go obsługiwać.
  2. Chipset musi go obsługiwać.
  3. BIOS musi go obsługiwać.
  4. System operacyjny musi go obsługiwać.

Procesory od dawna obsługują PAE, co nie stanowi problemu.

Wiele starszych chipsetów było ograniczone do 4 GB fizycznej przestrzeni adresowej. Chipsety Intel IIRC do laptopów uzyskały wsparcie dla ponad 4 GB przestrzeni adresowej z generacją „Santa Rosa” w 2007 roku. Nie jestem pewien co do chipsetów stacjonarnych, ale spodziewam się, że było to mniej więcej w tym samym czasie. Chipsety stacji roboczej / serwera oczywiście uzyskały wsparcie znacznie wcześniej.

Afaict BIOSes w większości obsługują go, jeśli zestaw układów tak. Nie zaskoczyłoby mnie jednak, gdyby były wyjątki.

OS jest kolczasty. Linux i Windows od dawna obsługują PAE. Niestety, ponieważ system Windows XP z dodatkiem Service Pack 2 MS sztucznie ograniczył fizyczną przestrzeń adresową do 4 GB. Twierdzą, że zrobili to z powodu błędnych sterowników, cynicy podejrzewaliby, że zrobili to, aby zmusić ludzi do kupowania wersji serwerowych.

W systemie Windows XP jest to wbudowane w jądro i zasadniczo nie można go cofnąć. Jednak w późniejszych wersjach można go ominąć kilkoma drobnymi włamaniami do jądra. Szczegółowe informacje można znaleźć na stronie https://wj32.org/wp/ .

płyn do płukania
źródło