Rozumiem, że w 32-bitowym systemie operacyjnym adres jest wyrażony w 32 bitach, więc co najwyżej system operacyjny może użyć 2 ^ 32 = 4 GB pamięci
Najbardziej, że proces może zająć to 4GB. Potencjalnie mylisz pamięć z przestrzenią adresową . Proces może mieć więcej pamięci niż przestrzeń adresowa. Jest to całkowicie legalne i dość powszechne w przetwarzaniu wideo i innych aplikacjach intensywnie korzystających z pamięci. Procesowi można przypisać dziesiątki GB pamięci i dowolnie zamieniać go w przestrzeń adresową. Jednocześnie do przestrzeni adresowej użytkownika można przejść tylko 2 GB .
Jeśli masz garaż na cztery samochody w swoim domu, nadal możesz posiadać pięćdziesiąt samochodów. Po prostu nie możesz trzymać ich wszystkich w garażu. Musisz mieć dodatkowe miejsce do przechowywania co najmniej 46 z nich; jakie samochody trzymasz w garażu, a które na parkingu przy ulicy, zależy od ciebie.
Czy to oznacza dowolny 32-bitowy system operacyjny, czy to Windows, czy Unix, jeśli maszyna ma pamięć RAM + plik stronicowania na dysku twardym większym niż 4 GB, na przykład 8 GB pamięci RAM i plik stronicowania 20 GB, nigdy nie będzie „zużytej pamięci”?
Absolutnie to nie znaczy. Pojedynczy proces może zużyć więcej pamięci! Ponownie ilość pamięci wykorzystywanej przez proces jest prawie całkowicie niezwiązana z ilością wirtualnej przestrzeni adresowej wykorzystywanej przez proces. Podobnie jak liczba samochodów, które trzymasz w garażu, jest całkowicie niezwiązana z liczbą posiadanych przez ciebie samochodów.
Ponadto dwa procesy mogą współużytkować nieprywatne strony pamięci . Jeśli dwadzieścia procesów ładuje tę samą bibliotekę DLL, wszystkie procesy współużytkują strony pamięci dla tego kodu. Nie dzielą przestrzeni adresowej pamięci wirtualnej , dzielą pamięć .
Chodzi mi o to, że w przypadku, gdy nie jest to jasne, powinieneś przestać myśleć o pamięci i adresować przestrzeń jako to samo, ponieważ to wcale nie jest to samo.
jeśli ten 32-bitowy komputer z systemem operacyjnym ma 2 GB pamięci RAM i 2 GB pliku strony, zwiększenie rozmiaru pliku strony nie poprawi wydajności. Czy to prawda?
Masz pięćdziesiąt samochodów i garaż na cztery samochody, a także 100 parkingów na ulicy. Zwiększasz wielkość parkingu do 200 miejsc. Czy któryś z twoich samochodów przyspiesza w wyniku tego, że masz teraz 150 dodatkowych miejsc parkingowych zamiast 50 dodatkowych miejsc parkingowych?