Luento 7: VIRTUAALIMUISTIN SIVUTUS JA SEGMENTOINTI

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

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

VIRTUAALIMUISTI. Stallings, Luku 8.1

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

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

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

Luento 6: VIRTUAALIMUISTI

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

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

Käyttöjärjestelmät II

MUISTINHALLINTA. Stallings, Luku 7

Osio 2: Luennot 4-7 Muistinhallinta

Käyttöjärjestelmät II

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

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

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

Osio 2: Luennot 5-8 Muistinhallinta

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

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

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

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

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

MUISTINHALLINTA. Stallings, Luku 7

Luento 9 Järjestelmän ulkoinen muisti

Luento 9 Järjestelmän ulkoinen muisti

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

Luento 3: PROSESSIT JA NIIDEN HALLINTA

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

Luento 9 Järjestelmän ulkoinen muisti

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

Käyttöjärjestelmän rakenne

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

Käyttöjärjestelmät: Virtuaalimuisti

MUISTINHALLINNAN OHJELMISTO

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

MUISTINHALLINNAN OHJELMISTO: Sivutuksen algoritmit. Stallings, Luku 8.2

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

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

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

Muistinhallinta. Teemu s Cheesecake. Tietokoneen rakenne

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

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

Stallings, Luku

Luento 2: LAITTEISTOSTA

RJESTELMÄ OSA 2 Stallings, Luku PALVELUPYYNNÖT. KJ-I I S2005 / Tiina Niklander, kalvot Auvo HäkkinenH

PROSESSIT JA NIIDEN HALLINTA

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

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

RJESTELMÄ Stallings, Luku KJ-I I S2005 / Tiina Niklander, kalvot Auvo HäkkinenH

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

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

Järjestelmäarkkitehtuuri (TK081702) Hajautettu tietokanta. Hajautuksen hyötyjä

u saantimenetelmät Kenttä (field) u bittien / tavujen muodostama looginen kokonaisuus u yksi arvo, jolla tyyppi ja pituus Tietue (record)

Prosessi perinteisesti

Stallings, Luku 4.1. KJ-I I S2005 / Tiina Niklander, kalvot Auvo HäkkinenH

Stallings, Lukua 2. KJ-I S2004 / Tiina Niklander, kalvot: Auvo Häkkinen 3-2. KJ-I I S2004 / Tiina Niklander, kalvot: Auvo Häkkinen 3-1

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

Käyttöjärjestelmät TIEDOSTOJÄRJESTELMÄ. Stallings, Luku KJ-I S2003 / Auvo Häkkinen, CT50A2602 / Leena Ikonen 8-1

Ongelma(t): Jotta tietokonetta voitaisiin käyttää monipuolisesti ja mahdollisimman yksinkertaisesti kaikkiin sille soveltuviin käyttötarkoituksiin,

UNIX / Solaris MUISTINHALLINTA

Muistihierarkia Kiintolevyt I/O:n toteutus

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

Tietokoneen rakenne (2 ov / 4 op) Syksy 2006

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

Tietokoneen rakenne (2 ov / 4 op) Syksy 2007 Liisa Marttinen. Helsingin yliopisto Tietojenkäsittelytieteen laitos

Tietokoneen rakenne: Harjoitustyö. Motorola MC prosessori

Tietokoneen toiminta (Computer Organization I)

UNIX / Solaris (SVR4)

Järjestelmän ulkoinen muisti I/O

Käyttöjärjestelmät: prosessit

Luento 0: Kurssihallinto Tietokoneen rakenne (2 ov / 4 op) Syksy 2006

Muistinhallinnan esimerkit UNIX, Solaris, Linux, W2000

UNIX / Solaris (SVR4)

4. Luento: Prosessit ja säikeets. Tommi Mikkonen,

KJ:N KEHITTYMINEN JA YLLÄPITO

HELIA 1 (16) Outi Virkki Tietokantasuunnittelu

Tieto ja sen osoite (3) Jakso 3 Konekielinen ohjelmointi (TTK-91, KOKSI) Osoitinmuuttujat. Tieto ja sen osoite (5)

Kirjoita oma versio funktioista strcpy ja strcat, jotka saavat parametrinaan kaksi merkkiosoitinta.

Tietorakenteet ja algoritmit Johdanto Lauri Malmi / Ari Korhonen

