virtuaalimuisti stallings luku 8 1 n.
Download
Skip this Video
Loading SlideShow in 5 Seconds..
VIRTUAALIMUISTI Stallings, Luku 8.1 PowerPoint Presentation
Download Presentation
VIRTUAALIMUISTI Stallings, Luku 8.1

Loading in 2 Seconds...

play fullscreen
1 / 62

VIRTUAALIMUISTI Stallings, Luku 8.1 - PowerPoint PPT Presentation


  • 120 Views
  • Uploaded on

Käyttöjärjestelmät. VIRTUAALIMUISTI Stallings, Luku 8.1. Sisältö. Ohjelman suoritus virtuaalimuistissa Sivutus Osoitemuunnospuskuri TLB Lisää sivutauluista Segmentointi Segmentointi ja sivutus yhdistettynä Yhteiskäytöstä. Käyttöjärjestelmät I. OHJELMAN SUORITUS VIRTUAALIMUISTISSA.

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about 'VIRTUAALIMUISTI Stallings, Luku 8.1' - romeo


An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
virtuaalimuisti stallings luku 8 1

Käyttöjärjestelmät

VIRTUAALIMUISTI

Stallings, Luku 8.1

KJ-I S2003 / Auvo Häkkinen, CT50A2601 / Heikki Kälviäinen

sis lt
Sisältö
  • Ohjelman suoritus virtuaalimuistissa
  • Sivutus
  • Osoitemuunnospuskuri TLB
  • Lisää sivutauluista
  • Segmentointi
  • Segmentointi ja sivutus yhdistettynä
  • Yhteiskäytöstä

KJ-I S2003 / Auvo Häkkinen, CT50A2601 / Heikki Kälviäinen

k ytt j rjestelm t i
Käyttöjärjestelmät I

OHJELMAN

SUORITUS

VIRTUAALIMUISTISSA

KJ-I S2003 / Auvo Häkkinen, CT50A2601 / Heikki Kälviäinen

suoritus virtuaalimuistissa
Suoritus virtuaalimuistissa
  • Ohjelman loogiset osoitteet muutetaan fyysisiksi osoitteiksi vasta ajonaikana
    • prosessin paikka muistissa vaihtelee,

sillä ei vaikutusta osoitemuunnokseen

    • MMU
  • KJ käsittelee ohjelmaa sivuina tai

kääntäjä jakaa ohjelman segmentteihin, jotka KJ voi sijoitella vapaasti muistiin

    • KJ:n kirjanpito osien sijainnista prosessin

sivutaulussa tai segmenttitaulussa

KJ-I S2003 / Auvo Häkkinen, CT50A2601 / Heikki Kälviäinen

suoritus virtuaalimuistissa1
Suoritus virtuaalimuistissa
  • Kaikkien sivujen / segmenttien ei tarvitse olla muistissa yhtäaikaa
    • riittää, että suoritettava osa ja sen data muistissa
    • paikallisuus, suoritus viihtyy samoilla alueilla
    • ks. kuva 8.1
  • Laitteisto (MMU) ja KJ huolehtivat, että tarvittavat osat oikeaan aikaan muistissa
    • MMU huomaa puuttumisen
    • KJ noutaa muistiin

= Virtuaalimuisti

KJ-I S2003 / Auvo Häkkinen, CT50A2601 / Heikki Kälviäinen

suoritus virtuaalimuistissa2
Suoritus virtuaalimuistissa
  • Sivu- / segmenttitaulun alkiossa läsnäolobitti, josta käy ilmi onko sivu / segmentti muistissa
  • Lataaja tuo aluksi muistiin

vain muutaman sivun / segmentin

(ennaltanouto) tai ei yhtään (tarvenouto)

  • Prosessi CPU:lle 

MMU:hun sivu- / segmenttitaulun

fyysinen muistiosoite

TLB:n sisällön mitätöinti (Translation Lookaside Buffer, nopea välimuisti sivutaulujen viimeisimpiin viittauksiin)

KJ-I S2003 / Auvo Häkkinen, CT50A2601 / Heikki Kälviäinen

puutoskeskeytys memory page fault
Puutoskeskeytys (memory / page fault)
  • Jos viitattu osoite ei ole muistissa,

MMU aiheuttaa keskeytyksen

  • KJ siirtää keskeytyksen aiheuttaneen prosessin (A) Blocked-tilaan
  • KJ etsii sivulle / segmentille

