Virtuellt minne i OS: Vad är, efterfrågan personsökning, fördelar

⚡ Smart sammanfattning

Virtuellt minne är en lagringsmekanism som ger användaren illusionen av ett stort huvudminne genom att behandla en del av sekundärlagringen som RAM. Den låter processer som är större än det fysiska minnet köras och implementeras med demand paging.

  • 🧠 Definition: Virtuellt minne behandlar en del av sekundärlagringen som huvudminne för att köra större processer.
  • 🎯 Varför behövs: Den ger extra minne när det fysiska RAM-minnet är otillräckligt, med hjälp av en växlingsfil på disken.
  • 📥 Begäran om personsökning: Sidor laddas endast från disk till RAM-minne när de faktiskt refereras.
  • 🔁 Sidbyte: FIFO, Optimal och LRU avgör vilken sida som ska tas bort vid ett sidfel.
  • Fördel: Stöder multiprogrammering och låter program överskrida storleken på det fysiska minnet.
  • ⚠️ Nackdel: Det är långsammare än RAM och kan minska systemets totala prestanda.

Virtuellt minne i OS

Vad är virtuellt minne?

Virtuellt minne är en lagringsmekanism som ger användaren en illusion av att ha ett mycket stort huvudminne. Det görs genom att behandla en del av sekundärminnet som huvudminne. I virtuellt minne kan användaren lagra processer med en större storlek än det tillgängliga huvudminnet.

Därför, istället för att ladda en lång process i huvudminnet, laddar operativsystemet de olika delarna av mer än en process i huvudminnet. Virtuellt minne implementeras mestadels med efterfrågesökning och efterfrågesegmentering.

Varför behöver du virtuellt minne?

Här är anledningarna till att använda virtuellt minne:

  • När datorn inte har utrymme i det fysiska minnet skriver den det den behöver komma ihåg till hårddisken i en växlingsfil som virtuellt minne.
  • Om en dator körs Windows behöver mer minne/RAM än vad som är installerat i systemet, använder den en liten del av hårddisken för detta ändamål.

Hur fungerar virtuellt minne?

I den moderna världen har virtuellt minne blivit ganska vanligt nuförtiden. Det används närhelst vissa sidor behöver laddas in i huvudminnet för att kunna köras, och minnet inte är tillgängligt för så många sidor.

Så, i så fall, istället för att förhindra att sidor kommer in i huvudminnet, söker operativsystemet efter det RAM-utrymme som har använts minimalt på senare tid, eller som inte refereras, och flyttar det till sekundärminnet för att skapa plats för de nya sidorna i huvudminnet.

Låt oss förstå virtuell minneshantering med hjälp av ett exempel.

Till exempel

Låt oss anta att ett operativsystem kräver 300 MB minne för att lagra alla program som körs. Det finns dock för närvarande bara 50 MB tillgängligt fysiskt minne lagrat i RAM-minnet.

  • Operativsystemet konfigurerar sedan 250 MB virtuellt minne och använder ett program som heter Virtual Memory Manager (VMM) för att hantera de 250 MB.
  • Så i det här fallet skapar VMM en fil på hårddisken som är 250 MB stor för att lagra det extra minne som krävs.
  • Operativsystemet kommer nu att fortsätta att adressera minne som om det betraktade 300 MB riktigt minne lagrat i RAM-minnet, även om bara 50 MB utrymme finns tillgängligt.
  • Det är VMM:ens uppgift att hantera 300 MB minne även om bara 50 MB faktiskt minnesutrymme är tillgängligt.

Vad är efterfrågan personsökning?

Begär personsökning

En efterfrågesökningsmekanism är mycket lik en personsökningssystem med byteping, där processer lagras i sekundärminnet och sidor endast laddas på begäran, inte i förväg.

Så när en kontextväxling sker kopierar operativsystemet aldrig någon av det gamla programmets sidor från disken eller någon av det nya programmets sidor till huvudminnet. Istället börjar det köra det nya programmet efter att den första sidan har laddats och hämtar de programsidor som refereras.

Om programmet under programkörningen refererar till en sida som kanske inte är tillgänglig i huvudminnet eftersom den har bytts ut, betraktar processorn det som en ogiltig minnesreferens. Detta beror på att sidfelet överför kontrollen tillbaka från programmet till operativsystemet, som kräver att sidan lagras tillbaka i minnet.

Typer av metoder för sidbyte

Här är några viktiga metoder för att ersätta sidan:

  • FIFO
  • Optimal algoritm
  • LRU Sidbyte

FIFO Sidbyte

FIFO (Först-in-först-ut) är en enkel implementeringsmetod. I den här metoden väljer minnet sidan för en ersättning som har funnits i minnets virtuella adress under längst tid.

Funktioner

  • När en ny sida laddas tas den sida som har funnits längst i minnet bort. Det är därför enkelt att avgöra vilken sida som ska tas bort, eftersom dess identifikationsnummer alltid finns längst fram i FIFO-stacken.
  • Den äldsta sidan i huvudminnet är den som ska väljas för ersättning först.

