virtuel hukommelse er et område af et computersystems sekundære hukommelseslagringsplads (såsom en harddisk eller solid state-drev), der fungerer som om det var en del af systemets RAM eller primære hukommelse.
ideelt set gemmes de data, der er nødvendige for at køre applikationer, i RAM, hvor CPU ‘ en hurtigt kan få adgang til dem. Men når store applikationer køres, eller når mange applikationer kører på en gang, kan systemets RAM blive fuld.
for at omgå dette problem kan nogle data, der er gemt i RAM, der ikke bruges aktivt, midlertidigt flyttes til virtuel hukommelse (som fysisk er placeret på en harddisk eller anden lagerenhed). Dette frigør plads i RAM, som derefter kan bruges til at rumme data, som systemet skal have adgang til øjeblikkeligt.
ved at bytte data mellem RAM og virtuel hukommelse, når det ikke er nødvendigt, og tilbage fra virtuel hukommelse til RAM, når det er nødvendigt, kan et system fortsætte med at arbejde glat med langt mindre fysisk RAM, end det ellers ville kræve.
virtuel hukommelse gør det muligt for et system at køre større applikationer eller køre flere applikationer på samme tid uden at løbe tør for RAM. Specifikt kan systemet fungere som om dets samlede RAM-ressourcer var lig med mængden af fysisk RAM plus mængden af virtuel RAM.
Hvorfor er der behov for virtuel hukommelse?
virtuel hukommelse blev udviklet, da fysisk RAM var meget dyrt, og RAM er stadig dyrere pr. Af den grund er det meget billigere at bruge en kombination af fysisk RAM og virtuel hukommelse end at udstyre et computersystem med mere RAM.
da brug af virtuel hukommelse (eller forøgelse af virtuel hukommelse) ikke har nogen ekstra økonomiske omkostninger (fordi den bruger eksisterende lagerplads), giver den en måde for en computer at bruge mere hukommelse end fysisk tilgængelig på systemet.
en anden vigtig driver til brug af virtuel hukommelse er, at alle computersystemer har en grænse (dikteret af udstyr og programmer) på mængden af fysisk RAM, der kan installeres. Brug af virtuel hukommelse gør det muligt for systemet at fortsætte med at fungere ud over disse fysiske RAM-grænser.
virtuel hukommelse vs. fysisk hukommelse
da RAM er dyrere end virtuel hukommelse, ser det ud til – alt andet lige – at computere skal være udstyret med så lidt RAM og så meget virtuel hukommelse som muligt.
men faktisk er egenskaberne ved virtuel hukommelse anderledes end fysisk hukommelse. Hovedforskellen mellem virtuel hukommelse og fysisk hukommelse er, at RAM er meget hurtigere end virtuel hukommelse.
så et system med 2 GB fysisk RAM og 2 GB virtuel hukommelse tilbyder ikke den samme ydelse som et lignende system med 4 GB fysisk RAM. For at forstå hvorfor er det nødvendigt at forstå, hvordan virtuel hukommelse fungerer.
Hvordan Fungerer Virtuel Hukommelse?
når en applikation (inklusive operativsystemet) kører, gemmer den placeringen af programtråde og andre data på en virtuel adresse, mens dataene faktisk gemmes på en fysisk adresse i RAM. Hvis der senere er behov for RAM-plads mere presserende ved en anden proces, kan dataene byttes ud af RAM og til virtuel hukommelse.
ansvaret for at holde styr på alle disse data, da de byttes mellem fysisk og virtuel hukommelse, falder til computerens hukommelsesstyring. Memory manager opretholder en tabel, der kortlægger virtuelle adresser, der bruges af operativsystemet og applikationer til de fysiske adresser, som data faktisk er gemt i. Når data byttes mellem RAM og virtuel hukommelse, opdateres tabellen, så en given virtuel adresse altid peger på den korrekte fysiske placering.
en computer kan kun køre tråde og manipulere data, der er gemt i RAM snarere end virtuel hukommelse. Og det tager en ikke ubetydelig mængde tid at bytte data, der er nødvendige i RAM. Derfor følger det, at brug af virtuel hukommelse indebærer et præstationshit.
sagt på en anden måde vil et system med 4 GB RAM generelt tilbyde højere ydelse end et system med 2 GB RAM og 2 GB virtuel hukommelse på grund af præstationshittet forårsaget af bytte, og af den grund siges det, at virtuel hukommelse er langsommere end RAM.
et potentielt problem med virtuel hukommelse er, at hvis mængden af RAM, der er til stede, er for lille sammenlignet med mængden af virtuel hukommelse, kan et system ende med at bruge en stor del af sine CPU-ressourcer til at bytte data frem og tilbage. I mellemtiden, udførelse af nyttigt arbejde grinds til en nær stop-en proces kendt som thrashing.
for at forhindre thrashing er det normalt nødvendigt at reducere antallet af applikationer, der køres samtidigt, eller blot for at øge mængden af RAM i systemet.
operativsystemer, som de fleste versioner af vinduer, anbefaler generelt, at brugerne ikke øger virtuel hukommelse ud over 1,5 gange mængden af fysisk RAM til stede. Så et system med 4 GB RAM skal have virtuel hukommelse på højst 6 GB.
for at minimere præstationshittet forårsaget af udveksling mellem fysisk og virtuel hukommelse er det bedst at bruge den hurtigste lagerenhed, der er tilsluttet systemet, til at være vært for den virtuelle hukommelse og til at lokalisere det virtuelle hukommelseslagringsområde på sin egen partition.
virtuel hukommelse kan fungere sammen med en computers hovedhukommelse for at muliggøre hurtigere, mere flydende operationer.
Sådan øges virtuel hukommelse i et System
de fleste operativsystemer giver brugerne mulighed for at øge virtuel hukommelse fra en konfigurationsside.
- i vinduer kan brugerne også tillade systemet at styre mængden af virtuel hukommelse, der leveres dynamisk.
- på samme måde kan brugerne i Mac OS bruge præferencepanelet til at tildele virtuel hukommelse.
typer af virtuel hukommelse: Personsøgning og segmentering
virtuel hukommelse kan styres på en række forskellige måder af et systems operativsystem, og de to mest almindelige tilgange er personsøgning og segmentering.
virtuel Hukommelsessøgning
i et system, der bruger Personsøgning, er RAM opdelt i et antal blokke – normalt 4K i størrelse – kaldet sider. Processer tildeles derefter lige nok sider til at opfylde deres hukommelseskrav. Det betyder, at der altid vil være en lille mængde hukommelse spildt, undtagen i det usædvanlige tilfælde, hvor en proces kræver nøjagtigt et helt antal sider.
under det normale driftsforløb byttes sider (dvs.hukommelsesblokke med 4K i størrelse) mellem RAM og en sidefil, der repræsenterer den virtuelle hukommelse.
virtuel Hukommelsessegmentering
segmentering er en alternativ tilgang til hukommelsesstyring, hvor processer i stedet for sider med en fast størrelse tildeles segmenter af forskellig længde for nøjagtigt at opfylde deres krav. Det betyder, at i modsætning til i et personsøgt system spildes ingen hukommelse i et segment.
segmentering gør det også muligt at opdele applikationer i logisk uafhængige adresserum, hvilket kan gøre dem lettere at dele og mere sikre.
men et problem med segmentering er, at fordi hvert segment er en anden længde, kan det føre til hukommelse “fragmentering.”Dette betyder, at når segmenter tildeles og de-allokeres, kan små stykker hukommelse efterlades spredt rundt, som er for små til at være nyttige.
efterhånden som disse små bidder opbygges, kan færre og færre segmenter af nyttig størrelse tildeles. Og hvis operativsystemet begynder at bruge disse små segmenter, er der et stort antal at holde styr på, og hver proces skal bruge mange forskellige segmenter, hvilket er ineffektivt og kan reducere ydeevnen.
fordele og ulemper ved virtuel hukommelse
selvom RAM nu er relativt billigt sammenlignet med dets omkostninger, da virtuel hukommelse først blev udviklet, er det stadig yderst nyttigt, og det er stadig ansat i mange, måske de fleste computersystemer. Nøgleproblemet med virtuel hukommelse vedrører ydeevne.
fordele ved virtuel hukommelse
- tillader, at flere applikationer køres på samme tid.
- tillader større applikationer at køre i systemer, der ikke har nok fysisk RAM alene til at køre dem.
- giver en måde at øge hukommelsen, hvilket er billigere end at købe mere RAM.
- giver en måde at øge hukommelsen på i et system, der har den maksimale mængde RAM, som dets udstyr og operativsystem kan understøtte.
ulemper ved virtuel hukommelse
- tilbyder ikke den samme ydelse som RAM.
- kan påvirke systemets samlede ydeevne negativt.
- optager lagerplads, som ellers kunne bruges til langvarig datalagring.