Den virtuelle adresse til fysisk adressekortlægning i computersystemer er en vigtig proces, der gør det muligt for flere processer at køre samtidigt, mens de tilsyneladende har eksklusiv adgang til hele systemhukommelsen. Det opnås gennem en kombination af hardware- og softwarekomponenter, primært
MMU (hukommelsesstyringsenheden) og
side -tabellen . Her er en sammenbrud:
1. Virtuelle adresser:
* Hver proces modtager sit eget private virtuelle adresserum. Dette rum er uafhængigt af andre processernes virtuelle adresserum, hvilket betyder, at en proces kan få adgang til adresse 0x1000 uden konflikt med en anden proces også ved hjælp af 0x1000.
* Denne virtuelle adresseplads er stor, hvilket ofte overstiger den tilgængelige fysiske RAM. Dette gør det muligt for processer at bruge mere hukommelse, end der findes fysisk.
2. Fysiske adresser:
* Dette er de faktiske adresser i den fysiske RAM. MMU oversætter virtuelle adresser til fysiske adresser.
* Den fysiske adresseplads er begrænset af mængden af RAM, der er installeret i systemet.
3. Hukommelsesstyringsenheden (MMU):
* MMU er en hardware -komponent, der udfører den afgørende opgave med at oversætte virtuelle adresser til fysiske adresser. Det gør dette i realtid, hver gang en proces forsøger at få adgang til hukommelse.
* Den bruger sidetabellen (beskrevet nedenfor) til at udføre oversættelsen.
4. Sidetabeller:
* Sidetabeller er datastrukturer, der er bosiddende i hukommelsen, der indeholder kortlægningen mellem virtuelle sider og fysiske rammer.
* sider: Den virtuelle adresseplads er opdelt i blokke i fast størrelse kaldet sider. En typisk sidestørrelse er 4KB.
* rammer: Den fysiske hukommelse er på lignende måde opdelt i blokke i fast størrelse kaldet rammer, normalt den samme størrelse som sider.
* Sidetabellen fungerer i det væsentlige som en opslagstabel. I betragtning af et virtuelt sidetal returnerer det det tilsvarende fysiske rammetummer.
5. Oversættelsesprocessen (forenklet):
1. Virtuel adresse Segmentering: Den virtuelle adresse er opdelt i to dele:det virtuelle sidetal (VPN) og siden Offset.
2. side Tabelopslag: VPN bruges som et indeks i sidetabellen for at finde den tilsvarende post. Denne post indeholder det fysiske rammetal (PFN) og andre oplysninger som adgangstilladelser (læs, skriv, udfør).
3. Konstruktion af fysisk adresse: PFN kombineres med siden forskudt fra den originale virtuelle adresse for at oprette den endelige fysiske adresse.
4. hukommelsesadgang: MMU bruger derefter denne fysiske adresse til at få adgang til hukommelsesplaceringen.
6. Sidetabeller på flere niveauer:
For at undgå for store sidetabeller (hvilket ville være tilfældet, hvis en enkelt side-tabel kortlagt hele den virtuelle adresseplads), bruger mange systemer på flere niveauer. Dette skaber en hierarkisk struktur, hvor hver niveau peger på den næste, hvilket til sidst fører til det fysiske rammetummer. Dette sparer hukommelsen og forbedrer effektiviteten.
7. Oversættelses lookaside buffer (TLB):
TLB er en cache i MMU, der for nylig brugte virtual-til-fysiske adresseoversættelser. Dette fremskynder oversættelsesprocessen betydeligt, da adgangen til TLB er meget hurtigere end at få adgang til hovedhukommelsen for at slå op på sidetabellen. Hvis en oversættelse ikke findes i TLB (en TLB -miss), skal MMU adgang til sidetabellen, som er markant langsommere.
8. Betingelse og bytte:
* Pagning: Hvis en proces forsøger at få adgang til en side, der ikke i øjeblikket er i RAM (en sidefejl), indlæser operativsystemet den nødvendige side fra sekundær opbevaring (harddisk) til RAM.
* bytning: Operativsystemet kan muligvis bytte hele processernes virtuelle adresserum ind og ud af RAM for at styre hukommelsen effektivt.
Kortfattet: Den virtuelle adresse til fysisk adressekortlægning er en kompleks, men essentiel mekanisme, der muliggør effektiv hukommelsesstyring, beskyttelse og samtidig udførelse af flere processer. MMU, sidetabeller og TLB arbejder sammen for at udføre denne oversættelse problemfrit, hvilket gør den gennemsigtig for applikationerne.