Esittely latautuu. Ole hyvä ja odota

Esittely latautuu. Ole hyvä ja odota

Muistinhallinta Keskusmuisti on kriittinen osa von Neumannin arkkitehtuuria rekisteri välimuisti(t) keskusmuisti levyvälimuisti kiintolevy lähiverkko Internet.

Samankaltaiset esitykset


Esitys aiheesta: "Muistinhallinta Keskusmuisti on kriittinen osa von Neumannin arkkitehtuuria rekisteri välimuisti(t) keskusmuisti levyvälimuisti kiintolevy lähiverkko Internet."— Esityksen transkriptio:

1 Muistinhallinta Keskusmuisti on kriittinen osa von Neumannin arkkitehtuuria rekisteri välimuisti(t) keskusmuisti levyvälimuisti kiintolevy lähiverkko Internet

2 Suhteellisista hakuajoista ja monimutkaisuudesta
Rekisterin käyttöä voi verrata maidon juomiseen lasista, joka on pöydällä. Välimuistia käytettäessä pitää maito hakea viereisestä huoneesta. Keskusmuistissa oleva maito on vielä kaupassa Levyvälimuistissa olevan maidon hakemiseksi pitää nousta suihkukoneeseen, lentää Cape Kennedyyn, hakea maito varastosta ja lentää takaisin. Kiintolevyltä maito saadaan, kun edellistä retkeä jatketaan nousemalla sukkulaan, lentämällä kuuhun, ottamalla maitopurkki sieltä ja palaamalla samaa reittiä takaisin. Lähiverkkoa käyttäessä tilanne on sama kuin edellä, mutta maito on Jupiterissa. Hakeakseen maidon Internetistä on ensin käynnistettävä tutkimusohjelma, joka etsii merkkejä aurinkokunnan ulkopuolisesta maidosta.

3 Nopeiden hakuaikojen saavuttamiseksi pyritään tuomaan mahdollisimman paljon tietoa mahdollisimman lähelle prosessoria. Miksi sitten tietoa varastoidaan kauas prosessorista?

4

5 Varastojen kokoon vaikuttaa:
Lyhyen hakuajan medioilla on suurempi yksikkökustannus. Suuren kapasiteetin medioilla on pienempi yksikkökustannus. Suurempi kapasiteetti merkitsee suurempaa hakuaikaa. Tiedon jakaminen eri koneiden kesken.

6 Taustalla olevia syitä:
Lyhyt hakuaika tarkoittaa käytännössä, että yksikkö on koteloitu fyysisesti pieneen tilaan ja lähelle prosessoria. Tähän tarvittava miniatyyriteknologia maksaa. Suuria määriä tehdessä saavutetaan massavalmistus ja integrointisäästöjä. Koska kehitys kuitenkin tapahtuu rinnakkain kaikilla tasoilla, tämä on johtanut kunkin tason kasvamiseen. Esimerkiksi nykyään prosessoreissa käytettävät välimuistit ovat suurempia kuin joidenkin mikrotietokoneiden keskusmuistit muutama vuosikymmen sitten. Samalla vastaavan hintaluokan keskusmuistien koko on kuitenkin kasvanut suunnilleen samassa suhteessa. Suurempi kapasiteetti on helpompaa rakentaa suureen tilaan. Lisäksi kapasiteettia saadaan helposti lisää, jos käytetään liikkuvia osia, kuten pyöriviä levyjä ja liikkuvia luku- ja kirjoitusvarsia. Mikä tahansa mekaaninen liike on matelua sähkön nopeuden rinnalla. Tiedon jakaminen mahdollistaa sen käsittelyn hajauttamisen ja siten monessa suhteessa järjestelmän tehokkaamman toiminnan

7 Miksi muistihierarkiassa sitten on näin monta tasoa
Miksi muistihierarkiassa sitten on näin monta tasoa? Tyypillisesti liikuttaessa hierarkiassa alaspäin tapahtuu seuraavia ilmiöitä: Muistin yksikkökustannus laskee, kapasiteetti nousee, hakuaika kasvaa, prosessoriviittausten tiheys laskee.

8 Paikallisuus: 98% ajasta käytetään 2% ohjelmakoodista
Mistä paikallisuus johtuu? Silmukat, usein toistettavat aliohjelmat, tietorakenteet. Erityisesti lyhyellä aikavälillä Paikallisuutta voidaan hyödyntää muistiinsijoittamisessa Ongelmia: tiedon redundanssi, tallentamaton tieto

