What is memory virtualization?

Hvad er Virtuel Hukommelse? En Komplet Guide

21/12/2021

Rating: 4.32 (14915 votes)

I en verden, hvor vi konstant presser vores computere til det yderste med krævende programmer og multitasking, er der én ressource, der ofte bliver en flaskehals: hukommelsen. Fysisk hukommelse, også kendt som RAM (Random Access Memory), er en begrænset og kostbar komponent. Men hvad sker der, når de programmer, du vil køre, kræver mere hukommelse, end din computer fysisk har installeret? Det er her, konceptet virtuel hukommelse kommer ind i billedet. Det er en genial hukommelsesstyringsteknik, der bruges i næsten alle moderne operativsystemer, og som gør det muligt for din computer at kompensere for manglen på fysisk hukommelse ved midlertidigt at overføre data fra RAM til diskopbevaring.

What are the advantages of virtual memory?
One significant advantage of this method is that programs can exceed the physical memory capacity. Virtual memory abstracts primary memory into a broad, consistent array of storage, separating logical memory as viewed by the user from that of physical memory. This technique relieves programmers of the stress of memory storage limitations.

Denne teknik skaber en illusion for brugeren og programmerne om, at der er meget mere hovedhukommelse til rådighed, end der reelt er. Ved at adskille den logiske hukommelse, som et program ser, fra den faktiske fysiske hukommelse, frigør virtuel hukommelse programmører fra bekymringen om hukommelsesbegrænsninger og gør det muligt for systemet at køre større applikationer og håndtere flere processer samtidigt på en mere effektiv måde.

Indholdsfortegnelse

Hvordan Fungerer Virtuel Hukommelse?

Kernen i virtuel hukommelse er et tæt samarbejde mellem computerens hardware og software (operativsystemet). Når en applikation kører, gemmes dens data i fysiske adresser i RAM. En speciel hardwarekomponent kaldet en Hukommelsesstyringsenhed (MMU), som ofte er integreret i CPU'en, er ansvarlig for at oversætte de virtuelle adresser, som programmet bruger, til de faktiske fysiske adresser i RAM. Hvis RAM'en på et tidspunkt bliver fuld og der er brug for plads til mere presserende opgaver, kan data, der ikke har været brugt for nylig, blive "swappet" ud af RAM og midlertidigt gemt på en harddisk eller SSD. Denne proces styres af computerens hukommelsesmanager, som holder styr på flytningen af data mellem den fysiske og virtuelle hukommelse.

Where did virtual memory come from?
The first apparent real instance of a virtual memory system came from the University of Manchester in Manchester, England, in its attempt to develop a one-level storage system for the Atlas computer. The system used paging to map virtual addresses to a programmer onto the primary memory. Atlas was developed in 1959 and later commissioned in 1962.

To Primære Metoder: Sideinddeling og Segmentering

Der er generelt to hovedmetoder til at implementere virtuel hukommelse: sideinddeling (paging) og segmentering (segmentation).

Sideinddeling (Paging): Dette er den mest almindelige metode i moderne systemer. Hukommelsen opdeles i små, faste blokke kaldet "sider" (pages). Når computeren løber tør for ledig RAM, bliver de sider, der ikke er i aktiv brug, overført til et dedikeret område på harddisken, kendt som en sidefil eller swap-fil. Når en side, der er blevet flyttet til disken, pludselig er nødvendig igen, opstår en såkaldt "page fault" (sidefejl). Dette signalerer til operativsystemet, at det skal kopiere den pågældende side tilbage fra disken til RAM. Denne proces med at bytte sider frem og tilbage kaldes "page swapping". Systemet bruger "sidetabeller" til at holde styr på, hvor hver virtuel side er placeret – enten i RAM eller på disken.

Segmentering (Segmentation): En alternativ tilgang er segmentering, hvor den virtuelle hukommelse opdeles i logiske enheder af varierende længde kaldet "segmenter". Hvert segment svarer typisk til en logisk del af et program, såsom en kodeblok, en datastruktur eller en stak. Ligesom med sider kan segmenter, der ikke er i brug, flyttes til disken. En fordel ved segmentering er, at den matcher programmernes logiske opbygning bedre. En ulempe er dog risikoen for "ekstern fragmentering", hvor de ledige hukommelsesblokke bliver så små og spredte, at de ikke kan opfylde nye anmodninger om hukommelse, selvom der samlet set er nok ledig plads. Nogle systemer, som f.eks. Multics, har brugt en hybridmodel, der kombinerer både segmentering og sideinddeling for at udnytte fordelene ved begge metoder.