vapaan paikan muistista

  • KJ käynnistää ohjaimen siirtämään

puuttuvaa sivua / segmenttia ko. paikkaan

  • Siirron aikana CPU suorittaa

muita prosesseja

KJ-I S2003 / Auvo Häkkinen, CT50A2601 / Heikki Kälviäinen

puutoskeskeytys
Puutoskeskeytys
  • Kun siirto valmis, ohjain keskeyttää

suorituksessa olevan prosessin B

  • KJ päivittää prosessin A sivu/segmenttitaulun

ja siirtää prosessin A Ready-tilaan

  • Suoritus palaa takaisin prosessiin B
  • Kun prosessi A taas aikanaan suoritukseen,

se viittaa uudestaan äskeiseen osoitteeseen

    • nyt viitatun mp:n sisältö muistissa

KJ-I S2003 / Auvo Häkkinen, CT50A2601 / Heikki Kälviäinen

virtuaalimuistin etuja
Virtuaalimuistin etuja
  • Muistia käytetään tehokkaammin hyväksi
    • kustakin prosessista vain tarvittava osa muistissa
    • montako sivua/prosessi pidetään muistissa yhtäaikaa?
      • lokaalit ja globaalit algoritmit
  • Prosessoria käytetään (kenties) tehokkaammin
    • moniajoastetta voi nostaa
      • muistiin mahtuu paremmin, ei ruuhkautumista

KJ-I S2003 / Auvo Häkkinen, CT50A2601 / Heikki Kälviäinen

virtuaalimuistin etuja1
Virtuaalimuistin etuja
  • Voi ajaa fyysistä muistia suurempia ohjelmia
    • ohjelmoijan ei tarvitse huolehtia kerrostuksesta
  • Osoiteavaruus voi olla valtaisa verrattuna todelliseen muistin määrään
    • esim. 32 bittiä => 4GB:n osoiteavaruus
  • Looginen osoiteavaruus saa sisältää ‘reikiäkin’
    • vain tarvittavat osat kuvataan fyysiseen muistiin

KJ-I S2003 / Auvo Häkkinen, CT50A2601 / Heikki Kälviäinen

k ytt j rjestelm t
Käyttöjärjestelmät

SIVUTUS

KJ-I S2003 / Auvo Häkkinen, CT50A2601 / Heikki Kälviäinen

sivutus kuva 7 11
Sivutus Kuva 7.11

KJ-I S2003 / Auvo Häkkinen, CT50A2601 / Heikki Kälviäinen

sivutaulu kuva 8 2a
Sivutaulu Kuva 8.2a
  • Jokaisella prosessilla oma sivutaulu
    • missä sivutiloissa tämän prosessin sivut sijaitsevat
  • Jokaisessa alkiossa läsnäolobitti P
    • P=1: sivu muistissa, alkiossa sivutilan numero
    • P=0: sivu ei muistissa, alkiossa esim. Tieto, missä sivu sijaitsee tukimuistissa (suoraan/epäsuorasti)

KJ-I S2003 / Auvo Häkkinen, CT50A2601 / Heikki Kälviäinen

sivutaulu
Sivutaulu
  • Jokaisessa sivutaulun alkiossa

muutettu-bitti M (modified)

    • M=1: sivun sisältö muuttunut muistissa, sivu kirjoitettava levylle, jos varaus vapautetaan
    • M=0: sivua ei muutettu, ei tarvitse kirjoittaa levylle sivutilaa vapautettaessa
  • Sivutaulun alkiossa mahd. myös muuta tietoa
    • käyttötapabitti: R / RW
    • suojaustasobitti/bitit: KJ:n sivu / tav. prosessin sivu
    • milloin sivuun viitattu viimeeksi tai viitelaskuri
      • poistoalgoritmit tarvitsevat näitä

KJ-I S2003 / Auvo Häkkinen, CT50A2601 / Heikki Kälviäinen

osoitemuunnos
Osoitemuunnos
  • Prosessien sivutaulut tavallisesti

eri kokoisia ja voivat olla suuria

    • koko riippuu sivukoosta ja ohjelman koosta
    • koko taululle ei voi varata tilaa MMU:sta
      • sivutaulu muistissa ja osa jopa levyllä
      • sivutaulun fyysinen osoite PCB:ssä
  • MMU:ssa sivutaulurekisteri PTR,