9 Muistiinsijoittaminen
Keskusmuistin kannalta Mihin sijoitetaan? Mitä poistetaan, jos tarvitaan lisää tilaa? Keskusmuisti on resurssi, joten se koostuu yksiköistä, joita jaetaan prosessien kesken

10 Muistiinsijoittamisen strategiat Nouto (fetch) strategiat
demand fetch (nouto pyydettäessä) anticipatory fetch (ennakoiva nouto) Sijoitusstrategiat First-fit Next-fit Best-fit Korvausstrategiat

11 Muistinhallinnan strategiat -Kiinteänkokoinen partitio
muisti jaettu kiinteänmittaisiin partitioihin (segmentteihin), joiden ei tarvitse olla keskenään samanmittaisia Miten prosessi sijoitetaan? Miten pidetään kirjaa vapaasta tilasta? Yhdelle segmentille vain yksi prosessi: Suojataan muistialue toisilta prosesseilta Käyttöjärjestelmälle oma segmentti

12 Ongelmia: Ohjelma ei välttämättä mahdu partitioon. Järjestelmän jokainen partitio voi olla liian pieni ohjelmalle. Tässä tapauksessa ohjelmoijan täytyy suunnitella koodinsa siten, että kerrostuksien (overlay) avulla voi tuoda muistiin vain osan ohjelmasta kerrallaan. Toisaalta järjestelmän keskusmuisti voisi riittää koko ohjelman tuomiseen kerralla muistiin. Muistinhallinta on äärimmäisen tehotonta. Jokaisen ohjelman, oli se sitten miten pieni tahansa, täytyy käyttää kokonainen partitio. Esimerkiksi, jos kaikkien partitioiden koko on 8 megatavua, käyttää kilonkin kokoinen ohjelma kaikki 8 megatavua. Tätä ilmiötä, jossa tilaa hukataan partition sisällä, koska ladattu data ei täytä koko aluetta kutsutaan sisäiseksi pirstoutumiseksi (fragmentoituminen). Aktiivisten (ei-pysäytettyjen eli keskusmuistissa olevien) prosessien määrä on vakio. Kaikki ongelmat kärjistyvät, mikäli partitiot ovat samankokoisia

13 kehitettiin ratkaisemaan kiinteämittaisten ongelmat
Dynaamiset partitiot kehitettiin ratkaisemaan kiinteämittaisten ongelmat Prosessi saa sen verran muistia kuin tarvitsee Prosessien poistaminen jättää keskusmuistiin ’reikiä’, jotka voidaan ottaa myöhemmin käyttöön. Peräkkäiset reiät voidaan yhdistää. Saattaa syntyä suuri joukko pieniä reikiä ulkoinen fragmentoituminen

14 raskas prosessi, jota kannattaa pyrkiä välttämään
Tiivistys: sijoitetaan prosessit muistiin uudestaan siten, että ne seuraavat suoraan edellistä prosessia eli kerätään käyttämätön muisti avaruuden loppuun raskas prosessi, jota kannattaa pyrkiä välttämään parempi käyttää sopivaa sijoitusalgoritmia: First-fit (aiheuttaa pirstoutumista muistialueen alussa) Next-fit (aiheuttaa pirstoutumista muistialueen lopussa) Best-fit (aiheuttaa pahasti pirstoutumista) Worst-fit (ei aina huono valinta)

15

16 Virtuaalimuisti moderni muistinhallintamenetelmä prosessien näkemä muistiavaruus on eri kuin todellinen (käyttöjärjestelmä ja rauta hoitavat osoitemuunnokset) virtuaaliavaruus usein suurempi kuin todellinen muistiavaruus virtuaalimuistin tietoja voi olla sijoitettuna levylle (sovellusohjelmien ei sitä tarvitse tietää)

17 Kerrostus ja heittovaihto
manuaalinen kerrostus: ohjelma kirjoitetaan modulaarisesti maksimimuistitarpeen vähentämiseksi ohjelmien monimutkaisuus toi ongelmia syntyi heittovaihto

18 Sivutus, segmentointi ja virtuaaliosoitteet
jaetaan muisti suureen määrään pieniä osia: sivuiksi (yhtä suuria) tai segmenteiksi (eri suuria), osille muodostetaan virtuaaliosoitteet (loogiset osoitteet) ohjelma generoi osoiteavaruutensa, johon viitataan virtuaaliosoitteilla

