Start Logga In Skriv Artikel Om Oss
Vad söker du?
Allt om 'Virtuellt minne'

Virtuellt minne

Virtuellt minne är en teknik för att utnyttja datorers minne mer effektivt. Med virtuellt minne är det möjligt att använda datorns hårddisk som extra minne utöver det RAM som sitter i datorn.

Problemet

Ända sedan datorer med programmet lagrat i minnet infördes år1945 (av John von Neumann, den så kallade von Neumann-arkitekturen), har mängden tillgängligt minne varit en bristvara i datorer. Och när tillräckliga mängder lagringsutrymme har funnits (på magnetband och hårddiskar), har det varit för långsamt för direkt åtkomst av datorns processor. Den absolut smartaste lösningen på detta problem är allmänt känd sedan 1960-talet och går under namnet virtuellt minne, där adjektivet virtuell ska förstås i sin engelska betydelse: något som har samma egenskaper (virtues) som något annat, ett substitut, surrogat.

Det virtuella minnets funktion och begränsningar

I stället för att processorn i en enkel dator arbetar direkt mot snabbt, fysiskt minne (halvledarminne, men förr även magnetiskt kärnminne), införs en adressöversättare mellan processorn och det fysiska minnet, även kallat en Memory Management Unit eller MMU. Processorn använder virtuella minnesadresser som sträcker sig över en mycket stor adressrymd, t.ex. 4 GB (32 adressledningar). Det virtuella minnet är indelat i sidor (av exempelvis 4 kilobyte). Den virtuella adressen kan delas i två delar, en del som anger sidan (de mest signifikanta adressledningarna) och en adress inom den angivna sidan (i exemplet de 12 minst signifikanta adressledningarna). Adressöversättningen avser den första delen av dessa. Om den eftersökta sidan finns i översättningstabellen, går åtkomsten vidare till det fysiska minnet på den översatta, fysiska adressen. Det fysiska minnet är emellertid väsentligt mindre än det virtuella, så alla giltiga virtuella adresser kan inte få en entydig översättning till fysiska adresser. I det fall att en minnesåtkomst försöker nå en sida som saknas i det fysiska minnet, orsakar adressöversättaren ett avbrott (interrupt) till processorn. Avbrottet gör att processorn utför en rutin i operativsystemets kärna, som begär inläsning från yttre minne (sekundärminne, vanligen en hårddisk) av den efterfrågade minnessidan till en ledig sida i det fysiska minnet. Om det inte fanns någon ledig sida i det fysiska minnet, måste en av sidorna i det fysiska minnet först skrivas ut till det yttre minnet. Lämpligen väljs då någon sida som inte använts på länge enligt en LRU-algoritm (least recently used). När sidorna har flyttat färdigt, vilket kallas sidväxling, uppdaterar processorn innehållet i adressöversättarens tabell. Därefter måste den avbrutna instruktionen kunna återstartas.

Virtuellt minne fungerar eftersom minnesåtkomster i ett körande program ofta hamnar i närheten av varandra, inom samma sida eller ett fåtal sidor, vilket man kallar programmets aktiva set (active set). Statistiskt uppträder därför sidväxling så sällan att långsamheten hos det yttre minnet inte märks.

Om emellertid de körande programmen har ett aktivt set som överstiger det fysiska minnet och sidväxlingarna blir alltför vanliga, blir dock fördröjningen kännbar. Den som sitter nära datorn kan höra hur hårddisken arbetar oavbrutet, något som kallas tröskning (threshing) eftersom ljudet kan påminna om ett gammalt tröskverk. Lösningen på detta är att köra färre program, göra programmen mer resurseffektiva (så att deras aktiva set minskar), eller att installera mer fysiskt minne. Prestanda för datorn kan vara utmärkt fram tills tröskningen börjar, och då sjunker den avsevärt. För de flesta tillämpningar är detta förödande.

Krav på konstruktionen

