Istnieje tylko 36 fizycznych linii adresowych, ale wpis tablicy stron ma długość 64 bitów. Jak procesor sprawdza, czy adres jest prawidłowy? Jak system operacyjny Linux mapuje ten sam adres wirtualny w różnych procesach na różne adresy fizyczne?
Oto artykuł wikipedii o rozszerzeniu adresu fizycznego (PAE). http://en.wikipedia.org/wiki/Physical_Address_Extension .
linux
linux-kernel
x86
Jeff
źródło
źródło
Odpowiedzi:
W rzeczywistości jest to wykonywane przez kawałek sprzętu zwany jednostka zarządzania pamięcią (MMU), który obsługuje translację adresów wirtualnych na fizyczne. Jeśli chodzi o adres „prawidłowy”, każdy proces ma własną unikalną przestrzeń adresową (a zatem realizuje schemat pamięci wirtualnej), więc każdy adres jest technicznie ważny. Pamiętaj, że proces może przydzielić więcej pamięci niż jest fizycznie dostępna.
MMU używa a bufor do tłumaczenia (TLB) do szybkiego dekodowania adresu wirtualnego na adres fizyczny, przechowywany w obrębie strona tabeli .
Jest to również spowodowane tym, że każdy proces ma unikalny charakter wirtualna przestrzeń adresowa , co ma zasadnicze znaczenie dla wdrożenia pamięć wirtualna . Adres wirtualny dla danego procesu jest mapowany na trochę fizyczny sprzęt pamięci masowej (RAM, dysk itp.), ale mapowanie odbywa się w czasie wykonywania przez system operacyjny i MMU.
źródło