Virtuel hukommelse er en hukommelseshåndteringsteknik, der gør det muligt for operativsystemet at gøre mere effektiv brug af fysisk hukommelse. Det fungerer ved at skabe et virtuelt adresserum for hver proces, som er en række adresser, som processen kan bruge til at få adgang til hukommelsen. Den fysiske hukommelse opdeles derefter i sider, som er små hukommelsesblokke, der kan byttes ind og ud af den fysiske hukommelse efter behov.
Når en proces får adgang til en virtuel adresse, tjekker operativsystemet for at se, om den tilsvarende side er i fysisk hukommelse. Hvis det er tilfældet, gives adgangen. Hvis det ikke er det, skifter operativsystemet en side ud, der ikke bruges i øjeblikket, og skifter den nødvendige side ind. Denne proces kaldes paging.
Virtuel hukommelse optimerer ydeevnen på flere måder. For det første giver det operativsystemet mulighed for at køre flere processer på samme tid, selvom der ikke er nok fysisk hukommelse til at holde alle processerne i hukommelsen på samme tid. Dette skyldes, at operativsystemet kan udskifte sider, der ikke er i brug i øjeblikket, hvilket giver plads til sider fra andre processer.
For det andet hjælper virtuel hukommelse med at forhindre fragmentering af fysisk hukommelse. Fragmentering opstår, når fysisk hukommelse er opdelt i små, ubrugelige stykker. Dette kan gøre det svært for operativsystemet at allokere sammenhængende hukommelsesblokke til processer, hvilket kan føre til nedsat ydeevne. Virtuel hukommelse forhindrer fragmentering ved at tillade processer at bruge ikke-sammenhængende blokke af fysisk hukommelse.
For det tredje hjælper virtuel hukommelse med at beskytte hukommelsen fra én proces mod at blive tilgået af en anden proces. Dette skyldes, at hver proces har sit eget virtuelle adresserum, og operativsystemet tillader ikke processer at få adgang til hukommelse uden for deres eget adresserum.
Generelt er virtuel hukommelse en kraftfuld hukommelseshåndteringsteknik, der hjælper med at forbedre ydeevnen, pålideligheden og sikkerheden af operativsystemer.