Sekvenssi: kokoelma peräkkäisiä alkioita (lineaarinen

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

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

2 Konekieli, aliohjelmat, keskeytykset

Muistihierarkia Kiintolevyt I/O:n toteutus

Kääreluokat (oppikirjan luku 9.4) (Wrapper-classes)

Ohjelmoinnin perusteet Y Python

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

IT K 1 45 K ä yt t öj ä rj estelmät

Lyhyt kertaus osoittimista

LUENTO 0. Tervetuloa! Käyttöjärjestelmät II 2 ov Teemu Kerola. Helsingin yliopisto Tietojenkäsittelytieteen laitos

Jakso 3 Konekielinen ohjelmointi (TTK-91, KOKSI)

KJ:N KEHITTYMINEN JA YLLÄPITO

Jakso 5 Suoritin ja väylä

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

Luento 5 Suoritin ja väylä

Transkriptio:

Käyttöjärjestelmät t I Luento 7: VIRTUAALIMUISTIN SIVUTUS JA SEGMENTOINTI Stallings, Luku 8.1 KJ-I S2005 / Tiina Niklander; kalvot Auvo Häkkinen 7-1 Sisält ltö Käänteinen sivutaulu Segmentointi Segmentointi ja sivutus yhdistettynä Yhteiskäytöstä KJ-I S2005 / Tiina Niklander; kalvot Auvo Häkkinen 7-2 7-1

Sivutuksen kertaus Kuva 8.7 KJ-I S2005 / Tiina Niklander; kalvot Auvo Häkkinen 7-3 Sivutuksen kertaus Sivutaulu virtuaalimuistissa u Muunnos prosessin sivunumerosta sivutilanumeroksi u Kussakin alkiossa: FSivutilan numero, läsnäolobitti, muutettu-bitti,... Osoitteenmuunnos u Katenoimalla Osoitemuunnospuskuri TLB u MMU:ssa; juuri äsken käytettyjä muunnoksia 2-tasoinen sivutaulu Sivukoko? 512 tavusta aina 256 megatavuun KJ-I S2005 / Tiina Niklander; kalvot Auvo Häkkinen 7-4 7-2

Käyttöjärjestelmät I KÄÄNTEINEN SIVUTAULU KJ-I S2005 / Tiina Niklander; kalvot Auvo Häkkinen 7-5 Käänteinen sivutaulu Fyys.muisti pienempi kuin virtuaaliavaruus Kirjaa sivutilakohtaisesti mikä sivu sijaitsee ko. sivutilassa u vain yksi globaali käänteinen sivutaulu u yksi alkio per fyysinen sivutila, jossa ko. sivutilassa sijaitsevan sivun numero Jokaisella prosessilla sivu 0, 1, 2,... miten tiedetään minkä prosessin sivu kyseessä? u alkiossa myös prosessin numero (pid) u MMU:hun rekisteri, jossa suoritettavan prosessin pid KJ-I S2005 / Tiina Niklander; kalvot Auvo Häkkinen 7-6 7-3

Käänteinen sivutaulu Käänteisen ST:n indeksit sivutilan numeroita, mutta prosessin osoitteesta käy ilmi sivunumero ja siirtymä u etsittävä sisällön perusteella Etsintä peräkkäishakuna tehotonta Käytetään apuna hajautustaulua u käytä hajautinta indeksin laskentaan, etsi kotisolusta u samaan hajautusosoitteeseen kuvautuvat alkiot linkitetty toisiinsa Jos sivun tiedot ei listassa, aiheuta sivunpuutoskeskeytys Käyttökelpoinen vain jos TLB riittävän suuri KJ-I S2005 / Tiina Niklander; kalvot Auvo Häkkinen 7-7 Käänteinen sivutaulu Kuva 8.6 (Täydennetty) 4. ed KJ-I S2005 / Tiina Niklander; kalvot Auvo Häkkinen 7-8 7-4

Käänteinen sivutaulu v.2 Sivutilan (kehyksen) numero u Suoraan taulun indeksi u Ei tarvitse tallettaa tauluun 5. ed j KJ-I S2005 / Tiina Niklander; kalvot Auvo Häkkinen 7-9 Käyttöjärjestelmät I SEGMENTOINTI KJ-I S2005 / Tiina Niklander; kalvot Auvo Häkkinen 7-10 7-5

Segmentointi Kuva 7.11 KJ-I S2005 / Tiina Niklander; kalvot Auvo Häkkinen 7-11 Segmentointi Perusideoiltaan samanlainen kuin sivutus, yksiköt vain keskenään erikokoisia segmenttejä Jokaisella prosessilla oma segmenttitaulu u 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 S2005 / Tiina Niklander; kalvot Auvo Häkkinen 7-12 7-6

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 S2005 / Tiina Niklander; kalvot Auvo Häkkinen 7-13 Looginen vs Fyysinen osoite = 4848 752 8224 8976 = KJ-I S2005 / Tiina Niklander; kalvot Auvo Häkkinen 7-14 7-7

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 S2005 / Tiina Niklander; kalvot Auvo Häkkinen 7-15 Osoitemuunnos Kuva 8.12 KJ-I S2005 / Tiina Niklander; kalvot Auvo Häkkinen 7-16 7-8

Huomioita Segmenttitaulun alkiossa alkuosoite ja pituus u segmentin kokoa helppo kasvattaa/pienentää dynaamisesti Fsaattaa vaatia segmentin uudelleensijoittamista u osoitteen oikeellisuus tarkistettavissa MMU:ssa Segmentit erikokoisia, syntyy ulkoista pirstoutumista u Varaus/vapautus ei niin tehokasta kuin sivuilla u Muistin tiivistämistarvetta Segmentti sopiva suojauksen yksikkö u ohjelmoija määrittelee segmentit ja käyttöoikeudet u käyttötapa kopioitu segmenttitaulun alkioon KJ-I S2005 / Tiina Niklander; kalvot Auvo Häkkinen 7-17 Käyttöjärjestelmät I Segmentointi ja sivutus yhdistettynä KJ-I S2005 / Tiina Niklander; kalvot Auvo Häkkinen 7-18 7-9

Sivuttava segmentointi Eräät laitteistot ja KJ:t jakavat myös segmenttejä sivuiksi, ohessa eräs tapa u muistia helpompi hallita samankokoisina sivuina u ei ulkoista pirstoutumista u ei tiivistämistarvetta Jokaisella prosessilla u oma segmenttitaulu ja u yksi sivutaulu per segmentti Vrt. 2-tasoinen sivutaulu KJ-I S2005 / Tiina Niklander; kalvot Auvo Häkkinen 7-19 Sivuttava segmentointi Tan01 4-394 PCB Segmenttitaulu KJ-I S2005 / Tiina Niklander; kalvot Auvo Häkkinen 7-20 7-10

Sivuttava segmentointi Looginen osoite jakautuu nyt kolmeen osaan u segmenttinumero Fsegmentin sivutaulun fyysinen osoite löytyy segmenttitaulun tästä alkiosta u sivunumero Fsivunumeroa vastaava sivutilan numero löytyy sivutaulun tästä alkiosta u siirtymä Fsivulla viitattu sana näin kaukana sivun alusta Myös segmenttitaulua / sivutaulua voidaan sivuttaa KJ-I S2005 / Tiina Niklander; kalvot Auvo Häkkinen 7-21 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 u oikeudet annettu koko segmenttiin (sen kaikkiin sivuihin) KJ-I S2005 / Tiina Niklander; kalvot Auvo Häkkinen 7-22 7-11

Osoitemuunnos Kuva 8.13 KJ-I S2005 / Tiina Niklander; kalvot Auvo Häkkinen 7-23 Hyötyj tyjä Ratkaisee dynaamisen linkittämisen ongelmakohdat u 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 u kauniisti loogisten kokonaisuuksien mukaan u useita erilaisia suojaustasoja KJ-I S2005 / Tiina Niklander; kalvot Auvo Häkkinen 7-24 7-12

Käyttöjärjestelmät I Yhteiskäyttö KJ-I S2005 / Tiina Niklander; kalvot Auvo Häkkinen 7-25 Yhteiskäytt yttö Jos usea prosessi ajaa samaa koodia, riittää siitä yksi kopio muistissa u jokaisen prosessin sivu / segmenttitaulussa viitteet yhteisen koodin ja datan sisältäviin sivutiloihin / segmentteihin u mutta kullakin prosessilla omat tilat yksityiselle datalle Koodin oltava vapaakäyntistä u ei saa muuttua Sivutus ei paras tapa yhteiskäyttöä ajatellen: u sivu kokoyksikkö, ei looginen yksikkö u käyttöoikeudet vaikea rajata funktiotasolla KJ-I S2005 / Tiina Niklander; kalvot Auvo Häkkinen 7-26 7-13

Yhteiskäytt yttö: editori Tan01? KJ-I S2005 / Tiina Niklander; kalvot Auvo Häkkinen 7-27 Segmentointi ja yhteiskäytt yttö Segmentointi kaunis tapa yhteiskäyttöä ajatellen u ohjelman jakaminen eripituisiin segmentteihin loogisempaa kuin jakaminen tasapitkiksi sivuiksi u esim. yhteiskäyttöön tarkoitettu data omaksi segmentiksi, yksityinen data omaksi segmentiksi Ohjelmoija kertoo kääntäjälle u haluamastaan segmenttijaosta u haluamistaan käyttöoikeuksista Kääntäjä muodostaa tällä perusteella ohjelman loogiset osoitteet u segmentti ja siirtymä sen sisällä KJ-I S2005 / Tiina Niklander; kalvot Auvo Häkkinen 7-28 7-14

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 KJ-I S2005 / Tiina Niklander; kalvot Auvo Häkkinen 7-29 Toteutuksessa huomioitavaa Työjoukon koko u paljonko tilaa varataan per prosessi? Hakupolitiikka u milloin sivu / segmentti tuodaan muistiin? Sijoituspolitiikka u minne prosessin sivu / segmentti sijoitetaan? Poistopolitiikka: u mikä varaus vapautetaan? u globaali/lokaali: joku sivu / joku prosessin oma sivu? Ei käsitellä tällä kurssilla (=> KJ-II) KJ-I S2005 / Tiina Niklander; kalvot Auvo Häkkinen 7-30 7-15

Yhteenvetoa ks. Taulukko 8.1 Sivutus Segmentointi 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 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 KJ-I S2005 / Tiina Niklander; kalvot Auvo Häkkinen 7-31 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 S2005 / Tiina Niklander; kalvot Auvo Häkkinen 7-32 7-16