What is memory virtualization?

Fordele og Ulemper ved Virtuel Hukommelse

Brugen af virtuel hukommelse har revolutioneret, hvordan vi bruger computere, men teknikken er ikke uden kompromiser.

Fordele:

  • Større Programkapacitet: Den mest åbenlyse fordel er, at programmer kan være meget større end den fysiske RAM.
  • Forbedret Multitasking: Flere applikationer kan køre samtidigt, da hver applikation kan have sin egen del af den virtuelle hukommelse, uden at de alle behøver at være i RAM på samme tid.
  • Forenklet Programmering: Udviklere behøver ikke at bekymre sig om at administrere hukommelses-overlays eller begrænsninger i den fysiske hukommelse.
  • Øget Sikkerhed: Hukommelsesisolering sikrer, at hver proces kører i sit eget beskyttede adresserum, hvilket forhindrer den i at forstyrre andre processer.
  • Omkostningseffektivt: Det er billigere at tilføje mere diskplads end at installere mere RAM.

Ulemper:

  • Reduceret Ydeevne: Den største ulempe er hastigheden. At læse data fra en harddisk eller SSD er markant langsommere end at læse fra RAM. Overdreven brug af virtuel hukommelse vil gøre computeren mærkbart langsommere.
  • Thrashing: Hvis systemet har for lidt RAM og konstant skal bytte sider mellem RAM og disken for at udføre opgaver, kan der opstå en tilstand kaldet thrashing. Her bruger computeren næsten al sin processorkraft på at flytte data frem og tilbage i stedet for at udføre reelt arbejde, hvilket resulterer i en ekstremt langsom computer.
  • Diskpladsforbrug: Den virtuelle hukommelse optager plads på din harddisk eller SSD, som ellers kunne bruges til filer og programmer.
  • Hardwarekrav: Det kræver dedikeret hardware (MMU) for at håndtere oversættelsen mellem virtuelle og fysiske adresser.

Sammenligning: Virtuel Hukommelse vs. Fysisk Hukommelse (RAM)

For at give et klart overblik er her en tabel, der sammenligner de to typer hukommelse:

EgenskabFysisk Hukommelse (RAM)Virtuel Hukommelse
HastighedEkstremt hurtigMeget langsommere end RAM
KapacitetBegrænset af de installerede moduler (f.eks. 8GB, 16GB)Begrænset af ledig diskplads, kan være meget stor
OmkostningRelativt dyr pr. gigabyteMeget billig (en del af harddisken/SSD'en)
Adgang til CPUDirekte adgang for CPU'enIndirekte adgang; data skal først flyttes til RAM
VolatilitetVolatil (data forsvinder, når strømmen slukkes)Ikke-volatil (data forbliver på disken)

Ofte Stillede Spørgsmål (FAQ)

Kan jeg selv ændre størrelsen på min virtuelle hukommelse?

Ja, de fleste operativsystemer som Windows og macOS giver brugerne mulighed for manuelt at justere størrelsen på sidefilen. Standardindstillingerne fungerer dog fint for de fleste. At tildele for lidt plads kan føre til systemfejl, mens tildeling af for meget plads sjældent giver en mærkbar forbedring og blot optager unødig diskplads. Hvis dit system konstant bruger meget virtuel hukommelse, er den bedste løsning normalt at installere mere fysisk RAM.

What is memory virtualization?
Memory virtualization can be considered a generalization of the concept of virtual memory. Virtual memory is an integral part of a modern computer architecture; implementations usually require hardware support, typically in the form of a memory management unit built into the CPU.

Er virtuel hukommelse en erstatning for RAM?

Nej, absolut ikke. Virtuel hukommelse er en udvidelse eller et supplement til RAM, ikke en erstatning. På grund af den enorme hastighedsforskel er det altid at foretrække at have tilstrækkelig RAM til dine opgaver. Virtuel hukommelse fungerer som et sikkerhedsnet, når RAM'en er fyldt op.

Hvad er 'thrashing', og hvordan undgår jeg det?

Thrashing er den tilstand, hvor systemet bruger næsten al sin tid på at bytte data mellem RAM og harddisken, fordi der ikke er nok RAM til at holde de nødvendige processer aktive. Dette gør computeren ekstremt langsom og næsten ubrugelig. Den eneste effektive måde at løse thrashing på er ved at lukke nogle af de kørende programmer eller, som en mere permanent løsning, at installere mere RAM i computeren.

Hvis du vil læse andre artikler, der ligner Hvad er Virtuel Hukommelse? En Komplet Guide, kan du besøge kategorien Teknologi.

Go up