Esittely latautuu. Ole hyvä ja odota

Esittely latautuu. Ole hyvä ja odota

1 9. Muistinhallinta l Moniajojärjestelmässä keskusmuisti on jaettu usean prosessin kesken l => ohjelman paikka muistissa ei ole kiinteä, vaan koodi on.

Samankaltaiset esitykset


Esitys aiheesta: "1 9. Muistinhallinta l Moniajojärjestelmässä keskusmuisti on jaettu usean prosessin kesken l => ohjelman paikka muistissa ei ole kiinteä, vaan koodi on."— Esityksen transkriptio:

1 1 9. Muistinhallinta l Moniajojärjestelmässä keskusmuisti on jaettu usean prosessin kesken l => ohjelman paikka muistissa ei ole kiinteä, vaan koodi on vapaasijoitteinen eli voidaan sijoittaa eri paikkaan muistissa l tämä edellyttää todellisten muistiosoitteiden ajoaikaista laskemista

2 2 l Prosessi voi sijaita laitteistosta ja KJ:stä riippuen n keskusmuistissa yhtenäisellä alueella n keskusmuistissa palasina eri paikoissa n osa keskusmuistissa, osa levyllä –on tarvittaessa tuotava levyltä keskusmuistiin –muistin kerrostus = ohjelmoija kertoi milloin tarvitaan –virtuaalimuisti = KJ tuo tarvittaessa muistiin

3 3 l lineaarinen osoiteavaruus n muistiosoitteet on numeroitu peräkkäin nollasta alkaen n pienin osoitettava osa on tavun tai sanan mittainen muistipaikka n kirjanpidon takia –vapaat ja varatut alueet jaetaan suurempiin alueisiin segmentteihin tai sivuihin 9.1 Muistin organisointi

4 4 l Muisti koostuu samanmittaisista peräkkäisistä muistipaikoista 0 6 12 18 24 30 36 42 48 54 60 66... segmentti tai sivu muistipaikka

5 5 l muistihierarkia ja välimuistin käyttö levy Prosessori Keskusmuisti rekisterit välimuisti koodi- ja data-alueet lohkopuskuri muutama ns 10-20 ns 50-100 ns 10 ms

6 6 l Osoitemuutos n prosessin muistialue on yhtenäinen kokonaisuus n osoitemuutos ja suojaus kanta- ja rajarekistereiden avulla (BASE, LIMIT) 9.2 Kanta- ja rajarekisteriä käyttävä järjestelmä LIMIT BASE MAR MMU ohjelman osoite fyysinen osoite

7 7 Jokaisesta muistiviittauksesta MMU n tarkistaa sen oikeellisuuden –osoite < LIMIT n muuttaa ohjelmaosoitteen fyysiseksi muistiosoitteeksi –osoite = osoite +BASE n jos koodille ja datalle omat muistisegmentit, niin tarvitaan kaksi paria kanta- ja rajarekistereitä

8 8 l prosessista pidetään keskusmuistissa kulloinkin tarpeelliset osat n peräkkäiset osat voivat sijaita erillään l muut osat saatavissa nopeasta tukimuistista l looginen fyysinen muistiavaruus sivutila n muistissa fyysiset sivutilat sivu n ohjelmassa samankokoisia loogisia sivuja 9.3 Virtuaalimuisti

9 9 l Sivut ja sivutilat muistin sivutiloja ohjelman sivuja Ohjelman sivuja voidaan sijoittaa vapaisiin sivutiloihin. Osa sivuista voi olla levyllä. ….. 0 1 2 3 ………... 0202 4 6 8 10 ohjelman sivu 2 ohjelman sivu 3 ohjelman sivu 0

10 10 l Sivutaulu n kertoo, missä prosessin sivut todella sijaitsevat 0123401234 ….. sivutilan nro P-bitti M-bitti muuta 9 1 0 0 3 1 1 4 1 0

11 11 l Osoitemuunnos n ohjelman osoite 12 11 10 09 08 07 06 05 04 03 02 01 00 1 0 1 0 0 0 1 1 1 1 1 0 1 => sivunumero + siirtymä Jakolasku: sivunumero = ohjelman osoite DIV sivun koko siirtymä = ohjelman osoite MOD sivun koko

12 12 l Fyysinen osoite eli osoite muistissa Fyysinen osoite : saadaan katenoimalla (= yhdistämällä peräkkäin) sivutilannumero sivunumerosta sivutaulun avulla saadaan sivunumerosta sivutaulun avulla ja siirtymä

