VIRTUAALIMUISTI. Stallings, Luku 8.1

Samankaltaiset tiedostot
Sisältö VIRTUAALIMUISTI. Stallings, Luku 8.1. Suoritus virtuaalimuistissa. Suoritus virtuaalimuistissa. Puutoskeskeytys. Suoritus virtuaalimuistissa

Sisältö VIRTUAALIMUISTI. Stallings, Luku 8.1. Suoritus virtuaalimuistissa. Suoritus virtuaalimuistissa. Puutoskeskeytys. Suoritus virtuaalimuistissa

VIRTUAALIMUISTI. Stallings, Luku 8.1

Kuva 8.7. u Muunnos prosessin sivunumerosta sivutilanumeroksi u Kussakin alkiossa: u Katenoimalla. u MMU:ssa; juuri äsken käytettyjä muunnoksia

Luento 7: VIRTUAALIMUISTIN SIVUTUS JA SEGMENTOINTI

ltö Luento 6: VIRTUAALIMUISTI Luento 7: Segmentointi Segmentointi ja sivutus yhdistettynä Yhteiskäytöstä Suoritus virtuaalimuistissa

Luento 6: VIRTUAALIMUISTI

Stallings, Luku 8.1. KJ-I I S2004 / Tiina Niklander; kalvot Auvo Häkkinen 8-1

Stallings, Luku 8.1. KJ-I I S2004 / Tiina Niklander; kalvot Auvo Häkkinen 7-1

Luento 5: YKSINKERTAINEN SEGMENTOINTI JA SIVUTUS

ltöä (Luennot 5&6) Luento 5: YKSINKERTAINEN SEGMENTOINTI JA SIVUTUS Pikakertaus: : a) b) c) Dyn.. part.: sijoitus Kuva Buddy System: esimerkki

Stallings, Luku 7. KJ-I I S2004 / Tiina Niklander; kalvot Auvo Häkkinen 6-1

MUISTINHALLINTA. Stallings, Luku 7

Käyttöjärjestelmän rakenne

Käyttöjärjestelmät II

Sisältöä MUISTINHALLINTA. Stallings, Luku 7. Fyysinen muisti YLEISTÄ MUISTINHALLINNASTA. Looginen muisti. Prosessin rakenne

Muistihierarkia (4) Luento 9 Järjestelmän ulkoinen muisti. Ohjelman muistiosoitteet (3) Virtuaalimuisti (3) Virtuaalimuistin toteutus.

Luento 9 Järjestelmän ulkoinen muisti

Luento 9 Järjestelmän ulkoinen muisti

Luento 9 Järjestelmän ulkoinen muisti

Käyttöjärjestelmät II

Osio 2: Luennot 4-7 Muistinhallinta

Luento 9 Järjestelmän ulkoinen muisti

Luento 9 Järjestelmän ulkoinen muisti

Yleiskuva. Käyttöjärjestelmät II. Tietokonejärjestelm. rjestelmä. KJ ja laitteistopiirteet. KJ ja laitteistopiirteitä.

Muistihierarkia (4) Luento 9 Järjestelmän ulkoinen muisti. Ohjelman muistiosoitteet (3) Virtuaalimuisti (3) Virtuaalimuistin toteutus (2)

MUISTINHALLINNAN OHJELMISTO

Lähtötiedot tiedot / seuraavaksi? Käyttöjärjestelmät II MUISTINHALLINNAN OHJELMISTO. Looginen vs. fyysinen osoite Perusvalinnat.

KJ-II K2006 / Auvo Häkkinen - Teemu Kerola Tehtävät, staattinen vs. dynaaminen partitiointi, Buddy System sivutus, segmentointi

Käyttöjärjestelmät: Virtuaalimuisti

Muistinhallinta. Tietokoneen rakenne. Stallings: Ch Heittovaihto vs. Virtuaalimuisti Esim: Pentium. Luento 5-1

Osio 2: Luennot 4-7 Muistinhallinta YKSINKERTAINEN MUISTINHALLINTA. ltöä YLEISTÄ MUISTINHALLINNASTA. Looginen muisti.

Muistinhallinta. Teemu s Cheesecake. Tietokoneen rakenne

Käyttöjärjestelmät. Tietokoneen rakenne. Stallings, Luku 1. KJ-I S2003 / Auvo Häkkinen, CT50A2602 / Leena Ikonen 1-1

Osio 3: Prosessit, siirräntä ja tiedostojärjestelmä

Luento 5: Muistin hallinta Luento 5. Luento 5-1. Luento 5-3. u Continuous memory allocation for partition. Luento 5-5

u vapaakäyntisyys (reentrancy) u Yhteinen koodialue u kullakin oma data-alue, pino, PCB u osoitteet suhteellisia prosessin alun suhteen

Järjestelmän ulkoinen muisti I/O

Osio 2: Luennot 5-8 Muistinhallinta

Tietojenkäsittelyn perusteet 2. Lisää käyttöjärjestelmistä

Perusvalinnat. Sivun koko. Sivun koko? Sopiva sivukoko? MUISTINHALLINNAN OHJELMISTO: Sivutuksen algoritmit. Käyttöjärjestelmät

Suoritin. Jakso 5 Suoritin ja väylä. TTK-91 muistin rakenne. TTK-91 suorittimen rakenne

Muistihierarkia Kiintolevyt I/O:n toteutus

UNIX / Solaris (SVR4)

ltöä rjestelmä Luento 2: LAITTEISTOSTA Tietokonejärjestelm KESKUSYKSIKKÖ Keskusyksikkö Kuva 1.1 KJ-I S2005 / Tiina Niklander & Auvo Häkkinen 2-1

Sivun koko. Perusvalinnat. Sopiva sivukoko? Sivun koko? MUISTINHALLINNAN OHJELMISTO: Sivutuksen algoritmit. Käyttöjärjestelmät, Luento 9

MUISTINHALLINNAN OHJELMISTO: Sivutuksen algoritmit. Stallings, Luku 8.2

Suoritin. Luento 5 Suoritin ja väylä. TTK-91 muistin rakenne. TTK-91 suorittimen rakenne

Sisältöä PROSESSIT JA NIIDEN HALLINTA. Prosessi. Prosessi virtuaalimuistissa. Prosessi. Prosessi virtuaalimuistissa. Käyttöjärjestelmät

Muistihierarkia Kiintolevyt I/O:n toteutus

Luento 2: LAITTEISTOSTA

Luento 3: PROSESSIT JA NIIDEN HALLINTA

Prosessi virtuaalimuistissa PROSESSIT JA NIIDEN HALLINTA. Sisältöä. Prosessi virtuaalimuistissa. Prosessi. Prosessi. Käyttöjärjestelmät, Luento 4

PROSESSIT JA NIIDEN HALLINTA

Jakso 5 Suoritin ja väylä

Stallings, Luku 4.1. KJ-I S2004 / Tiina Niklander, kalvot Auvo Häkkinen 4-1. KJ-I I S2004 / Tiina Niklander, kalvot Auvo Häkkinen 12-1

UNIX / Solaris MUISTINHALLINTA

Käyttöjärjestelmät II. Muistinhallinnan esimerkit. UNIX / Solaris MUISTINHALLINTA. UNIX / Solaris (SVR4) UNIX/Solaris: Tietorakenteita

UNIX / Solaris (SVR4)

Muistinhallinnan esimerkit UNIX, Solaris, Linux, W2000

Luento 9 Järjestelmän ulkoinen muisti

NTÄ. Luento 8: SIIRRÄNT. Osio 3: Siirräntä ja tiedostojärjestelmä. ltö. Yleistä siirrännästä. Siirtonopeuksia (teoreettisia) Kuva 11.1.

Jakso 5 Suoritin ja väylä

Osio 3: Siirräntä ja tiedostojärjestelmä

Tietokoneen rakenne: Harjoitustyö. Motorola MC prosessori

MUISTINHALLINTA. Stallings, Luku 7

Suoritin. Luento 5 Suoritin ja väylä. TTK-91 suorittimen rakenne (1) TTK-91 muistin rakenne

Luento 5 Suoritin ja väylä

Sisältöä. Tietokoneen rakenne. Ch 1 - Ch 8 [Sta06] Valikoituja paloja TITO-kurssista. Tietokonejärjestelmä

Jakso 5 Suoritin ja väylä. Suorittimen rakenne Väylän rakenne Käskyjen suoritussykli Poikkeukset ja keskeytykset TTK-91:n ja KOKSI:n rakenne

Luento 5 Suoritin ja väylä

Luento 9 Järjestelmän ulkoinen muisti

Tietokoneen toiminta, K Tavoitteet (4)

Luento 9 Järjestelmän ulkoinen muisti

2 Konekieli, aliohjelmat, keskeytykset

Stallings, Luku

1. Keskusyksikön rakenne

Luento 9 Järjestelmän ulkoinen muisti

Jakso 12 Yhteenveto. Keskeiset asiat Teemu Kerola, K2000

Tietokonejärjestelmä. Tietokoneen rakenne. Ch 1 - Ch 8 [Sta06] Valikoituja paloja. TITO-kurssista. John von Neumann ja EDVAC, 1949.

Luento 5 Suoritin ja väylä

Luento 5 (verkkoluento 5) Suoritin ja väylä

Ongelma(t): Miten tietokoneen käyttöjärjestelmä toimii sisäisesti, jotta resurssit saadaan tehokkaaseen käyttöön?

Ongelma(t): Jotta tietokone olisi mahdollisimman yleiskäyttöinen ja suorituskykyinen, niin miten tietokoneen resurssit tulisi tarjota ohjelmoijalle,

Luento 9 Järjestelmän ulkoinen muisti

Stallings, Luku 1. KJ-I S2043 / Tiina Niklander Auvo Häkkisen kalvojen pohjalta 2-2. KJ-I S2003 / Auvo Häkkinen 2-1

Suoritin. Luento 5 Suoritin ja väylä. TTK-91 suorittimen rakenne (1) TTK-91 muistin rakenne. Käskyjen nouto- ja suoritussykli (5)

Luento 5 Suoritin ja väylä

Väylät. Prosessorin tie ulkomaailmaan Pienissä järjestelmissä vain yksi väylä. Osoite, data ja ohjaussignaalit Prosessori ainoa herra (master)

Luento 9 Järjestelmän ulkoinen muisti. Muistihierarkia Kiintolevyt Muut pyörivät levyt I/O:n toteutus

KJ-I I S2004 / Tiina Niklander; kalvot Auvo Häkkinen 8-1. Stallings, Luku 8.1

u saantimenetelmät u kirjanpito vapaista lohkoista (taltiolla!) u hierarkkinen hakemistorakenne: kirjanpito tdstoista u tdstojen käyttö

Käyttöjärjestelmän rajapinnat. Siirräntä: Laiteajurit ja keskeytys. I/O-ohjain. I/O-ohjain. Siirtomenetelmät. Käyttöjärjestelmän rakenne

Käyttöjärjestelmän rajapinnat

Käyttöjärjestelmät, 8 op

Kurssin asema Käyttöjärjestelmät, 8 op. Kurssikirja. Kurssin tavoite. Kurssin rakenne: Kurssin suorittaminen. Käyttöjärjestelmät - Luento 1

Käyttöjärjestelmät: prosessit

Kurssin asema Käyttöjärjestelmät, 8 op. Siirtymävaiheen vastaavuudet. Kurssin tavoite. Kurssikirja. Kurssin rakenne:

Käyttöjärjestelmät, 8 op

Jakso 8 Ohjelman suoritus järjestelmässä

Transkriptio:

LUENTO 8 VIRTUAALIMUISTI Stallings, Luku 8.1 1 Sisältö Ohjelman suoritus virtuaalimuistissa Sivutus ja sivutaulut Osoitemuunnospuskuri TLB Segmentointi Segmentointi ja sivutus yhdistettynä Yhteiskäytöstä 2 Syksy 2006 / Luento 8 8-1

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 3 Suoritus virtuaalimuistissa Kaikkien sivujen / segmenttien ei tarvitse olla muistissa yhtäaikaa riittää, että suoritettava osa ja sen data muistissa paikallisuus, suoritus viihtyy samoilla alueilla Kirjan kuva 8.1 näyttää muistiviitteiden jakautumista Laitteisto (MMU) ja KJ huolehtivat, että tarvittavat osat oikeaan aikaan muistissa MMU huomaa puuttumisen KJ noutaa muistiin = Virtuaalimuisti 4 Syksy 2006 / Luento 8 8-2

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 5 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 6 Syksy 2006 / Luento 8 8-3

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 7 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 8 Syksy 2006 / Luento 8 8-4

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 hyöty? Looginen osoiteavaruus saa sisältää reikiäkin vain tarvittavat osat kuvataan fyysiseen muistiin 9 SIVUTAULU 10 Syksy 2006 / Luento 8 8-5

Sivutus Kuva 7.11 11 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) 12 Syksy 2006 / Luento 8 8-6

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ä 13 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 14 Syksy 2006 / Luento 8 8-7

Osoitemuunnos MMU jakaa loogisen osoitteen pariksi (sivunro,siirtymä) Esim. kun sivukoko 1024 B (= 2 10 ) 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 15 Osoitemuunnos Kuva 8.3 16 Syksy 2006 / Luento 8 8-8

Lisää sivutauluista 17 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 2 20 = 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 18 Syksy 2006 / Luento 8 8-9

2-tasoinen sivutaulu Ylin hakemisto mahtuu yhteen sivuun, aina muistissa 1 K alkiota (= 1024 = 2 10 ) 1K * 1K = 1M alkiota 19 Monitasoinen sivutaulu Virtual Address: FA PCB (Fig 4-12 [Tane01]) 20 Syksy 2006 / Luento 8 8-10

2-tasoinen sivutaulu Kuva 8.5 21 KÄÄNTEINEN SIVUTAULU 22 Syksy 2006 / Luento 8 8-11

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 23 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 Käyttökelpoinen vain jos TLB riittävän suuri 24 Syksy 2006 / Luento 8 8-12

Käänteinen sivutaulu Kuva 8.6 25 Käänteinen sivutaulu v.2 Sivutilan (kehyksen) numero Suoraan taulun indeksi Ei tarvitse tallettaa tauluun j 26 Syksy 2006 / Luento 8 8-13

Osoitemuunnospuskuri TLB 27 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 28 Syksy 2006 / Luento 8 8-14

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 29 Etsintä TLB:stä Kuva 8.9 30 Syksy 2006 / Luento 8 8-15

Kuva 8.8. 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 32 Syksy 2006 / Luento 8 8-16

TLB ja osoitemuunnos Kuva 8.7 33 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 34 Syksy 2006 / Luento 8 8-17

TLB ja välimuisti Kuva 8.10 35 TLB tarkemmin? Tietokoneen rakenne -kurssi Fig. 5.47 from Hennessy-Patterson, Computer Architecture DEC Alpha AXP 21064 memory hierarchy Fully assoc, 12 entry instruction TLB 8 KB, direct mapped, 256 line (each 32B) instruction cache 2 MB, 64K line (each 32B) direct mapped, unified, write-back L2 cache Fully assoc, 32 entry data TLB 8 KB, direct mapped, 256 line (each 32B) data cache main memory paging disk (dma) 36 Syksy 2006 / Luento 8 8-18

SEGMENTOINTI 37 Segmentointi Kuva 7.11 38 Syksy 2006 / Luento 8 8-19

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 39 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 40 Syksy 2006 / Luento 8 8-20

Osoitemuunnos Kuva 8.12 41 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 42 Syksy 2006 / Luento 8 8-21

Segmentointi ja sivutus yhdistettynä 43 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 44 Syksy 2006 / Luento 8 8-22

PCB Sivuttava segmentointi Tan01 4-39 Segmenttitaulu 45 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 46 Syksy 2006 / Luento 8 8-23

Sivuttava segmentointi Kuva 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) 47 Osoitemuunnos Kuva 8.13 48 Syksy 2006 / Luento 8 8-24

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 49 Yhteiskäyttö ja suojaus 50 Syksy 2006 / Luento 8 8-25

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 51 Yhteiskäyttö: editori 52 Syksy 2006 / Luento 8 8-26

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ä 53 Erilaisia suojausryhmiä kuva 8.14 Mahdollinen luokittelu: Ei saa käyttää lainkaan Saa käyttää vain dataa Saa käyttää vain koodia (???) Saa käyttää sekä koodia että dataa 54 Syksy 2006 / Luento 8 8-27

Yhteenvetoa ks. Taulukko 8.1 Sivutus Keskusmuisti jaettu vakiokokoisiin sivutiloihin KJ jakaa prosessin vakiokokoisiin sivuihin Prosessikoht. sivutaulut: missä sivutilassa sivu sijaitsee Virt.os: (sivu, siirtymä) Sisäistä pirstoutumista Vapaiden sivutilojen lista Kaikki sivut ei muistissa: läsnäolobitti SivuT:n alkiossa Segmentointi Ohjelmoija/kääntäjä jakaa prosessin vaihtelevankok. segmentteihin Prosessikoht. segmenttitaulut: segmentin alkuos. ja pituus Virt.os: (segmentti, siirtymä) Ulkoista pirstoutumista muistin tiivistämistarve Vapaiden muistialueiden lista Kaikki segmentit ei muistissa läsnäolobitti SegT:n alkiossa 55 Syksy 2006 / Luento 8 8-28