jossa suoritettavan prosessin

sivutaulun fyysinen alkuosoite

KJ-I S2003 / Auvo Häkkinen, CT50A2601 / Heikki Kälviäinen

osoitemuunnos1
Osoitemuunnos
  • MMU jakaa loogisen osoitteen pariksi (sivunro,siirtymä)
    • Esim. kun sivukoko 1024 B (= 210)
      • 10 viimeistä bittiä siirtymä
      • alkuosa sivunumero
  • MMU korvaa sivunumero-bitit sivutaulusta löytyvillä sivutilannumero-biteillä
    • ts. MMU katenoi sivutilanumeron ja siirtymän bitit
  • Helppo laitetoiminto

KJ-I S2003 / Auvo Häkkinen, CT50A2601 / Heikki Kälviäinen

looginen vs fyysinen osoite
Looginen vs Fyysinen osoite

Kuva 7.12

= 1502

1

478

6

6*1024 + 478

= 6766

KJ-I S2003 / Auvo Häkkinen, CT50A2601 / Heikki Kälviäinen

osoitemuunnos kuva 8 3
Osoitemuunnos Kuva 8.3

KJ-I S2003 / Auvo Häkkinen, CT50A2601 / Heikki Kälviäinen

k ytt j rjestelm t1
Käyttöjärjestelmät

Osoitemuunnospuskuri

TLB

KJ-I S2003 / Auvo Häkkinen, CT50A2601 / Heikki Kälviäinen

osoitemuunnospuskuri tlb
Osoitemuunnospuskuri TLB
  • Koska sivutaulu muistissa, jokaiseen muunnokseen näyttäisi liittyvän

yksi ylimääräinen muistinouto

    • hae sivutaulun alkio MMU:hun
    • tee osoitemuunnos
    • nouda / talleta ko. fyysiseen osoitteeseen
  • Ratkaisu: osoitemuunnospuskuri TLB
    • Translation Lookaside Buffer
  • MMU pitää tallessa edellisissä muunnoksissa tarvitut sivutaulun tiedot
    • paikallisuus: sitä tarvitaan het’kohta uudestaan
    • sivutaulun alkiota ei tarvitse noutaa joka kerta

KJ-I S2003 / Auvo Häkkinen, CT50A2601 / Heikki Kälviäinen

etsint tlb st
Etsintä TLB:stä
  • TLB nopeiden rekistereiden joukko
    • esim. 32 rekisteriä
  • Käyttää assosiatiivista hakua
    • vertailu kohdistuu kaikkiin alkioihin yhtäaikaa
    • etsintä nopeaa
    • laitetoiminto!
  • Kaikilla prosesseilla sivut 0, 1, 2, …,

mutta eri sivutiloissa

    • TLB tyhjennettävä prosessin vaihdossa
  • TLB:n alkiossa (ainakin)

sivunro, sivutaulun alkio, validibitti V

KJ-I S2003 / Auvo Häkkinen, CT50A2601 / Heikki Kälviäinen

etsint tlb st k uva 8 9
Etsintä TLB:stäKuva 8.9

KJ-I S2003 / Auvo Häkkinen, CT50A2601 / Heikki Kälviäinen

slide23

Perform

page

replacement

Kuva 8.8.

tlb ja osoitemuunnos
TLB ja osoitemuunnos

sivunro = loog. osoitteen alkubitit

siirtymä = loog. osoitteen loppubitit

Jos sivun tiedot ei TLB:ssä tai V=0,

nouda TLB:hen sivutaulun alkio

osoitteesta PTR + sivunro

Jos P=0, aiheuta sivunpuutoskeskeytys

Fyys.os = Katenoi(Sivutilanro,Siirtymä)

  • Kun keskeytys käsitelty, sama osoite

tulee viitattavaksi uudelleen

    • Esim. PC:n kasvatus vasta osoitemuunnoksen jälkeen

KJ-I S2003 / Auvo Häkkinen, CT50A2601 / Heikki Kälviäinen

tlb ja osoitemuunnos kuva 8 7
TLB ja osoitemuunnos Kuva 8.7

KJ-I S2003 / Auvo Häkkinen, CT50A2601 / Heikki Kälviäinen

