Lataa esitys
Esittely latautuu. Ole hyvä ja odota
JulkaistuAnna Hiltunen Muutettu yli 9 vuotta sitten
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
Samankaltaiset esitykset
© 2024 SlidePlayer.fi Inc.
All rights reserved.