Virtuaalinen muisti käyttöjärjestelmässä: Mikä on, kysyntähaku, edut

⚡ Älykäs yhteenveto

Virtuaalimuisti on tallennusmekanismi, joka antaa käyttäjälle illuusion suuresta keskusmuistista käsittelemällä osaa toissijaisesta tallennustilasta RAM-muistina. Se mahdollistaa fyysistä muistia suurempien prosessien suorittamisen, ja se on toteutettu kysynnän mukaan tapahtuvalla sivutuksella.

  • 🧠 Määritelmä: Virtuaalimuisti käsittelee osaa toissijaisesta tallennustilasta päämuistina suurempien prosessien suorittamiseksi.
  • 🎯 Miksi tarvitaan: Se tarjoaa lisämuistia, kun fyysinen RAM-muisti ei riitä, käyttämällä levyllä olevaa swap-tiedostoa.
  • 📥 Kysyntähaku: Sivut ladataan levyltä RAM-muistiin vain silloin, kun niihin todella viitataan.
  • 🔁 Sivun korvaaminen: FIFO, Optimal ja LRU päättävät, mikä sivu poistetaan sivuvirheen sattuessa.
  • ✅ Advantage: Tukee moniohjelmointia ja antaa ohjelmien ylittää fyysisen muistin koon.
  • ⚠️ Haittapuoli: Se on hitaampaa kuin RAM ja voi heikentää järjestelmän yleistä suorituskykyä.

Virtuaalinen muisti käyttöjärjestelmässä

Mikä on virtuaalimuisti?

Virtuaalimuistia on tallennusmekanismi, joka tarjoaa käyttäjälle illuusion erittäin suuresta päämuistista. Se tehdään käsittelemällä osaa toissijaisesta muistista päämuistina. Virtuaalimuistissa käyttäjä voi tallentaa prosesseja, joiden koko on suurempi kuin käytettävissä oleva päämuisti.

Siksi sen sijaan, että käyttöjärjestelmä lataaisi yhden pitkän prosessin päämuistiin, se lataa useamman kuin yhden prosessin eri osat päämuistiin. Virtuaalimuisti toteutetaan useimmiten kysyntähakulla ja kysyntäsegmentoinnilla.

Miksi tarvitset virtuaalimuistia?

Tässä on syitä virtuaalimuistin käyttöön:

  • Aina kun tietokoneellasi ei ole tilaa fyysisessä muistissa, se kirjoittaa tarvitsemansa tiedot kiintolevylle swap-tiedostoon virtuaalimuistina.
  • Jos tietokone on käynnissä Windows tarvitsee enemmän muistia/RAM-muistia kuin järjestelmään on asennettu, se käyttää tähän tarkoitukseen pienen osan kiintolevystä.

Kuinka virtuaalimuisti toimii?

Nykymaailmassa virtuaalimuistista on tullut melko yleinen. Sitä käytetään aina, kun joitakin sivuja on ladattava päämuistiin suoritusta varten, eikä muistia ole käytettävissä näille useille sivuille.

Joten siinä tapauksessa käyttöjärjestelmä ei estä sivujen pääsyä päämuistiin, vaan etsii RAM-muistista tilaa, jota on käytetty vähän viime aikoina tai johon ei viitata, ja siirtää sen toissijaiseen muistiin tehdäkseen tilaa uusille sivuille päämuistissa.

Anna meidän ymmärtää virtuaalisen muistin hallinta yhden esimerkin avulla.

Esimerkiksi

Oletetaan, että käyttöjärjestelmä tarvitsee 300 Mt muistia kaikkien käynnissä olevien ohjelmien tallentamiseen. Tällä hetkellä RAM-muistissa on kuitenkin vain 50 Mt fyysistä muistia.

  • Käyttöjärjestelmä määrittää sitten 250 Mt virtuaalimuistia ja hallitsee tätä 250 Mt:aa Virtual Memory Manager (VMM) -nimisen ohjelman avulla.
  • Tässä tapauksessa VMM luo kiintolevylle 250 Mt:n kokoisen tiedoston tarvittavan lisämuistin tallentamiseksi.
  • Käyttöjärjestelmä käsittelee nyt muistia ikään kuin se ottaisi huomioon 300 Mt RAM-muistissa olevaa todellista muistia, vaikka käytettävissä olisi vain 50 Mt tilaa.
  • VMM:n tehtävänä on hallita 300 megatavua muistia, vaikka todellista muistitilaa olisi käytettävissä vain 50 megatavua.