tlb n alustus
TLB:n alustus
  • Kun suoritettava prosessi vaihtuu,

TLB:n vanha sisältö mitätöitävä

    • PTR osoittamaan uuden prosessin sivutauluun
    • nollattava TLB:n alkioiden validibitit V=0
  • Koska TLB suhteellisen pieni,

tarvitaan sopiva laitetason algoritmi,

jonka perusteella valitaan korvattava alkio

    • TLB:n alkiossa mahd. myös laitetason viitelaskureita:

poista se, jota ei ole aikoihin käytetty

KJ-I S2003 / Auvo Häkkinen, CT50A2601 / Heikki Kälviäinen

tlb ja v limuisti kuva 8 10
TLB ja välimuisti Kuva 8.10

KJ-I S2003 / Auvo Häkkinen, CT50A2601 / Heikki Kälviäinen

k ytt j rjestelm t2
Käyttöjärjestelmät

Lisää sivutauluista

KJ-I S2003 / Auvo Häkkinen, CT50A2601 / Heikki Kälviäinen

lis sivutauluista
Lisää sivutauluista
  • Monet järjestelmät sallivat suuren virtuaaliosoiteavaruuden
    • looginen osoite esim. 32 tai 64 bittiä
  • Jokaisella prosessilla suuri sivutaulu
    • jos 32-bittinen osoite ja sivukoko 4KB (12 bittiä),

niin sivuja 220 = 1M kappaletta

    • jokainen alkio useita tavuja, esim. 4 B,

joten sivutaulu 4 MB

  • Myös sivutaulu jaetaan sivuihin ja

myös sivutaulun osia voidaan pitää levyllä

    • riittää, kun suorituksessa olevaan osaan

liittyvät sivut muistissa

KJ-I S2003 / Auvo Häkkinen, CT50A2601 / Heikki Kälviäinen

2 tasoinen sivutaulu kuva 8 4
2-tasoinen sivutaulu Kuva 8.4

1 K alkiota (= 1024 = 210)

1K * 1K = 1M alkiota

  • Ylin hakemisto mahtuu yhteen sivuun,

pysyvästi muistissa

KJ-I S2003 / Auvo Häkkinen, CT50A2601 / Heikki Kälviäinen

2 tasoinen sivutaulu kuva 8 5
2-tasoinen sivutaulu Kuva 8.5

KJ-I S2003 / Auvo Häkkinen, CT50A2601 / Heikki Kälviäinen

k nteinen sivutaulu
Käänteinen sivutaulu
  • Fyys. muisti pienempi kuin virtuaaliavaruus
  • Kirjaa sivutilakohtaisesti, mikä sivu sijaitsee ko. sivutilassa
    • vain yksi globaali käänteinen sivutaulu
    • yksi alkio per fyysinen sivutila,

jossa ko. sivutilassa sijaitsevan sivun numero

  • Jokaisella prosessilla sivu 0, 1, 2, ...

miten tiedetään, minkä prosessin sivu kyseessä?

    • alkiossa myös prosessin numero (pid)
    • MMU:hun rekisteri, jossa suoritettavan prosessin pid

KJ-I S2003 / Auvo Häkkinen, CT50A2601 / Heikki Kälviäinen

k nteinen sivutaulu1
Käänteinen sivutaulu
  • Käänteisen ST:n indeksit sivutilan numeroita, mutta prosessin osoitteesta käy ilmi

sivunumero ja siirtymä

    • etsittävä sisällön perusteella
  • Etsintä peräkkäishakuna tehotonta
  • Käytetään apuna hajautustaulua
    • käytä hajautinta indeksin laskentaan, etsi kotisolusta
    • samaan hajautusosoitteeseen kuvautuvat alkiot linkitetty toisiinsa
  • Jos sivun tiedot ei listassa,

aiheuta sivunpuutoskeskeytys

KJ-I S2003 / Auvo Häkkinen, CT50A2601 / Heikki Kälviäinen

k nteinen sivutaulu k uva 8 6
Käänteinen sivutaulu Kuva 8.6

(Täydennetty)

KJ-I S2003 / Auvo Häkkinen, CT50A2601 / Heikki Kälviäinen

sopiva sivukoko
Sopiva sivukoko?
  • Laitteisto (MMU) määrää mitä sivukokoa