13 13 l Luentomonisteen sivulta 123. n Mikä on kuvan 9.3 prosessin osoitetta 0 vastaava fyysinen osoite? n Mikä fyysinen osoite vastaa osoitetta 6345? Esimerkki

14 l Prosessin sivutaulun sijainti l Koko sivutaulu MMU:n rekistereissä n aina prosessin vaihtuessa vaihdetaan rekistereiden sisältö n osoitteen laskenta nopeaa n vain pienet osoiteavaruudet mahtuvat l Sivutaulu keskusmuistissa, MMU:ssa sivutaulun keskusmuistiosoite PTR n isotkin osoiteavaruudet mahtuvat n osoitteen lasku hidas –ensin sivutaulun alkio muistista n osoitemuunnospuskuri TLB MMU:ssa –viimeksi muunnoksissa tarvitut tiedot

15 15 l TLB TLB on nopeaa assosiatiivimuistia MMU PTR MAR TLB ohjelman osoite fyysinen osoite

16 16 l TLB:n sisältö sivunumero sivutilannumero P-bitti V-bitti muuta Koko on esim. 8 rekisteriä. Niissä viimeksi viitatut sivutaulun alkiot. Usein tiedot löytyvät jo suoraan TLB:stä ja osoitetaulun alkion erillistä muistinoutoa ei tarvita.

17 17 TLB: osoitteenmuunnos l Jaa ohjelman osoite sivunumeroksi ja siirtymäksi l Etsi sivunumeroa TLB:stä l Jos ei löydy tai v-bitti = 0 n nouda sivutaulun alkio MEM[PTR+sivunumero] johonkin TLB:n alkioon n jos p-bitti =0, niin aiheuta sivunpuutoskeskeytys n muuten lisää TLB:n alkioon sivun numero ja aseta v-bitti ykköseksi l Lisää sivutilan numeroon (TLB:ssä) siirtymä

18 18 l Sivujen poistaminen muistista sivunpuutoskeskeytys n Jos prosessin viittamaa sivua ei löydy muistista, aiheutuu sivunpuutoskeskeytys ja sivu haetaan muistiin n Jos kaikki sivutilat jo käytössä, niin jokin sivuista on poistettava muistista –poistetaan ‘turha sivu’, mutta mistä tiedetään, että sivua ei enää tarvita? –sivu, jota ei pisimpään aikaan ole käytetty => sivukohtaiset viitebitit,

19 19 l Passiivinen, turhaan keskusmuistia kuluttava prosessi siirretään levylle n kokonaan n joitakin osia prosessista n muuttumattomia osia ei tarvitse kirjoittaa uudelleen levylle l prosessin kuvaaja jää aina muistiin l aktiiviset prosessit palautetaan takaisin keskusmuistiin l heittovaihto kuluttaa resursseja 9.4. Heittovaihto

20 20 l Kanta- ja rajarekisteriä käyttävä järjestelmä n allokoitava riittävä tila n tuotavalle prosessille tilaa poistamalla muita passiivisia n poistoalgoritmi –siirräntää WAIT-tilassa odottavat prosessit –suuret tilaa vievät prosessit –kauimmin muistissa –pienimmän prioriteetin prosessit n noutoalgoritmi –kun tilaa vapautuu, tuo prosesseja keskusmuistiin

21 l virtuaalimuistijärjestelmä n sivutilataulu kertoo vapaat ja varatut tilat –päivitetään, kun varataan tai vapautetaan tilaa n jos ei ole vapaita sivutiloja l poistoalgoritmi valitsee poistettavat sivut l viitebitti: pitkään käyttämättömänä olleet sivut n yleensä sivu tuodaan muistiin vasta, kun sitä tarvitaan –tarvesivutus –ennaltanouto l sivut muistiin prosessin käynnistyessä l tai pyritään ‘arvaamaan’ mitä sivuja seuraavaksi tarvitaan

22 22 Segmentointi l prosesseja ei jaeta vakiomittaisiin sivuihin, vaan mahdolliseti erimittaisiin segmentteihin n esim. aliohjelma = segmentti l ongelmana muistin sirpaloituminen (tai pirstoutuminen) (fragmentation) n sijoitusalgoritmi pyrkii vähentämään n ajoittain vapaiden tilojen yhdistäminen l sivuttava segmentointi: ensin segmentoidaan, sitten sivutetaan


Lataa ppt "1 9. Muistinhallinta l Moniajojärjestelmässä keskusmuisti on jaettu usean prosessin kesken l => ohjelman paikka muistissa ei ole kiinteä, vaan koodi on."

Samankaltaiset esitykset


Iklan oleh Google