Även om det är * tekniskt * möjligt att konfigurera en virtuell minnesstorlek mindre än den fysiska RAM -storleken, är det
nästan aldrig tillrådligt för operativsystem för allmänt syfte och moderna applikationer. Här är en uppdelning av varför:
Varför virtuellt minne finns i första hand:
* körprogram större än RAM: Det främsta skälet är att tillåta program som är större än den tillgängliga fysiska RAM -skivan. Operativsystemet byter delar av programmets minne mellan RAM och hårddisken (Swap Space/Page -fil) vid behov. Utan virtuellt minne skulle du vara strikt begränsad till mängden RAM du har.
* Minneskydd och isolering: Virtuellt minne ger varje process med sitt eget virtuella adressutrymme. Detta förhindrar att en process av misstag (eller skadligt) åtkomst till eller modifierar minne som tillhör en annan process. Varje process tror att den har sitt eget dedikerade minne, förenklande programmering och förbättrar systemstabiliteten.
* Effektiv minnesallokering: Virtuellt minne gör det möjligt för operativsystemet att tilldela minne i icke-kontinuerliga block i RAM. När fysiskt minne tilldelas direkt kan du stöta på fragmenteringsproblem där det finns tillräckligt med total gratis RAM, men inte tillräckligt sammanhängande block för en ny process eller tilldelning.
* Minnekartläggning: Virtuellt minne möjliggör mappning av minne direkt i en processs adressutrymme. Detta är ett mycket effektivt sätt att läsa och skriva stora filer, eftersom operativsystemet hanterar lastning och sparande av filinnehåll på sidor efter behov.
varför att ha virtuellt minne mindre än fysiskt RAM är dåligt:
* Gränser Programstorlek: Du täcker effektivt den maximala storleken på alla program som kan köras till storleken på det virtuella minnet. Detta är en betydande begränsning, särskilt med dagens stora applikationer och datamängder.
* ökade fel utanför minnet: Även om programmets kod och data * kunde * passa in i RAM, kan operativsystemet fortfarande försöka fördela mer virtuellt adressutrymme än tillgängligt, vilket leder till fel utanför minnet och programolyckor.
* trasigt minnesskydd: Även om du fortfarande tekniskt skulle ha virtuella adressutrymmen, kommer graden till vilken operativsystemet kan använda det virtuella minnessystemet för att skydda mot minnesfrågor vara starkt begränsat.
* hindrar systemets prestanda: Om du har massor av RAM vill du att operativsystemet ska hantera det effektivt. Att begränsa virtuellt minne hindrar denna process.
När kan det * verka * användbart? (Sällsynta och specifika fall)
Det finns extremt nischscenarier där en mycket mindre virtuell minnesstorlek * kan * övervägas, men de är mycket specialiserade och rekommenderas inte för allmänna användare:
* inbäddade system med resursbegränsningar: I mycket resursbegränsade inbäddade system (t.ex. mikrokontroller), där RAM är extremt begränsad och programstorleken är känd för att vara liten, inaktiverande eller betydligt begränsande virtuellt minne kan vara ett designval för att minska komplexiteten och omkostnaderna för operativsystemet. Men även i många inbäddade system är ett minimalt virtuellt minnessystem ofta fördelaktigt.
* Specialiserad vetenskaplig datoranvändning (mycket sällsynt): I några mycket specifika högpresterande datorer, där minnesåtkomstmönster är extremt förutsägbara och väloptimerade, och applikationen är noggrant utformad för att passa helt inom RAM, kan * vara en teoretisk prestationsförstärkning (mycket mindre) genom att eliminera omkostnaden för virtuell minnesöversättning. Detta är emellertid en mycket avancerad optimeringsteknik, och fördelarna är sannolikt försumbara jämfört med de potentiella riskerna.
* felsökning/testning (tillfällig): En mindre virtuell minnesstorlek kan användas * tillfälligt * under felsökning eller testning för att simulera minnestrycket och identifiera minnesläckor eller andra minnesrelaterade problem i ett program. Detta är inte en konfiguration för normal användning.
Avslutningsvis:
För nästan alla moderna datorsystem och applikationer rekommenderas att ha en virtuell minnesstorlek * åtminstone * lika med den fysiska RAM -storleken. I de flesta fall är det ännu bättre att ha det betydligt större (t.ex. 1,5 till 2 gånger den fysiska RAM) för att hantera minnesintensiva uppgifter och förhindra fel i minnet. Prestationsfördelarna med virtuellt minne överväger långt de potentiella nackdelarna i de allra flesta situationer. Såvida du inte är en mycket erfaren systemadministratör eller inbäddad systemutvecklare som arbetar med ett mycket specialiserat projekt, bör du hålla dig till standardinställningar för virtuella minne som tillhandahålls av ditt operativsystem.