Mikä on kysyntähaku?

Kysyntähaku

Kysyntähakumekanismi on hyvin samanlainen kuin a hakujärjestelmä vaihdollaping, jossa prosessit tallennetaan toissijaiseen muistiin ja sivut ladataan vain pyynnöstä, ei etukäteen.

Kun konteksti vaihdetaan, käyttöjärjestelmä ei siis koskaan kopioi vanhan ohjelman sivuja levyltä tai uuden ohjelman sivuja keskusmuistiin. Sen sijaan se aloittaa uuden ohjelman suorittamisen ensimmäisen sivun lataamisen jälkeen ja hakee viitatut ohjelman sivut.

Jos ohjelman suorituksen aikana ohjelma viittaa sivuun, jota ei ehkä ole saatavilla päämuistissa, koska se on vaihdettu, suoritin tulkitsee sen virheelliseksi muistiviittaukseksi. Tämä johtuu siitä, että sivuvirhe siirtää ohjauksen takaisin ohjelmalta käyttöjärjestelmälle, joka vaatii sivun tallentamista takaisin muistiin.

Sivujen korvausmenetelmien tyypit

Tässä on joitakin tärkeitä sivun korvausmenetelmiä:

  • FIFO
  • Optimaalinen algoritmi
  • LRU-sivun vaihto

FIFO-sivun vaihto

FIFO (First-in-first-out) on yksinkertainen toteutustapa. Tässä menetelmässä muisti valitsee korvaavan sivun, joka on ollut muistin virtuaaliosoitteessa pisimpään.

Ominaisuudet

  • Aina kun uusi sivu ladataan, muistissa pisimpään ollut sivu poistetaan. Näin ollen on helppo päättää, mikä sivu poistetaan, koska sen tunnistenumero on aina FIFO-pinon alussa.
  • Keskusmuistin vanhin sivu on se, joka tulisi valita korvattavaksi ensin.

Optimaalinen algoritmi

Optimaalinen sivunvaihtotapa valitsee vaihtoa varten sen sivun, jonka aika seuraavaan viittaukseen on pisin.

Ominaisuudet

  • Optimaalinen algoritmi tuottaa vähiten sivuvirheitä. Tämän algoritmin toteuttaminen on vaikeaa.
  • Optimaalisella sivunkorvausalgoritmilla on kaikista algoritmeista alhaisin sivuvirheiden määrä. Tällainen algoritmi on olemassa ja sitä pitäisi kutsua MIN:ksi tai OPT:ksi.
  • Korvaa sivu, jota ei todennäköisesti käytetä pitkään aikaan. Se käyttää vain silloin, kun sivua on käytettävä.

LRU-sivun vaihto

LRU:n täydellinen muoto on vähiten käytetty sivu. Tämä menetelmä auttaa käyttöjärjestelmää löytämään sivun käytön lyhyen ajanjakson aikana. Tämä algoritmi tulisi toteuttaa liittämällä laskuri jokaiseen sivuun.

Miten tämä toimii?

  • Sivu, jota ei ole käytetty päämuistissa pisimpään, valitaan korvattavaksi.
  • Helppo toteuttaa, pitää luetteloa, korvata sivuja katsomalla ajassa taaksepäin.

Ominaisuudet

  • LRU-korvausmenetelmällä on suurin laskuri. Tätä laskuria kutsutaan myös ikääntymisrekisteriksi, joka määrittää iän ja kuinka paljon niihin liittyviin sivuihin tulisi myös viitata.
  • Sivu, jota ei ole käytetty päämuistissa pisimpään, tulisi valita korvattavaksi.
  • Se myös pitää luetteloa ja korvaa sivuja katsomalla ajassa taaksepäin.

Vikaprosentti

Vikaantumisaste on taajuus, jolla suunniteltu järjestelmä tai komponentti vikaantuu. Se ilmaistaan ​​vikojen määränä aikayksikköä kohti. Sitä merkitään kreikkalaisella kirjaimella λ (lambda).

Virtuaalimuistin edut

