Virtuellt minne
Virtuellt minne är ett sätt att hantera minnet, vilket är en ny teknik som används i datorer. Hårdvara (den fysiska delen av datorn, t.ex. processorn eller grafikkortet) kör programvara. Programvaran behöver datorminne för att kunna köras och göra vad den ska göra. De flesta datorer som används idag kan göra mer än en sak samtidigt, de kör mer än ett program. Detta är känt som multiprocessing.
I det här fallet delar alla program eller applikationer som körs på datorn vid en viss tidpunkt på dess resurser. En dator har inte fler processorer eller huvudminne (RAM) bara för att fler program körs på den.
Virtuellt minne innebär att programmet ser ett minnesblock av en viss storlek. Programmet kan använda detta minne som det vill. Detta minnesblock är virtuellt i den meningen att det kommer från olika delar. En del av det kan finnas i datorns huvudminne, men en del kan också finnas på disk. Processorn har en särskild del, kallad Arithmetic Logic Unit, som gör en del av översättningarna mellan programminnet och systemresurserna. Moderna operativsystem gör också en del av detta arbete.
När ett program försöker komma åt ett minnesblock som inte finns i systemminnet stoppas programmet och blocket laddas in i systemminnet. Det som fanns i den delen av systemminnet skrivs till disken. Detta brukar kallas för paging.
Vissa datorsystem, t.ex. inbäddade system, använder inte virtuellt minne eftersom de behöver en mycket snabb svarstid eller en svarstid som alltid är densamma. Ett av problemen är att det med virtuellt minne är svårt att förutsäga svarstiden. Ett program som använder en del av minnet som måste laddas från disken kommer att ha en annan svarstid än ett program som inte gör det. Därför används begreppet virtuellt minne inte i inbyggda system.
Programmet tror att det har ett stort antal sammanhängande adresser, men i verkligheten är de delar som det för närvarande använder utspridda i huvudminnet och de inaktiva delarna sparas i en diskfil.
Frågor och svar
F: Vad är virtuellt minne?
S: Virtuellt minne är ett sätt att hantera datorminne som gör det möjligt för program att få tillgång till ett minnesblock av en viss storlek. Detta minnesblock kan komma från olika delar, t.ex. huvudminnet eller disken.
F: Hur fungerar virtuellt minne?
S: Virtuellt minne fungerar genom att låta CPU:s aritmetiska logikenhet göra översättningar mellan program- och systemresurser. De moderna operativsystemen gör också en del av detta arbete. När ett program försöker komma åt ett minnesblock som inte finns i systemminnet stoppas det och blocket laddas in i systemminnet.
F: Vilka är några exempel på datorer som inte använder virtuellt minne?
S: Inbyggda system är ett exempel på datorer som inte använder virtuellt minne eftersom de behöver snabba svarstider eller svarstider som alltid är desamma. Det är svårt att förutsäga svarstiden med virtuellt minne, så det används inte i inbyggda system.
F: Vad är multiprocessing?
S: Multiprocessing är när en dator kan göra mer än en sak samtidigt, genom att köra flera program samtidigt som delar på dess resurser.
Fråga: Vad händer när ett program försöker komma åt ett minnesblock som inte finns i systemminnet?
S: När ett program försöker komma åt ett minnesblock som inte finns i systemminnet stoppas det och blocket laddas in i systemminnet.
Fråga: Vad är sidoutflyttning?
S: Paging är vad som händer när det som fanns i den delen av systemminnet måste skrivas tillbaka till disken på grund av att ett program får tillgång till en annan del som inte lagrats där ursprungligen.