Virtuel hukommelse
Virtuel hukommelse er en måde at administrere hukommelse på, som er en nyere teknologisk trend, der anvendes i computere. Hardware (den fysiske del af computeren, f.eks. CPU'en eller grafikkortet) kører software. Denne software har brug for computerhukommelse for at kunne køre og gøre det, den skal gøre. De fleste computere, der anvendes i dag, kan gøre mere end én ting ad gangen, de kører mere end ét program. Dette er kendt som multiprocessing.
I dette tilfælde deler alle de programmer eller applikationer, der kører på computeren på et tidspunkt, ressourcerne på den. En computer har ikke flere processorer eller mere hovedhukommelse (RAM), blot fordi der kører flere programmer på den.
Virtuel hukommelse er idéen om, at programmet ser en blok af hukommelse af en given størrelse. Programmet kan bruge denne hukommelse, som det ønsker det. Denne blok af hukommelse er virtuel i den forstand, at den kommer fra forskellige dele. Noget af den kan være i computerens hovedhukommelse, men noget af den kan også være på disken. CPU'en har en særlig del, kaldet Arithmetic Logic Unit, som foretager nogle af oversættelserne mellem programhukommelse og systemressourcer. Moderne styresystemer udfører også en del af dette arbejde.
Når et program forsøger at få adgang til en blok af hukommelse, der ikke er i systemhukommelsen, stoppes programmet, og blokken indlæses i systemhukommelsen. Det, der var i denne del af systemhukommelsen, skrives til disken. Dette kaldes normalt for paging.
Visse computersystemer, f.eks. indlejrede systemer, bruger ikke virtuel hukommelse, fordi de har brug for en meget hurtig svartid eller en svartid, der altid er den samme. Et af problemerne er, at det med virtuel hukommelse er vanskeligt at forudsige svartiden. Et program, der bruger en del af hukommelsen, som skal indlæses fra disken, vil have en anden responstid end et program, der ikke gør det. Derfor anvendes begrebet virtuel hukommelse ikke i indlejrede systemer.
![Programmet tror, at det har et stort område af sammenhængende adresser, men i virkeligheden er de dele, som det bruger i øjeblikket, spredt rundt i hovedhukommelsen, og de inaktive dele er gemt i en diskfil.](https://alegsaonline.com/image/VirtualMem01.png)
![Zoom](https://www.alegsaonline.com/zoom.png)
Programmet tror, at det har et stort område af sammenhængende adresser, men i virkeligheden er de dele, som det bruger i øjeblikket, spredt rundt i hovedhukommelsen, og de inaktive dele er gemt i en diskfil.
Spørgsmål og svar
Spørgsmål: Hvad er virtuel hukommelse?
A: Virtuel hukommelse er en måde at administrere computerhukommelse på, som gør det muligt for programmer at få adgang til en blok af hukommelse af en given størrelse. Denne blok af hukommelse kan komme fra forskellige dele, f.eks. hovedhukommelsen eller disken.
Spørgsmål: Hvordan fungerer virtuel hukommelse?
Svar: Virtuel hukommelse fungerer ved at give CPU'ens Aritmetic Logic Unit mulighed for at foretage oversættelser mellem program- og systemressourcer. De moderne styresystemer udfører også en del af dette arbejde. Når et program forsøger at få adgang til en blok af hukommelse, der ikke findes i systemhukommelsen, stoppes det, og blokken indlæses i systemhukommelsen.
Spørgsmål: Hvad er nogle eksempler på computere, der ikke bruger virtuel hukommelse?
Svar: Indlejrede systemer er et eksempel på computere, der ikke bruger virtuel hukommelse, fordi de har brug for hurtige svartider eller svartider, der altid er de samme. Det er vanskeligt at forudsige svartiden med virtuel hukommelse, så den bruges ikke i indlejrede systemer.
Spørgsmål: Hvad er multiprocessing?
Svar: Multiprocessing er, når en computer kan gøre mere end én ting på én gang, idet den kører flere programmer på én gang, som deler dens ressourcer.
Spørgsmål: Hvad sker der, når et program forsøger at få adgang til en blok af hukommelse, der ikke findes i systemhukommelsen?
Svar: Når et program forsøger at få adgang til en blok af hukommelse, der ikke findes i systemhukommelsen, stoppes det, og blokken indlæses i systemhukommelsen.
Spørgsmål: Hvad er paging?
Svar: Paging henviser til det, der sker, når det, der var i den pågældende del af systemhukommelsen, skal skrives tilbage på disken, fordi et program har adgang til en anden del, der ikke oprindeligt var gemt der.