För hanteringen av virtuellt minne måste processorn ha stöd för återstartbara instruktioner, avbrott samt användning och uppdatering av MMU. MMU brukar numera vara sammanbyggd med processorn. Operativsystemet måste vidare ha stöd för dessa avbrott och för utskrift och inläsning av sidor, så kallad sidväxling, swapping eller paging. Slutligen måste ett utrymme reserveras på hårddisken för lagring av de minnessidor som inte får plats det fysiska minnet, en så kallad växlingsfil eller swap.

Kombinationen av virtuellt minne och tidsdelning

Under tiden som den saknade minnessidan läses in från yttre minne, kan processorn förhoppningsvis ägna sig åt någon annan uppgift, t.ex. köra något annat program som låg och väntade på att få köras. Detta kallas multiprogrammering, multikörning eller tidsdelning.

Historik

Tidsdelning uppfanns också på 1960-talet, ungefär samtidigt med virtuellt minne. Dessa båda uppfinningar utgör grunden för alla operativsystem som körts på större datorer sedan 1970-talet, däribland Unix och VMS. Mindre datorer som minidatorer och persondatorer hade emellertid enklare system, som i jämförelse med stordatorerna framstod som tio år föråldrade. I mitten av 1980-talet kom arbetsstationer med Unix och VMS och i början av 1990-talet kom de moderna operativsystemen även till persondatorer, t.ex. Windows NT och Linux. Denna utveckling hängde samman med att mikroprocessorerna började få stöd för virtuellt minne (t.ex. Motorola 68000 och 80386 från Intel). De äldre processorerna Intel 80286 (från IBM PC-AT), Motorola 6809 och Zilog Z80 (från Luxor ABC80 och ABC800) har inte stöd för MMU och kan därför inte använda virtuellt minne.

Redigera?

Artikeln skriven 2009-01-18 av Learning4sharing

Kategorier för Virtuellt minne

Sidväxling(1)

Vi behhöver hjälp att kategorisera våra artiklar. Kan du skriva ett nyckelord för denna artikel? Du kan skriva upp till 3 olika nyckelord för denna artikel, vi uppskattar din hjälp!

Skriv nyckelord som du tycker beskriver denna artikel på ett bra sätt. Du kan ange 3 olika nyckelord för denna artikel, max 20 tecken per nyckelord.

  1. Lägg till fler
    Skriv in svaret på frågan: 2+1

Intresserad av fler artiklar?

Groklaw
Jonas Bosson
Biacore
Karamell
Norrstigen
Sköldnora Kungsgård
Griselda
Borgholms kungsgård
Judi Dench

Senaste sökningarna

RE har fått 1289 sökningar. Den senaste gjordes 2020-10-25 15:11:07.

betastrålning har fått 962 sökningar. Den senaste gjordes 2020-10-25 15:08:03.

hårdrockare har fått 821 sökningar. Den senaste gjordes 2020-10-25 15:07:05.

wired har fått 1173 sökningar. Den senaste gjordes 2020-10-25 15:00:54.

neil har fått 1262 sökningar. Den senaste gjordes 2020-10-25 14:59:51.

åderbråck har fått 774 sökningar. Den senaste gjordes 2020-10-25 14:55:24.

konservativ har fått 926 sökningar. Den senaste gjordes 2020-10-25 14:55:19.

affekt har fått 1178 sökningar. Den senaste gjordes 2020-10-25 14:55:02.

bolusdos har fått 1302 sökningar. Den senaste gjordes 2020-10-25 14:54:42.

knulla har fått 1539 sökningar. Den senaste gjordes 2020-10-25 14:54:21.

vivo har fått 1424 sökningar. Den senaste gjordes 2020-10-25 14:52:04.

jehovas vittnen har fått 1752 sökningar. Den senaste gjordes 2020-10-25 14:49:36.

Designed by: template world
Learning4sharing.nu
All Rights Reserved. 0.21 SEK

Logga in

Välkommen att redigera och skriva nya artiklar!

Ingent Konto?

Skaffa konto för att redigera och skapa nya ariklar Nytt Konto.

Ny Användare

Välkommen att redigera och skriva nya artiklar! Skapa konto nedan.


Ett verifieringsmail kommer att skickas till din E-post som du måste öppna och verifiera din E-post med

Lägg till artikel

Du är inte inloggad.

Logga In eller Skapa konto.