KJ:n käytettävä

    • sivukoko aina 2:sen potenssi
      • nopea osoitemuunnos
      • katkaisu ja katenointi helppoa
  • Mitä pienemmät sivut,

sitä enemmän sivuja/prosessi = suuremmat sivutaulut

    • pienempi sivutaulu vie vähemmän tilaa
    • ison sivutaulun osia useammin levyllä
      • enemmän keskeytyksiä

KJ-I S2003 / Auvo Häkkinen, CT50A2601 / Heikki Kälviäinen

sopiva sivukoko1
Sopiva sivukoko?
  • Pieni: aiheuttaa vähän sisäistä pirstoutumista
  • Iso: sisältää paljon esim. tarpeetonta koodia
  • Iso: saattaa sopia paremmin yhteen

levysiirtojen kanssa (lohkokoko)

    • hakuvarren siirto ja pyörähdysviive syö paljon aikaa
  • Iso: viittaus useammin samalle sivulle
    • TLB:n osumatodennäköisyys hyvä

KJ-I S2003 / Auvo Häkkinen, CT50A2601 / Heikki Kälviäinen

sivupuutosten m r
Sivupuutosten määrä
  • Prosessille varatulle alueelle sopii enemmän pieniä sivuja kuin suuria
  • Pieneltä sivulta viite usein muille sivuille, muistiin valikoituu pian ne sivut joita käytetään paljon
    • vähän sivupuutoksia
  • Tn. että isolta sivulta viitattu sivu muistissa pienempi
    • paljon sivupuutoksia
  • Kun sivukoko lähestyy prosessin kokoa,
    • vähän sivupuutoksia

P=prosessin koko

KJ-I S2003 / Auvo Häkkinen, CT50A2601 / Heikki Kälviäinen

sivupuutosten m r1
Sivupuutosten määrä
  • Paljonko sivutiloja

per prosessi?

  • Jos vähän sivutiloja,

KJ heittää helposti pois

sivun, jota tarvitaan pian uudelleen

    • paljon sivupuutoksia
  • Jos saa paljon, niin lähes kaikki sivut mahtuvat muistiin
    • vähän sivupuutoksia
  • lokaalit vs. globaalit algoritmit

W = working set size

N = total # of pages in process

KJ-I S2003 / Auvo Häkkinen, CT50A2601 / Heikki Kälviäinen

sopiva sivukoko2
Sopiva sivukoko?
  • Yleisimmin käytetty sivukoko 4KB
    • ks. myös taulukko 8.2
  • Tämä ei sovellu kaikkiin tarpeisiin,

eräät prosessorit sallivat useita sivukokoja

    • Pentium sallii 2 kokoa: 4KB tai 4MB
    • MIPS peräti 7 eri koko: 4KB ..16MB

KJ-I S2003 / Auvo Häkkinen, CT50A2601 / Heikki Kälviäinen

erilaisia sivukokoja
Erilaisia sivukokoja

KJ-I S2003 / Auvo Häkkinen, CT50A2601 / Heikki Kälviäinen

k ytt j rjestelm t3
Käyttöjärjestelmät

SEGMENTOINTI

KJ-I S2003 / Auvo Häkkinen, CT50A2601 / Heikki Kälviäinen

segmentointi kuva 7 11
Segmentointi Kuva 7.11

KJ-I S2003 / Auvo Häkkinen, CT50A2601 / Heikki Kälviäinen

segmentointi
Segmentointi
  • Perusideoiltaan samanlainen kuin sivutus, ‘yksiköt’ vain keskenään erikokoisia segmenttejä
  • Jokaisella prosessilla oma segmenttitaulu
    • Kertoo missä tämän prosessin segmentit sijaitsevat
  • Osoitemuunnos segmenttitaulun avulla
  • TLB:n käyttö kuten edellä
  • MMU:n rekisterissä nyt

segmenttitaulun fyysinen osoite

KJ-I S2003 / Auvo Häkkinen, CT50A2601 / Heikki Kälviäinen

segmenttitaulu kuva 8 2b
Segmenttitaulu Kuva 8.2b
  • Jokaisessa alkiossa läsnäolobitti P
    • P=1: segmentti muistissa,
    • alkiossa fyysinen alkuosoite sekä pituus
  • Jokaisessa alkiossa muutettu-bitti M
    • kuten sivutaulussa
  • Jokaisessa alkiossa myös muuta tietoa
    • kuten sivutaulussa

KJ-I S2003 / Auvo Häkkinen, CT50A2601 / Heikki Kälviäinen

looginen vs fyysinen osoite1
Looginen vs Fyysinen osoite

= 4848

752

8224

8976 =

KJ-I S2003 / Auvo Häkkinen, CT50A2601 / Heikki Kälviäinen

osoitemuunnos2
Osoitemuunnos

segm.nro = loog. osoitteen alkubitit

siirtymä = loog. osoitteen loppubitit

Jos segmentin tiedot ei TLB:ssä tai V=0,

nouda TLB:hen segmenttitaulun alkio

osoitteesta STR + segm.nro

Jos P=0, aiheuta segm.puutoskeskeytys

Jos siirtymä > Length,

aiheuta keskeytys ‘virh.muistiosoite’

fyys. osoite = Base + Siirtymä

  • Kun keskeytys käsitelty, sama osoite

tulee viitattavaksi uudelleen

KJ-I S2003 / Auvo Häkkinen, CT50A2601 / Heikki Kälviäinen

osoitemuunnos kuva 8 12
Osoitemuunnos Kuva 8.12

KJ-I S2003 / Auvo Häkkinen, CT50A2601 / Heikki Kälviäinen

huomioita
Huomioita
  • Segmenttitaulun alkiossa alkuosoite ja pituus
    • segmentin kokoa helppo kasvattaa/pienentää dynaamisesti
      • saattaa vaatia segmentin uudelleensijoittamista
    • osoitteen oikeellisuus tarkistettavissa MMU:ssa
  • Segmentit erikokoisia,

syntyy ulkoista pirstoutumista

    • Varaus/vapautus ei niin tehokasta kuin sivuilla
    • Muistin tiivistämistarvetta
  • Segmentti sopiva suojauksen yksikkö
    • ohjelmoija määrittelee segmentit ja käyttöoikeudet
    • käyttötapa kopioitu segmenttitaulun alkioon

KJ-I S2003 / Auvo Häkkinen, CT50A2601 / Heikki Kälviäinen

k ytt j rjestelm t4
Käyttöjärjestelmät

Segmentointi ja sivutus yhdistettynä

KJ-I S2003 / Auvo Häkkinen, CT50A2601 / Heikki Kälviäinen

sivuttava segmentointi
Sivuttava segmentointi
  • Eräät laitteistot ja KJ:t jakavat myös segmenttejä sivuiksi, ohessa eräs tapa
    • muistia helpompi hallita samankokoisina sivuina
    • ei ulkoista pirstoutumista
    • ei tiivistämistarvetta
  • Jokaisella prosessilla
    • oma segmenttitaulu ja
    • yksi sivutaulu per segmentti
  • Vrt. 2-tasoinen sivutaulu

KJ-I S2003 / Auvo Häkkinen, CT50A2601 / Heikki Kälviäinen

sivuttava segmentointi tan01 4 39
Sivuttava segmentointi Tan01 4-39

Segmenttitaulu

KJ-I S2003 / Auvo Häkkinen, CT50A2601 / Heikki Kälviäinen

sivuttava segmentointi1
Sivuttava segmentointi
  • Looginen osoite jakautuu nyt kolmeen osaan
    • segmenttinumero
      • segmentin sivutaulun fyysinen osoite

löytyy segmenttitaulun tästä alkiosta

    • sivunumero
      • sivunumeroa vastaava sivutilan numero

löytyy sivutaulun tästä alkiosta

    • siirtymä
      • sivulla viitattu sana näin kaukana sivun alusta
  • Myös segmenttitaulua / sivutaulua

voidaan sivuttaa

KJ-I S2003 / Auvo Häkkinen, CT50A2601 / Heikki Kälviäinen

sivuttava segmentointi kuva 8 2c
Sivuttava segmentointiKuva 8.2c
  • Segmentin alkuosoitteen (segment base) paikalla

ko. segmentin sivutaulun fyysinen osoite

  • P-bitti ja M-bitti vain sivutaulun alkiossa
  • Yhteiskäytön ja suojauksen data

luonnollisimmin segmenttitaulun alkiossa

    • oikeudet annettu koko segmenttiin (sen kaikkiin sivuihin)

KJ-I S2003 / Auvo Häkkinen, CT50A2601 / Heikki Kälviäinen

osoitemuunnos kuva 8 13
Osoitemuunnos Kuva 8.13

KJ-I S2003 / Auvo Häkkinen, CT50A2601 / Heikki Kälviäinen

hy tyj
Hyötyjä
  • Ratkaisee dynaamisen linkittämisen ongelmakohdat
    • uuden segmentin (dynaaminen) linkittäminen tarkoittaa vain uuden alkion lisäämistä segmenttitauluun
  • Segmentin koko voi kasvaa sivu kerrallaan, eikä segmentille tarvitse etsiä uutta paikkaa fyysisessä muistissa
  • Yhteiskäyttö ja käyttöoikeudet

voi määrittää segmenttikohtaisiksi

    • kauniisti loogisten kokonaisuuksien mukaan
    • useita erilaisia suojaustasoja

KJ-I S2003 / Auvo Häkkinen, CT50A2601 / Heikki Kälviäinen

k ytt j rjestelm t5
Käyttöjärjestelmät

Yhteiskäyttö

KJ-I S2003 / Auvo Häkkinen, CT50A2601 / Heikki Kälviäinen

yhteisk ytt
Yhteiskäyttö
  • Jos usea prosessi ajaa samaa koodia,

riittää siitä yksi kopio muistissa

    • jokaisen prosessin sivu / segmenttitaulussa

viitteet yhteisen koodin ja datan

sisältäviin sivutiloihin / segmentteihin

    • mutta kullakin prosessilla omat tilat yksityiselle datalle
  • Koodin oltava vapaakäyntistä
    • ei saa muuttua
  • Sivutus ei paras tapa yhteiskäyttöä ajatellen:
    • sivu ‘kokoyksikkö’, ei looginen yksikkö
    • käyttöoikeudet vaikea rajata funktiotasolla

KJ-I S2003 / Auvo Häkkinen, CT50A2601 / Heikki Kälviäinen

yhteisk ytt editori tan01 4 31
Yhteiskäyttö: editori Tan01 4-31

KJ-I S2003 / Auvo Häkkinen, CT50A2601 / Heikki Kälviäinen

segmentointi ja yhteisk ytt
Segmentointi ja yhteiskäyttö
  • Segmentointi kaunis tapa yhteiskäyttöä ajatellen
    • ohjelman jakaminen eripituisiin segmentteihin loogisempaa kuin jakaminen tasapitkiksi sivuiksi
    • esim. yhteiskäyttöön tarkoitettu data omaksi segmentiksi, yksityinen data omaksi segmentiksi
  • Ohjelmoija kertoo kääntäjälle
    • haluamastaan segmenttijaosta
    • haluamistaan käyttöoikeuksista
  • Kääntäjä muodostaa tällä perusteella ohjelman loogiset osoitteet
    • segmentti ja siirtymä sen sisällä

KJ-I S2003 / Auvo Häkkinen, CT50A2601 / Heikki Kälviäinen

toteutuksessa huomioitavaa
Toteutuksessa huomioitavaa
  • Työjoukon koko
    • paljonko tilaa varataan per prosessi?
  • Hakupolitiikka
    • milloin sivu / segmentti tuodaan muistiin?
  • Sijoituspolitiikka
    • minne prosessin sivu / segmentti sijoitetaan?
  • Poistopolitiikka:
    • mikä varaus vapautetaan?
    • globaali/lokaali: joku sivu / joku prosessin oma sivu?

KJ-I S2003 / Auvo Häkkinen, CT50A2601 / Heikki Kälviäinen

yhteenvetoa ks taulukko 8 1
Yhteenvetoa ks. Taulukko 8.1

KJ-I S2003 / Auvo Häkkinen, CT50A2601 / Heikki Kälviäinen

kertauskysymyksi
Kertauskysymyksiä
  • Miten paikallisuus ja virtuaalimuisti

liittyvät toisiinsa?

  • Mitä tietoa on talletettava sivutauluun?

Entä segmenttitauluun?

  • Miksi segmentointi aiheuttaa muistin tiivistämistarvetta, mutta sivutus ei?
  • Miksi osoitemuunnos vasta ajoaikana?
  • Mitä hyötyä on TLB:n käytöstä?
  • Mitä on TLB:n sisältönä?

KJ-I S2003 / Auvo Häkkinen, CT50A2601 / Heikki Kälviäinen