Esittely latautuu. Ole hyvä ja odota

Esittely latautuu. Ole hyvä ja odota

Virtuaalimuisti Modernin muistinhallinnan tärkein menetelmä on virtuaalimuisti, jossa looginen osoiteavaruus ja fyysinen muistiavaruus on erotettu toisistaan.

Samankaltaiset esitykset


Esitys aiheesta: "Virtuaalimuisti Modernin muistinhallinnan tärkein menetelmä on virtuaalimuisti, jossa looginen osoiteavaruus ja fyysinen muistiavaruus on erotettu toisistaan."— Esityksen transkriptio:

1 Virtuaalimuisti Modernin muistinhallinnan tärkein menetelmä on virtuaalimuisti, jossa looginen osoiteavaruus ja fyysinen muistiavaruus on erotettu toisistaan. Virtuaalimuistin osoitteenmuodos algoritmeja uusien sivujen hakemiseksi virtuaalimuisti rautatasolla ja käyttöjärjestelmässä

2 Osoitteenmuutos Kun ohjelmakoodi kirjoitetaan, se toimii nimiavaruudessa, funktioita ja muuttujia käsitellään niiden nimien perusteella. Ohjelmaa käännettäessä se siirtyy toimimaan virtuaalisessa osoiteavaruudessa – muuttujanimet korvataan muistiosoitteilla, jotka ovat muotoa segmentti ja/tai sivu ja siirtymä. Ladattaessa ohjelma muistiin, nämä osoitteet korvataan absoluuttisilla osoitteilla, jossa segmentin loogisen numeron korvaa sen sijainti keskusmuistissa.

3 Virtuaalinen muunnoskartta käytetään loogisen osoitteen muuttamiseksi keskusmuistin osoitteeksi ajasta riippuva kuvaus prosessin virtuaalisesta osoiteavaruudesta fyysiseen osoiteavaruuteen hetkellä t: V t :virtuaalinen osoiteavaruus -> fyysinen osoiteavaruus  {A} missä t on ei-negatiivinen kokonaisluku virtuaaliaika ja A on symboli, joka viittaa tyhjään Virtuaaliaika on aikaa, jonka prosessi itse näkee, eli se ei kulu, kun prosessi on keskeytettynä Kun virtuaalimuistin osoite i ladataan, on vastaava fyysisen muistin osoite M t (i). Jos i ei ole keskusmuistissa, se haetaan levymuistista.

4 Sivujen haku muistiin Virtuaalimuisti tuo mukanaan omat erityisongelmansa – mitkä segmentit tai sivut pitäisi hakea muistiin ja mitkä viedä pois? Ongelman erityispiirre on, että ne ovat saman ohjelman osia. Tyypillisin tapa on suorittaa nouto tarvittaessa. Toinen tapa on yrittää ennakoida, mitä sivuja tarvitaan. Sivutusta käytettäessä sijoitus on aika vapaata, ja seuraavissa käsitelläänkin etupäässä sivutukseen sovellettuja menetelmiä. Jää kuitenkin kysymys siitä, mitkä sivut otetaan pois, eli korvausstrategiat. Seuraavassa tarkastellaan kahta pääjoukkoa algoritmeja, joissa sivut haetaan tarvittaessa: staattiset, joissa prosessille osoitettujen sivujen määrä on vakio, ja dynaamiset, joissa sivumäärä vaihtelee ajan funktiona.

5 Staattiset algoritmit Random Belady LRU (Least Recently Used) NUR (Not Used Recently) LFU (Least Frequently Used) FIFO (First in - First out) Beladyn anomalia

6 Random valitaan korvattava sivu sattumanvaraisesti. Ei toimi kovin hyvin. Paikallisuuden takia se generoi enemmän sivuvirheitä kuin useimmat muut käytetyt algoritmit.

7 Beladyn optimaalinen algoritmi Vaatii täydellistä tietoa jo etukäteen poistetaan sivu, jota tarvitaan seuraavan kerran pisimmän ajan kuluttua Least used recently suunniteltu huomioimaan ohjelman normaalia toimintaa käyttää hyväkseen paikallisuutta ja paikallisuuden muutosta ajan myötä pidetään kirjaa siitä, koska sivua on viimeksi käytetty se sivu, jonka käytöstä on pisin aika, korvataan ensimmäisenä merkitään ikä aikaleimalla

8 Not Used Recently LRU-algoritmin approksimaatio otetaan käyttöön viitattu ja muutettu bitit aluksi ilmoitetaan, että sivua ei ole muutettu ja siihen ei ole viitattu kun sivuun viitataan tai sitä muutetaan, käännetään sen bitti ensimmäiseksi korvataan sivut, joihin ei ole viitattu, sen jälkeen sivut, joita ei ole muutettu ja sitten ne, joita on muutettu. Jos päädytään viimeiseen, kaikki bitit nollataan helppo toteuttaa, suhteellisen tehokas, pieni yleisrasite -> suosittu

9 Least Frequently Used valitaan korvattavaksi sivu, jota on käytetty harvimmin seuraa heikosti paikallisuuden muutoksia vasta kun uuteen sivuun tulee riittävästi viittauksia suhteessa vanhoihin, ne jäävät käyttöön ottaa huomioon kauan sitten tehdyt viittaukset (muunnelmassa lasketaan vain viimeisestä muistiinlatauksesta lähtien tehdyt viittaukset) Pääsee kuitenkin kohtalaisen lähelle optimia ilman täydellistä tietoa

