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.

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ä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.

