Krav til en virtuell minnearkitektur:
Virtual Memory er en minnestyringsteknikk som gjør at et system kan kjøre programmer som er større enn det fysiske minnet som er tilgjengelig. Dette oppnås ved å bruke en kombinasjon av maskinvare- og programvaremekanismer. Her er de viktigste kravene til en virtuell minnearkitektur:
1. Maskinvare:
* Memory Management Unit (MMU): Dette er en avgjørende maskinvarekomponent som oversetter virtuelle adresser som brukes av CPU til fysiske adresser i minnet. Den bruker en sidetabell for å holde oversikt over kartleggingen mellom virtuelle og fysiske adresser.
* Stor adresseplass: CPU må kunne adressere et større virtuelt minneplass enn det fysiske minnet som er tilgjengelig. Dette gir mulighet for å kjøre programmer større enn fysisk RAM.
* Sekundær lagring: En sekundær lagringsenhet som en harddisk-stasjon (HDD) eller solid-state-stasjon (SSD) er nødvendig for å holde de inaktive delene av programmer og data, som byttes inn og ut av fysisk minne etter behov.
2. Programvare:
* operativsystem (OS): OS administrerer virtuelt minne og håndterer kartleggingen mellom virtuelle og fysiske adresser. Den implementerer algoritmer som personsøking og bytte for å administrere minnebruk effektivt.
* Sidetabell: Dette er en datastruktur som kartlegger virtuelle adresser til fysiske adresser. MMU bruker denne tabellen for å utføre adresseoversettelse.
* Side erstatningsalgoritme: Denne algoritmen bestemmer hvilken side som skal bytte ut av fysisk minne når den er full. Vanlige algoritmer inkluderer FIFO, LRU og OPT.
* Minnetallokeringspolicyer: OS må implementere retningslinjer for å tildele virtuelt minne til forskjellige prosesser. Dette inkluderer retningslinjer for tildeling av sider til nye prosesser og tildeling av gratis sider til eksisterende prosesser.
* Beskyttelsesmekanismer: Virtuelle minnebehovsmekanismer for å beskytte prosesser mot tilgang til minnet som tilhører andre prosesser. Dette oppnås gjennom maskinvare- og programvaremekanismer som segmentering og sidetillatelser.
3. Andre hensyn:
* ytelse: Virtuell minne kan påvirke ytelsen på grunn av sidefeil (når en nødvendig side ikke er i fysisk minne) og oversettelsen av adresseoversettelse. Derfor er effektive algoritmer og optimaliseringer avgjørende.
* Sikkerhet: Virtuelt minne hjelper til med å beskytte prosesser mot hverandre og mot ondsinnet kode. Det gir også mulighet for å isolere prosesser og forhindre dem i å få tilgang til sensitive data.
* Fleksibilitet: Virtuelt minne lar systemer kjøre større og mer komplekse programmer, noe som gjør dem mer fleksible og kraftige.
Ved å oppfylle disse kravene, kan et system implementere en robust og effektiv virtuell minnearkitektur, slik at det kan kjøre programmer og applikasjoner som overstiger begrensningene i fysisk minne.