Hvad er virtuel hukommelse?
Virtuel hukommelse er en hukommelsesstyringsteknik, der giver en computer mulighed for at køre programmer, der er større end den tilgængelige fysiske RAM. Det opnår dette ved at bruge en kombination af ram og sekundær opbevaring (normalt harddisken) for at skabe et virtuelt adresserum.
Sådan fungerer det:
1. Virtuel adresseplads: Hvert program tildeles et virtuelt adresserum, som er et sæt adresser, som programmet kan få adgang til. Dette rum kan være meget større end den tilgængelige fysiske RAM.
2. Sidetabel: En sidetabel kortlægger de virtuelle adresser, der bruges af programmet til de faktiske fysiske hukommelsesadresser. Denne tabel er gemt i RAM.
3. bytning: Når et program har brug for at få adgang til data, der ikke i øjeblikket er i RAM, bruger operativsystemet en teknik kaldet bytte. Dette involverer at flytte data mellem RAM og harddisken.
* side-in: Når et program har brug for data, der i øjeblikket er på harddisken, indlæser operativsystemet disse data i RAM. Dette kaldes side-in.
* side-out: Når RAM er fuld, og nye data skal indlæses, vælger operativsystemet data fra RAM for at flytte til harddisken. Dette kaldes side-out.
Fordele ved virtuel hukommelse:
* tillader at køre større programmer: Programmer kan være større end den tilgængelige fysiske RAM.
* Multitasking: Tillader flere programmer at køre samtidigt, selvom de kræver mere hukommelse end tilgængelig.
* Hukommelsesbeskyttelse: Forhindrer programmer i at forstyrre hinandens hukommelse.
* Fleksibilitet: Muliggør dynamisk tildeling af hukommelsesressourcer.
Ulemper ved virtuel hukommelse:
* Performance overhead: At bytte data mellem RAM og harddisken er langsommere end at få adgang til data direkte fra RAM. Dette kan føre til ydelsesproblemer, især hvis der sker en masse bytte.
* thrashing: Hvis et program konstant bytter data mellem RAM og harddisken, kan det blive ekstremt langsomt. Dette er kendt som Thrashing.
Kortfattet: Virtuel hukommelse er en afgørende teknik for moderne operativsystemer. Det gør det muligt for computere at køre større og mere komplekse programmer ved at udvide den tilgængelige fysiske RAM. Det er dog vigtigt at være opmærksom på de ydelsesudvekslinger, der er involveret i at bruge virtuel hukommelse.