Den virtuella adressen till fysisk adresskartläggning i datorsystem är en avgörande process som gör det möjligt för flera processer att köra samtidigt samtidigt som de till synes har exklusiv åtkomst till hela systemminnet. Det uppnås genom en kombination av hårdvaru- och mjukvarukomponenter, främst
MMU (Memory Management Unit) och
sidtabellen . Här är en uppdelning:
1. Virtuella adresser:
* Varje process får sitt eget privata virtuella adressutrymme. Detta utrymme är oberoende av andra processers virtuella adressutrymmen, vilket innebär att en process kan komma åt adress 0x1000 utan konflikt med en annan process som också använder 0x1000.
* Detta virtuella adressutrymme är stort, ofta överskrider den fysiska ram som finns. Detta gör det möjligt för processer att använda mer minne än fysiskt finns.
2. Fysiska adresser:
* Dessa är de faktiska adresserna i den fysiska RAM. MMU översätter virtuella adresser till fysiska adresser.
* Det fysiska adressutrymmet begränsas av mängden RAM som är installerad i systemet.
3. Memory Management Unit (MMU):
* MMU är en hårdvarukomponent som utför den avgörande uppgiften att översätta virtuella adresser till fysiska adresser. Det gör detta i realtid, varje gång en process försöker komma åt minnet.
* Den använder sidtabellen (beskrivs nedan) för att utföra översättningen.
4. Sidtabeller:
* Sidtabeller är datastrukturer som finns i minnet som innehåller kartläggningen mellan virtuella sidor och fysiska ramar.
* sidor: Det virtuella adressutrymmet är uppdelat i block med fast storlek som kallas sidor. En typisk sidstorlek är 4KB.
* ramar: Det fysiska minnet är på liknande sätt uppdelat i block med fast storlek som kallas ramar, vanligtvis i samma storlek som sidor.
* Sidtabellen fungerar i huvudsak som en uppslagstabell. Med tanke på ett virtuellt sidnummer returnerar det motsvarande fysiska ramnummer.
5. Översättningsprocessen (förenklad):
1. Virtuell adresssegmentering: Den virtuella adressen är uppdelad i två delar:det virtuella sidnumret (VPN) och sidförskjutningen.
2. Sid Tabelluppslag: VPN används som ett index i sidtabellen för att hitta motsvarande post. Det här inlägget innehåller det fysiska ramnummer (PFN) och annan information som åtkomstbehörigheter (läs, skriv, kör).
3. Fysisk adresskonstruktion: PFN kombineras med sidförskjutningen från den ursprungliga virtuella adressen för att skapa den slutliga fysiska adressen.
4. Minnesåtkomst: MMU använder sedan denna fysiska adress för att komma åt minnesplatsen.
6. Page-tabeller på flera nivåer:
För att undvika alltför stora sidtabeller (vilket skulle vara fallet om en enda sidstabell mappade hela den virtuella adressutrymmet) använder många system flersnivå sidtabeller. Detta skapar en hierarkisk struktur, där varje nivå pekar på nästa och så småningom leder till det fysiska ramnummer. Detta sparar minne och förbättrar effektiviteten.
7. Översättning Lookaside Buffer (TLB):
TLB är en cache inom MMU som lagrar nyligen använde virtuella till-fysiska adressöversättningar. Detta påskyndar översättningsprocessen avsevärt, eftersom åtkomst till TLB är mycket snabbare än att komma åt huvudminnet för att leta upp sidtabellen. Om en översättning inte finns i TLB (en TLB -miss) måste MMU komma åt sidtabellen, vilket är betydligt långsammare.
8. Sökning och byte:
* Paging: Om en process försöker komma åt en sida som för närvarande inte är i RAM (ett sidfel) laddar operativsystemet den nödvändiga sidan från sekundär lagring (hårddisk) till RAM.
* byte: Operativsystemet kan byta hela processernas virtuella adressutrymmen in och ut ur RAM för att hantera minnet effektivt.
Sammanfattningsvis: Den virtuella adressen till fysisk adresskartläggning är en komplex men väsentlig mekanism som möjliggör effektiv minneshantering, skydd och samtidig exekvering av flera processer. MMU, sidtabeller och TLB arbetar tillsammans för att utföra denna översättning sömlöst, vilket gör den transparent för applikationerna.