19 Sivutuksessa muistiavaruus jaetaan sivutiloiksi ja osoiteavaruus sivuihin. Prosessi saa käyttöönsä joukon sivuja. Loogisesti yhtenäinen osoitteisto ei välttämättä ole fyysisesti yhtenäinen. Ulkoista fragmentoitumista ei tapahdu, sisäinen minimoitu Kriittinen tekijä on osoitteenmuunnosmekanismi: Irrotetaan osoitteen alusta n bittiä Prosessori käyttää näitä bittejä avaimena sivutauluun (page table) Sivutaulusta luetaan loogista sivua vastaavan sivutilan alkuosoite Alkuosoitteeseen lisätään osoitteen loppuosa Sivutaulut ovat prosessi kohtaisia

20 Sivutaulu voidaan toteuttaa osin assosiatiivisessa muistissa, jossa muistiin voidaan viitata osoitteen sijasta sisällön avulla. Assosiatiiviseen tauluun voidaan siis joustavasti sijoittaa muistiavaruuden sivuja ja niitä vastaavien sivutilojen osoitteita. Assosiatiivinen muisti on kallista, mutta pienellä määrällä päästään pitkälle. Hybridimallissa tarkastetaan ensin assosiatiivimuisti, sen jälkeen sivumuisti.

21

22 Sivutus mahdollistaa sivujen yhteiskäytön: jaetaan ohjelman osat kahteen ryhmään:
jaettaviin (ohjelmakoodi) yksityisiin (data, muutettavat proseduurit) (ongelmia poissulkemisen suhteen, tosin tällä kertaa poissulkeminen aiheuttaa ongelmat)

23 Irrotetaan osoitteen alusta n bittiä osoittamaan segmentin osoitetta.
Segmentointi eliminoi sisäisen pirstoutumisen ja ulkoinen minimoituu. Osoitteenmuunnosmekanismiltaan segmentointi muistuttaa sivutusta. Osoite annetaan muodossa ”segmentti+siirtymä” ja muunnetaan seuraavasti: Irrotetaan osoitteen alusta n bittiä osoittamaan segmentin osoitetta. Käytetään näitä bittejä segmenttitaulun indeksinä. Verrataan siirtymää (jäljelläolevat bitit) segmentin pituuteen. Jos se on suurempi, osoite ei ole kelvollinen. Fyysinen osoite on segmentin aloitusosoite + siirtymä.

24 Sivutus ja segmentointi voidaan yhdistää
Sivutus ja segmentointi voidaan yhdistää. Muisti jaetaan segmentteihin, jotka koostuvat kiinteän kokoisista sivuista. Osoite koostuu kolmesta osasta: segmentin numero s sivun numero p siirtymä sivulla d. Assosiatiivimuistista löytyy tavallisesti segmentti-sivu –pari, jonka mukaisesta sivutilasta löytyy sivu. Ellei, etsitään prosessin segmenttitaulusta ko. segmentin s sivutaulun alku. Ellei siitä ole, käyttöjärjestelmä perustaa sen. Jos sivutaulu on muistissa, etsitään haluttu sivu p, jonka perusteella saadaan muodostettua todellinen osoite p’+d (p’ = loogista sivua p vastaavan sivutilan fyysinen osoite).

25 Virtuaalimuisti Virtuaalimuisti on menetelmä, jossa looginen (virtuaalinen) osoiteavaruus on suurempi kuin fyysinen osoiteavaruus. Tämä toteutetaan yhdistämällä edelläesitetyt virtuaaliosoitteiden käyttömekanismit heittovaihdon kanssa. Periaate on yksinkertainen: Muutetaan osoitteenmuutosfunktiota siten, että se voi palauttaa paitsi fyysisen muistipaikan osoitteen, myös puutosilmoituksen (page fault), eli että pyydetty sivu ei ole muistissa. Tässä tapauksessa sitä haetaan levyltä heittovaihtotiedostosta.


Lataa ppt "Muistinhallinta Keskusmuisti on kriittinen osa von Neumannin arkkitehtuuria rekisteri välimuisti(t) keskusmuisti levyvälimuisti kiintolevy lähiverkko Internet."

Samankaltaiset esitykset


Iklan oleh Google