Tässä ovat virtuaalimuistin käytön edut/hyödyt:

  • Virtuaalimuisti auttaa nopeuttamaan, kun ohjelman suorittamiseen tarvitaan vain tietty osa ohjelmasta.
  • Se on erittäin hyödyllinen moniohjelmointiympäristön toteuttamisessa.
  • Sen avulla voit ajaa useampia sovelluksia kerralla.
  • Sen avulla voit sovittaa monia suuria ohjelmia pienempiin ohjelmiin.
  • Yhteiset tiedot tai koodit voidaan jakaa muistin välillä.
  • Prosessi voi kasvaa jopa suuremmaksi kuin koko fyysinen muisti.
  • Data/koodi tulisi lukea levyltä aina tarvittaessa.
  • Koodi voidaan sijoittaa mihin tahansa fyysiseen muistiin ilman, että sitä tarvitsee siirtää.
  • Päämuistissa tulisi säilyttää enemmän prosesseja, mikä lisää prosessorin tehokasta käyttöä.
  • Jokainen sivu tallennetaan levylle, kunnes sitä tarvitaan, minkä jälkeen se poistetaan.
  • Sen avulla voidaan suorittaa useampia sovelluksia samanaikaisesti.
  • Moniohjelmoinnin astetta ei ole rajoitettu.
  • Suuria ohjelmia tulisi kirjoittaa, koska käytettävissä oleva virtuaaliosoiteavaruus on suurempi kuin fyysinen muisti.

Virtuaalimuistin haitat

Tässä ovat virtuaalimuistin käytön haitat/haitat:

  • Sovellukset voivat toimia hitaammin, jos järjestelmä käyttää virtuaalimuistia.
  • Sovellusten välillä vaihtaminen vie todennäköisesti enemmän aikaa.
  • Se tarjoaa vähemmän kiintolevytilaa käyttöösi.
  • Se heikentää järjestelmän vakautta.
  • Se mahdollistaa suurempien sovellusten suorittamisen järjestelmissä, joissa ei ole riittävästi fyysistä RAM-muistia niiden suorittamiseen.
  • Se ei tarjoa samaa suorituskykyä kuin RAM.
  • Se vaikuttaa negatiivisesti järjestelmän yleiseen suorituskykyyn.
  • Se vie tallennustilaa, jota muuten voitaisiin käyttää pitkäaikaiseen tiedontallennukseen.

UKK

Sivuvirhe tapahtuu, kun ohjelma viittaa sivuun, jota ei ole tällä hetkellä päämuistissa. Käyttöjärjestelmä keskeyttää ohjelman suorituksen, hakee tarvittavan sivun levyltä RAM-muistiin, päivittää sivutaulukon ja jatkaa sitten suoritusta.

Thrashing tapahtuu, kun järjestelmä käyttää enemmän aikaa swap-toimintoihin.ping sivujen siirto RAM-muistin ja levyn välillä on nopeampaa kuin prosessien suorittaminen. Sen aiheuttaa liian korkea moniohjelmointiaste ja se heikentää suorituskykyä merkittävästi. Aktiivisten prosessien vähentäminen tai RAM-muistin lisääminen auttaa.

RAM on nopeaa fyysistä laitteistoa, johon tallennetaan aktiivista dataa. Virtuaalimuisti on tekniikka, joka laajentaa RAM-muistia käyttämällä levytilaa ikään kuin se olisi muistia. Virtuaalimuisti on paljon suurempi, mutta paljon hitaampi kuin todellinen RAM.

Tekoäly voi oppia ohjelman muistinkäyttömallit ja ennustaa, mitä sivuja tarvitaan pian. Näin käyttöjärjestelmä voi pitää hyödyllisiä sivuja RAM-muistissa ja poistaa oikeat sivut, lähestyen ihanteellista optimaalista algoritmia ja vähentäen sivuvirheitä.

Kyllä. Analysoimalla aiempia käyttösekvenssejä tekoälymallit voivat esinoutaa sivuja ennen niiden pyytämistä ja säätää sivujen vaihtotiheyttä. Tämä vähentää sivuvirheitä ja sivun hylkäämistä, vaikka ennustusvirheet ja lisäkustannukset on pidettävä alhaisina.

Tiivistä tämä viesti seuraavasti: