Luento 7: VIRTUAALIMUISTIN SIVUTUS JA SEGMENTOINTI

Samankaltaiset tiedostot
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

Luento 5: YKSINKERTAINEN SEGMENTOINTI JA SIVUTUS

Käyttöjärjestelmät II

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ä.

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

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

MUISTINHALLINTA. Stallings, Luku 7

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

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

Käyttöjärjestelmän rakenne

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

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

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

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

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

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,

Muistihierarkia Kiintolevyt I/O:n toteutus

Tietokoneen rakenne (2 ov / 4 op) Syksy 2006

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

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

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

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)

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