10 First in, first out Menetelmänä huono korvaa sen sivun, joka on ollut muistissa pisimpään sopii tiettyihin tehtäviin, mutta yleisesti ei esim. ota lainkaan huomioon paikallisuutta Kokonaisuudessaan: LRU ja LFU ovat kohtuullisia algoritmeja, mutta voivat olla raskaita NUR approksimoi hyvin LRUta

11 Beladyn anomalia edellä prosessille on varattu tietty määrä muistia. Mitä tapahtuu, jos sille varataankin enemmän sivutiloja? ei kaikissa tapauksissa edullista tilannetta, jossa sivuvirheiden määrä kasvaa käytettävissä olevien sivutilojen määrän kasvaessa, kutsutaan Beladyn anomaliaksi algoritmeja, joiden kanssa anomaliaa ei esiinny, kutsutaan pinoalgoritmeiksi (esim. LRU ja LFU)

12 Dynaamiset algoritmit sallivat sivutilojen määrän muuttumisen dynaamisesti suorituksen aikana Työjoukkoalgoritmi prosessin tietyssä elinkaaren vaiheessa käyttämää sivujoukkoa kutsutaan työjoukoksi prosessin siirtyessä vaiheesta toiseen, työjoukko muuttuu, samoin sen koko prosessin suoritus on tehokkainta, kun sen työjoukko mahtuu kokonaisuudessaan muistiin kun vähennetään prosessille varattuja sivutiloja, tietyn pisteen jälkeen sivuvirheiden määrä kasvaa voimakkaasti (trashing) paras sivujoukon koko on siis koko, joka on hiukan tuon pisteen yläpuolella

13 Työjoukkoalgoritmi (jatkuu) Työjoukkoalgoritmi esittelee formaalin tavan seurata sivutilojen sopivaa määrää (eli hystereesipistettä) olkoon m(t) prosessille osoitettujen sivutilojen määrä virtuaalisen ajan hetkellä t. Kun t=0, myös m=0. olkoon S(m(t)) prosessin lataamien sivujen määrä hetkellä t. Koska S(m(t)) = 0, t>0, voidaan prosessille prosessille osoitetun muistin tila hetkellä t, t>0 johtaa prosessille varatun muistin tilasta hetkellä t-1 seuraavasti, käyttäen parametriä T: S(m(t)) = S(m(t-1))U X t -Y t, missä X t on keskusmuistiin hetkellä t ladattujen sivujen joukko, Y t hetkellä t keskusmuistista poistettujen sivujen joukko.

14 Työjoukkoalgoritmi (jatkuu) algoritmi erottaa toisistaan sivujen lataamisen ja poistamisen, mikä sallii dynaamisen vaihtelun tapauksia on neljä: –X on tyhjä: samoin Y, sivutilojen määrä ei muutu –X on tyhjä, Y ei: yksi sivutila vapautetaan –X ei ole tyhjä, Y on: varataan yksi tila lisää –kumpikaan ei ole tyhjä: sivutilojen määrä ei muutu Sivutilojen määrä siis muuttuu enintään yhdellä kerrallaan. Vakio T kertoo kuinka kauan prosessi voi varata käyttämätöntä tilaa. T:n koolla voi tehokkaasti hallita muutosnopeutta. Työjoukon koko on vahvasti sidoksissa paikallisuuteen. Nyrkkisääntö: prosessia ei kannata ottaa suoritukseen, jos sen työjoukko ei mahdu keskusmuistiin.

15 Kelloalgoritmit Työjoukkoalgoritmi on raskas, vaihtoehtojakin löytyy, jotka approksimoivat toimintaa, mutta ovat kevyempiä kelloalgoritmi toimii kuten NUR järjestelmänlaajuisesti. kaikkiin sivutiloihin liitetään viittausbitti ja mahdollisesti muutosbitti. ’viisari’ osoittaa yhteen sivutilaan. Sivutilaa pyydettäessä ’viisari’ käy läpi kaikkien sivujen viittausbitit ja korvaa ensimmäisen johon ei ole viitattu. dynaaminen, mutta ei ota huomioon yksittäisen prosessin tarpeita

16 Working Set Clock LRU-tyylinen jokaiseen sivutilaan lisätään muuttuja ’viitattu’, johon tallennetaan virtuaalisen ajan hetki, jolloin sivutilaan on viimeksi viitattu jos se ylittänyt oman ’elinikänsä’, sivutilan saa poistaa approksimoi kohtuullisesti työjoukkoalgoritmia käytetään useissa sivuttavissa käyttöjärjestelmissä Rautataso ja softataso Melkein kaikki toteutetaan rautatasolla, softatasolla vain ne algoritmit, joiden perusteella sivut korvataan toisilla


Lataa ppt "Virtuaalimuisti Modernin muistinhallinnan tärkein menetelmä on virtuaalimuisti, jossa looginen osoiteavaruus ja fyysinen muistiavaruus on erotettu toisistaan."

Samankaltaiset esitykset


Iklan oleh Google