Optimal algoritm

Den optimala sidbytesmetoden väljer den sida för en ersättning för vilken tiden till nästa referens är längst.

Funktioner

  • Den optimala algoritmen resulterar i det minsta antalet sidfel. Denna algoritm är svår att implementera.
  • En optimal algoritm för sidbyte har den lägsta sidfelsfrekvensen av alla algoritmer. Denna algoritm existerar och bör kallas MIN eller OPT.
  • Ersätt sidan som sannolikt inte kommer att användas under en längre tid. Den använder bara den tid då en sida behöver användas.

LRU Sidbyte

Den fullständiga formen av LRU är den minst nyligen använda sidan. Denna metod hjälper operativsystemet att hitta sidanvändningen under en kort tidsperiod. Denna algoritm bör implementeras genom att associera en räknare med varje sida.

Hur fungerar det?

  • Den sida som inte har använts under längst tid i huvudminnet är den som kommer att ersättas.
  • Lätt att implementera, håll en lista, byt ut sidor genom att titta tillbaka i tiden.

Funktioner

  • LRU-ersättningsmetoden har det högsta antalet. Denna räknare kallas också ett åldersregister, vilket anger åldern och hur mycket deras tillhörande sidor också ska refereras.
  • Den sida som inte har använts under längst tid i huvudminnet är den som ska väljas för ersättning.
  • Den för också en lista och ersätter sidor genom att titta tillbaka i tiden.

Felfrekvens

Felfrekvens är frekvensen med vilken ett konstruerat system eller en komponent går sönder. Den uttrycks i fel per tidsenhet. Den betecknas med den grekiska bokstaven λ (lambda).

Fördelar med virtuellt minne

Här är fördelarna/nyttorna med att använda virtuellt minne:

  • Virtuellt minne hjälper till att öka hastigheten när endast ett visst segment av programmet krävs för att köra programmet.
  • Det är till stor hjälp för att implementera en multiprogrammeringsmiljö.
  • Det låter dig köra fler applikationer samtidigt.
  • Det hjälper dig att passa in många stora program i mindre program.
  • Gemensam data eller kod kan delas mellan minnet.
  • En process kan bli ännu större än allt fysiskt minne.
  • Data/kod bör läsas från disk närhelst det behövs.
  • Koden kan placeras var som helst i det fysiska minnet utan att behöva flytta.
  • Fler processer bör behållas i huvudminnet, vilket ökar den effektiva användningen av CPU.
  • Varje sida lagras på en disk tills den behövs, därefter tas den bort.
  • Det gör att fler applikationer kan köras samtidigt.
  • Det finns ingen specifik gräns för graden av multiprogrammering.
  • Stora program bör skrivas, eftersom det tillgängliga virtuella adressutrymmet är större jämfört med fysiskt minne.

Nackdelar med virtuellt minne

Här är nackdelarna/nackdelarna med att använda virtuellt minne:

  • Applikationer kan köras långsammare om systemet använder virtuellt minne.
  • Det tar troligtvis längre tid att växla mellan applikationer.
  • Det ger mindre hårddiskutrymme för din användning.
  • Det minskar systemets stabilitet.
  • Det gör att större applikationer kan köras i system som inte erbjuder tillräckligt med fysiskt RAM-minne för att köra dem.
  • Den erbjuder inte samma prestanda som RAM.
  • Det påverkar ett systems totala prestanda negativt.
  • Den upptar lagringsutrymme, som annars skulle kunna användas för långsiktig datalagring.

Vanliga frågor

Ett sidfel uppstår när ett program refererar till en sida som för närvarande inte finns i huvudminnet. Operativsystemet pausar programmet, hämtar den önskade sidan från disken till RAM-minnet, uppdaterar sidtabellen och återupptar sedan körningen.

Thrashing sker när systemet spenderar mer tid på att bytaping sidor mellan RAM och disk än att köra processer. Det orsakas av för hög grad av multiprogrammering och försämrar prestandan avsevärt. Att minska aktiva processer eller lägga till RAM hjälper.

RAM är snabb fysisk hårdvara där aktiv data lagras. Virtuellt minne är en teknik som utökar RAM genom att använda diskutrymme som om det vore minne. Virtuellt minne är mycket större men betydligt långsammare än riktigt RAM.

AI kan lära sig ett programs minnesåtkomstmönster och förutsäga vilka sidor som kommer att behövas snart. Detta gör att operativsystemet kan behålla användbara sidor i RAM-minnet och radera de rätta, vilket närmar sig den ideala optimala algoritmen och minskar sidfel.

Ja. Genom att analysera tidigare åtkomstsekvenser kan AI-modeller förhämta sidor innan de begärs och justera hur aggressivt sidor byts ut. Detta minskar sidfel och överföringsförseningar, men prediktionsfel och omkostnader måste hållas nere.

Sammanfatta detta inlägg med: