Beräkning av en fysisk adress från en logisk adress kräver en
minneshanteringsenhet (MMU) och kunskap om sidtabellen. Processen involverar flera steg:
1. Segmentering (om tillämpligt):
* Vissa system använder segmentering tillsammans med sökning. Om segmentering används delas den logiska adressen först i ett segmentnummer och en förskjutning inom det segmentet. Segmentnumret används sedan för att hitta motsvarande segmentbeskrivning i segmenttabellen. Segmentbeskrivningen innehåller information som basadressen för segmentet i fysiskt minne och dess gräns (storlek).
* Om segmentnumret är ogiltigt eller förskjutningen är utanför segmentgränsen inträffar ett segmenteringsfel.
2. Sökning:
* Huruvida segmentering används eller inte är sökning nästan alltid involverad i moderna system. Den logiska adressen (eller förskjutningen från föregående segmenteringssteg) är uppdelat i ett sidnummer och en sidförskjutning.
* sidnumret används som ett index i en sidtabell . Denna tabell kartlägger virtuella sidnummer till fysiska ramnummer. Varje post i sidtabellen innehåller det fysiska ramnumret (eller en pekare till en sidtabell på lägre nivå i person med flera nivåer) där motsvarande sida finns i fysiskt minne.
* Sökning på flera nivåer: För att hantera mycket stora adressutrymmen effektivt använder system ofta sidtabeller på flera nivåer (t.ex. tvånivåer, tre nivå, etc.). Detta undviker att ha en enda gigantisk sidtabell. I det här fallet bryts sidnumret ytterligare för att indexera successivt lägre nivåer av sidtabeller tills det slutliga fysiska ramnummer hittas. Varje post i en sidtabell på högre nivå pekar på nästa nivå.
* Om en sidtabellpost inte finns (sidfel) måste operativsystemet ladda den erforderliga sidan från sekundär lagring (t.ex. hårddisk) till huvudminnet. Detta innebär att avbryta den aktuella processen.
3. Beräkning av fysisk adress:
* När det fysiska ramnummer har erhållits från sidtabellen (er), den fysiska adressen beräknas genom att sammanfoga fysiska ramnummer och -sidan offset . Sidförskjutningen förblir oförändrad under översättningsprocessen.
Formel (förenklad för enskilda nivåer):
`Fysisk adress =(sidnummer * Sidstorlek) + Sidförskjutning '
Där:
* Sidnummer: Erhållits från den logiska adressen.
* Sidstorlek: En systemdefinierad konstant (t.ex. 4KB).
* Page Offset: Erhållits från den logiska adressen.
Sammanfattningsvis: MMU använder den logiska adressen och sidtabellerna för att utföra adressöversättning. Processen handlar om att leta upp poster i sidtabellerna för att hitta det fysiska ramnummer som motsvarar det logiska sidnumret och sedan kombinerar detta med sidförskjutningen för att få den slutliga fysiska adressen. Komplexiteten ökar med användning av segmentering och flernivå. Operativsystemet spelar en avgörande roll för att hantera sidtabellerna och hantera sidfel.