Virtuel hukommelse i OS: Hvad er, efterspørgselssøgning, fordele

⚡ Smart opsummering

Virtuel hukommelse er en lagringsmekanisme, der giver brugeren illusionen af ​​en stor hovedhukommelse ved at behandle en del af sekundær hukommelse som RAM. Den lader processer, der er større end den fysiske hukommelse, køre og implementeres med demand paging.

  • 🧠 Definition: Virtuel hukommelse behandler en del af sekundær lagring som hovedhukommelse til at køre større processer.
  • 🎯 Hvorfor nødvendigt: Den giver ekstra hukommelse, når fysisk RAM er utilstrækkelig, ved hjælp af en swap-fil på disken.
  • 📥 Personsøgning efter behov: Sider indlæses kun fra disk til RAM, når der rent faktisk refereres til dem.
  • 🔁 Sideudskiftning: FIFO, Optimal og LRU bestemmer, hvilken side der skal fjernes ved en sidefejl.
  • Fordel: Understøtter multiprogrammering og lader programmer overstige størrelsen af ​​den fysiske hukommelse.
  • ⚠️ Ulempe: Det er langsommere end RAM og kan reducere systemets samlede ydeevne.

Virtuel hukommelse i OS

Hvad er virtuel hukommelse?

Virtuel hukommelse er en lagringsmekanisme, der giver brugeren en illusion af at have en meget stor hovedhukommelse. Det gøres ved at behandle en del af den sekundære hukommelse som hovedhukommelse. I virtuel hukommelse kan brugeren gemme processer med en større størrelse end den tilgængelige hovedhukommelse.

Derfor, i stedet for at indlæse en lang proces i hovedhukommelsen, indlæser OS de forskellige dele af mere end én proces i hovedhukommelsen. Virtuel hukommelse er for det meste implementeret med efterspørgselssøgning og efterspørgselssegmentering.

Hvorfor har du brug for virtuel hukommelse?

Her er grundene til at bruge virtuel hukommelse:

  • Når din computer ikke har plads i den fysiske hukommelse, skriver den det, den skal huske, til harddisken i en swap-fil som virtuel hukommelse.
  • Hvis en computer kører Windows kræver mere hukommelse/RAM end der er installeret i systemet, bruger den en lille del af harddisken til dette formål.

Hvordan virker virtuel hukommelse?

I den moderne verden er virtuel hukommelse blevet ret almindelig i disse dage. Den bruges, når sider skal indlæses i hovedhukommelsen for at kunne køres, og hukommelsen ikke er tilgængelig til så mange sider.

Så i så fald, i stedet for at forhindre sider i at komme ind i hovedhukommelsen, søger operativsystemet efter den RAM-plads, der er minimalt brugt i den seneste tid, eller som ikke refereres til, og flytter den til den sekundære hukommelse for at give plads til de nye sider i hovedhukommelsen.

Lad os forstå håndtering af virtuel hukommelse ved hjælp af et eksempel.

For eksempel

Lad os antage, at et operativsystem kræver 300 MB hukommelse til at gemme alle kørende programmer. Der er dog i øjeblikket kun 50 MB tilgængelig fysisk hukommelse gemt i RAM'en.

  • Operativsystemet vil derefter oprette 250 MB virtuel hukommelse og bruge et program kaldet Virtual Memory Manager (VMM) til at administrere disse 250 MB.
  • Så i dette tilfælde opretter VMM en fil på harddisken, der er 250 MB stor, for at lagre den ekstra hukommelse, der kræves.
  • Operativsystemet vil nu fortsætte med at adressere hukommelse, som om det betragtede 300 MB reel hukommelse gemt i RAM'en, selvom der kun er 50 MB plads tilgængelig.
  • Det er VMM'ens opgave at administrere 300 MB hukommelse, selvom der kun er 50 MB reel hukommelsesplads tilgængelig.

Hvad er efterspørgselssøgning?

Efterspørgselssøgning

En efterspørgselssøgningsmekanisme minder meget om en personsøgningssystem med bytteping, hvor processer gemmes i den sekundære hukommelse, og sider kun indlæses efter behov, ikke på forhånd.

Så når der sker et kontekstskift, kopierer operativsystemet aldrig nogen af ​​det gamle programs sider fra disken eller nogen af ​​det nye programs sider til hovedhukommelsen. I stedet vil det begynde at udføre det nye program efter at have indlæst den første side og hente de programsider, der refereres til.

Hvis programmet under programudførelsen refererer til en side, der muligvis ikke er tilgængelig i hovedhukommelsen, fordi den blev udskiftet, betragter processoren det som en ugyldig hukommelsesreference. Dette skyldes, at sidefejlen overfører kontrollen tilbage fra programmet til operativsystemet, som kræver at gemme siden tilbage i hukommelsen.

Typer af sideerstatningsmetoder

Her er nogle vigtige metoder til sideudskiftning:

  • FIFO
  • Optimal algoritme
  • Udskiftning af LRU-side

FIFO Side Erstatning

FIFO (First-in-first-out) er en simpel implementeringsmetode. I denne metode vælger hukommelsen siden for en erstatning, der har været i hukommelsens virtuelle adresse i længst tid.

