Datorns operativsystem körs från RAM-minnet och inte direkt från hårddisken. Alla program som körs är också tillgängliga i RAM-minnet. Det innebär att det primära minnet behöver vara tillräckligt stort och det är det som oftast är problemet för en dators prestanda. Samtidigt kan primärminnet inte vara heller hur stor som helst. Oavsett minnets storlek använder datorer virtuella minne som en kombination av lagringsplatser i hårddisken och en del av RAM-minnet.
Program som installeras lagras i hårddisken men när de används delas dem i flera delar. Den delen som är aktuellt kopieras till primärminnet och de delarna som kommer att användas mest till virtuellt minnet. Kopiering sker automatiskt och datoranvändare märker inte det. Den del av programmet som flyttas mellan primärminnet och sekundärt lagringsenhet (hårddisk) kan ha fast storlek (sidor eller pages på engelska) eller variabel storlek (segment).
Virtuellt minne tillåter också att programmets delar inte är fysiskt sammanhängande, så att varje del kan tilldelas varhelst utrymme är tillgängligt.
Minneshantering
Att hitta ett programs delar tar tid därmed behovet av ett effektivt adresseringssystem som består av fysiska och logiska adresser. Logiska adresser skapas av programmet (därmed programmerare) och mappas till fysiska adresser i primärminnet (operativsystems ansvar). Ett sådant adresseringssystem kallas minneshantering eller Memory Management Unit (MMU) på engelska. MMU används för att översätta virtuella adresser till adresser i det fysiska minnet. Det finns olika typer av MMU, FU (Fixed Mapping) och TLB (Transition Lookaside Buffer)
Ett fysiskt minne refererar till RAM-minnet som oftast kallas primärminne. Observera att minnesadresserna som genereras av CPU är virtuella adresser som översätts till fysiska av MMU med hjälp exempelvis av TLB.
Fragmentering
Virtuellminneshantering via sidor (paging) eller via segmentering är känsliga för interna och externa fragmentering. Extern fragmentering vid segmentering inträffar när oanvändbart minne finns utanför tilldelade minnesblock. Problemet är att systemet kan ha tillräckligt med minne för att tillfredsställa processförfrågan, men det tillgängliga minnet inte finns i en sammanhängande plats. Med tiden förvärras fragmenteringen och minskar segmenteringsprocessen avsevärt.
Segmentering är en teknik för minneshantering där varje process är indelat i flera segment av olika storlekar, ett för varje process eller modul. När en process ska exekveras laddas dess motsvarande segment i icke-angränsande minnesblock även om varje segment laddas in i ett angränsande block av tillgängligt minne.
Intern fragmentering vid paging inträffar när processer som tilldelas minnesutrymme inte alltid använder tilldelade adressintervallet på sidan. Paging-metoden delar upp det virtuellt minnet i sidor av samma storlek och det primära minnet i ramar av samma storlek. Således kan det finnas många sidor som innehåller oanvända minnesfragment.
Virtuellt minne i Windows
När en dators RAM-minne inte längre har tillräckligt lagringsutrymme används datorns virtuellminne. En del av hårddisken (sekundär lagringsmedia) görs om som det vore ett RAM-minne. Dock har virtuellt minne ett problem i förhållande till RAM eftersom det sekundära minnet är det mycket långsammare. Det är därför som virtuellt minne tillåter vissa program att fungera normalt på din dator, de fungerar vanligtvis med lägre prestanda. När datorn har slut på virtuellt minne ökar operativsystemet storleken på den filen som fungerar som virtuellt minne. Om operativsystemet inte lyckas så får man utöka storleken på det virtuella minnet manuellt som ska vara minst 1.5 ggr och inte mer än 3 ggr större än det fysiska RAM-minnet.
Så här kan du ändra virtuellt minne i Windows 10
- I Windows skriver du avancerade systeminställningar i sökfältet och klickar sedan på Visa avancerade systeminställningar från sökresultaten.
- Under Prestanda, klickar du på knappen Inställningar. …
- Klicka på fliken Avancerat och klicka sedan på Ändra under Virtuellt minne.