Funktionalitet

  • Når en ny side indlæses, fjernes den side, der har været i hukommelsen længst. Så det er nemt at beslutte, hvilken side der skal fjernes, da dens identifikationsnummer altid er forrest i FIFO-stakken.
  • Den ældste side i hovedhukommelsen er den, der skal udskiftes først.

Optimal algoritme

Den optimale sideerstatningsmetode vælger den side for en erstatning, hvor tiden til næste reference er længst.

Funktionalitet

  • Den optimale algoritme resulterer i det færreste antal sidefejl. Denne algoritme er vanskelig at implementere.
  • En optimal sideerstatningsalgoritme har den laveste sidefejlrate af alle algoritmer. Denne algoritme findes og bør kaldes MIN eller OPT.
  • Erstat den side, der sandsynligvis ikke vil blive brugt i længere tid. Den bruger kun den tid, hvor en side skal bruges.

Udskiftning af LRU-side

Den fulde form af LRU er den mindst nyligt brugte side. Denne metode hjælper operativsystemet med at finde sidebrug over en kort periode. Denne algoritme bør implementeres ved at tilknytte en tæller til hver side.

Hvordan virker det?

  • Den side, der ikke har været brugt i længst tid i hovedhukommelsen, er den, der vil blive valgt til erstatning.
  • Let at implementere, hold en liste, udskift sider ved at se tilbage i tiden.

Funktionalitet

  • LRU-erstatningsmetoden har det højeste antal. Denne tæller kaldes også et aldringsregister, som angiver alderen og hvor meget deres tilknyttede sider også skal refereres til.
  • Den side i hovedhukommelsen, der ikke har været brugt i længst tid, skal udskiftes.
  • Det fører også en liste og erstatter sider ved at se tilbage i tiden.

Fejlprocent

Fejlfrekvens er den hyppighed, hvormed et designet system eller en komponent fejler. Det udtrykkes i fejl pr. tidsenhed. Det betegnes med det græske bogstav λ (lambda).

Fordele ved virtuel hukommelse

Her er fordelene ved at bruge virtuel hukommelse:

  • Virtuel hukommelse hjælper med at få fart, når kun et bestemt segment af programmet er påkrævet for at udføre programmet.
  • Det er meget nyttigt til at implementere et multiprogrammeringsmiljø.
  • Det giver dig mulighed for at køre flere applikationer på én gang.
  • Det hjælper dig med at passe mange store programmer ind i mindre programmer.
  • Fælles data eller kode kan deles mellem hukommelsen.
  • En proces kan blive endnu større end al den fysiske hukommelse.
  • Data/kode bør læses fra disken når som helst det er nødvendigt.
  • Koden kan placeres hvor som helst i den fysiske hukommelse uden at kræve flytning.
  • Flere processer bør vedligeholdes i hovedhukommelsen, hvilket øger den effektive brug af CPU.
  • Hver side gemmes på en disk, indtil den skal bruges, hvorefter den fjernes.
  • Det gør det muligt at køre flere applikationer på samme tid.
  • Der er ingen specifik grænse for graden af ​​multiprogrammering.
  • Store programmer bør skrives, da det virtuelle adresseområde, der er tilgængeligt, er større sammenlignet med den fysiske hukommelse.

Ulemper ved virtuel hukommelse

Her er ulemperne/ulemperne ved at bruge virtuel hukommelse:

  • Programmer kan køre langsommere, hvis systemet bruger virtuel hukommelse.
  • Det tager sandsynligvis længere tid at skifte mellem applikationer.
  • Det giver mindre harddiskplads til din brug.
  • Det reducerer systemets stabilitet.
  • Det tillader større applikationer at køre i systemer, der ikke tilbyder nok fysisk RAM alene til at køre dem.
  • Den tilbyder ikke den samme ydeevne som RAM.
  • Det påvirker et systems overordnede ydeevne negativt.
  • Den optager lagerplads, som ellers kunne bruges til langtidslagring af data.

Ofte Stillede Spørgsmål

En sidefejl opstår, når et program refererer til en side, der ikke i øjeblikket er i hovedhukommelsen. Operativsystemet sætter programmet på pause, henter den nødvendige side fra disken til RAM'en, opdaterer sidetabellen og genoptager derefter udførelsen.

Thrashing sker, når systemet bruger mere tid på at bytteping sider mellem RAM og disk end at udføre processer. Det skyldes en for høj grad af multiprogrammering og forringer ydeevnen alvorligt. At reducere aktive processer eller tilføje RAM hjælper.

RAM er hurtig fysisk hardware, hvor aktive data lagres. Virtuel hukommelse er en teknik, der udvider RAM ved at bruge diskplads, som om det var hukommelse. Virtuel hukommelse er meget større, men langt langsommere end rigtig RAM.

AI kan lære et programs hukommelsesadgangsmønstre og forudsige, hvilke sider der snart vil være nødvendige. Dette gør det muligt for operativsystemet at gemme nyttige sider i RAM og fjerne de rigtige, hvilket nærmer sig den ideelle optimale algoritme og reducerer sidefejl.

Ja. Ved at analysere tidligere adgangssekvenser kan AI-modeller forhåndshente sider, før de anmodes om, og justere, hvor aggressivt sider udskiftes. Dette reducerer sidefejl og "thrasking", selvom forudsigelsesfejl og overhead skal holdes lave.

Opsummer dette indlæg med: