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

Samankaltaiset tiedostot
Osio 2: Luennot 4-7 Muistinhallinta

MUISTINHALLINTA. Stallings, Luku 7

Luento 5: YKSINKERTAINEN SEGMENTOINTI JA SIVUTUS

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

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

Osio 2: Luennot 5-8 Muistinhallinta

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

MUISTINHALLINTA. Stallings, Luku 7

Luento 7: VIRTUAALIMUISTIN SIVUTUS JA SEGMENTOINTI

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

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

Luento 6: VIRTUAALIMUISTI

VIRTUAALIMUISTI. Stallings, Luku 8.1

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

VIRTUAALIMUISTI. Stallings, Luku 8.1

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

Osio 2: Luennot 5-8 Muistinhallinta

Käyttöjärjestelmät II

Käyttöjärjestelmät II

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

Käyttöjärjestelmän rakenne

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

Luento 9 Järjestelmän ulkoinen muisti

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

Luento 9 Järjestelmän ulkoinen muisti

Käyttöjärjestelmät: prosessit

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

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

Luento 9 Järjestelmän ulkoinen muisti

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

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

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

PROSESSIT JA NIIDEN HALLINTA

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

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

Prosessi perinteisesti

Algoritmit 1. Luento 4 Ke Timo Männikkö

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

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

Muistihierarkia Kiintolevyt I/O:n toteutus

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

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

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

Rakenteiset tietotyypit Moniulotteiset taulukot

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

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

Muistinhallinta. Teemu s Cheesecake. Tietokoneen rakenne

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

Käännös, linkitys ja lataus

Käyttöjärjestelmät: Virtuaalimuisti

Järjestelmän ulkoinen muisti I/O

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

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

Stallings, Luku

Tietorakenteet ja algoritmit Johdanto Lauri Malmi / Ari Korhonen

Luento 2: LAITTEISTOSTA

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

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

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

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

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

Algoritmit 1. Luento 6 Ke Timo Männikkö

Algoritmit 1. Luento 3 Ti Timo Männikkö

Sisältöä SÄIKEET, SMP

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. Tietokoneen rakenne. Stallings, Luku 1. KJ-I S2003 / Auvo Häkkinen, CT50A2602 / Leena Ikonen 1-1

Tietokoneen toiminta, K Tavoitteet (4)

811312A Tietorakenteet ja algoritmit II Perustietorakenteet

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

Algoritmit 1. Luento 12 Ti Timo Männikkö

1. Keskusyksikön rakenne

815338A Ohjelmointikielten periaatteet Harjoitus 3 vastaukset

Tietorakenteet ja algoritmit - syksy

UNIX / Solaris (SVR4)

Luento 1 Tietokonejärjestelmän rakenne

Luento 1 Tietokonejärjestelmän rakenne. Järjestelmän eri tasot Laitteiston nopeus

Jakso 12 Yhteenveto. Keskeiset asiat Teemu Kerola, K2000

Muistinhallinnan esimerkit UNIX, Solaris, Linux, W2000

Jakso 8 Ohjelman toteutus järjestelmässä

Algoritmit 1. Luento 1 Ti Timo Männikkö

UNIX / Solaris (SVR4)

A TIETORAKENTEET JA ALGORITMIT

Algoritmit 1. Luento 9 Ti Timo Männikkö

HELIA 1 (16) Outi Virkki Tietokantasuunnittelu

UNIX / Solaris MUISTINHALLINTA

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

Käyttöjärjestelmät: poissulkeminen ja synkronointi

Tieto- ja tallennusrakenteet

Muistihierarkia Kiintolevyt I/O:n toteutus

Menetelmien vertailua

Menetelmien vertailua. Mallinnus Käyttäjämalli. Mallinnus Käyttäjämalli. Simulointi Käyttäjämalli. Mittaus Käyttäjämalli

Algoritmit 1. Luento 11 Ti Timo Männikkö

Algoritmit 2. Luento 2 Ke Timo Männikkö

Transkriptio:

LUENTO 7 Sisältöä MUISTINHALLINTA Stallings, Luku 7 Yleistä muistinhallinnasta (luku 7.1) Yksinkertainen muistinhallinta a) kiinteät partitiokoot (luku 7.2) b) dynaamiset partitiokoot (luku 7.2) c) Buddy System (luku 7.2) d) yksinkertainen sivutus (luku 7.3) e) yksinkertainen segmentointi (luku 7.4) Yksinkertainen = prosessi aina kokonaan muistissa tai kokonaan levyllä 1 2 Fyysinen muisti YLEISTÄ MUISTINHALLINNASTA 3 Fyysinen muisti, sitä voi potkaista muistiavaruus laitteisto (MMU, väylät) käyttää fyysisiä osoitteita Keskusmuisti koodin + käsiteltävän datan suoritusaik. tallennus joukko peräkkäisiä tavuja Tukimuisti tiedon (ohjelmat, data) pysyvä tallennus joukko peräkkäisiä lohkoja Siirto näiden välillä muistinhallinnan ja tiedostojärjestelmän leipätyötä mahd. automaattisesti KJ:n toimesta 4 Looginen muisti prosessin osoiteavaruus loogiset osoitteet eli virtuaaliosoitteet voi olla suurempi kuin fyysinen muisti kullakin prosessilla oma osoiteavaruus osoitteet suhteellisia alun suhteen (0..MAX) sovellus jakaantuu loogisesti moduuleihin ne voidaan tehdä eri aikoina, osoitteiden paikkaus linkityksessä erilaisia käyttöoikeuksia koodi R (vapaakäyntisyys) data R / W / RW Prosessin rakenne PCB Ohjelma-alue Data-alue Pino alueen lopussa Suhteellisia viittauksia prosessin omalla muistialueella osa moduuleista tarkoitettu yhteiskäyttöön 5 6 Syksy 2007, Tiina Niklander 7-1

Yleistä muistinhallinnasta Muistinhallinta: vaatimuksia Ytimelle voidaan sallia kiinteä paikka muistissa voi käyttää suoraan fyysisiä osoitteita Loppu KJ:n muille osille ja sovelluksille Vapaa sijoitettavuus Heittovaihto KJ voi siirtää prosesseja välillä levylle KJ voi ottaa suoritettavaksi useampia prosesseja KJ huolehtii siitä, että muistiin mahtuu mahd. monta prosessia vapaan / varatun tilan hallinta Laitteisto huolehtii siitä, etteivät prosessit sotke toisiaan prosessin paikka voi vaihdella suorituksen aikana Ohjelmoija ei voi tietää minnepäin muistia sovellus sijoittuu suoritusaikana suhteelliset osoitteet Viittaukset fyysiksi osoitteiksi viimeistään ennen muistinoutoa/talletusta MMU 7 ŁAjonaikainen osoitemuunnos MMU:ssa 8 Muistinhallinta: vaatimuksia Muistinhallinta: vaatimuksia Suojaus Luvatta ei saa käyttää toisen muistialueita Osoitetarkistus käännösaikana mahdotonta sovelluksen moduulit voidaan kääntää eri aikoina prosessien sijainti voi vaihtua suoritusaikana käskykanta voi sallia osoitustapoja, joissa osoite lasketaan suoritusaikana KJ ei voi sitä tehdä! ŁAjonaikainen laillisuustarkistus Yhteiskäyttö Sallittava yhteisen koodin / datan käyttö suojauksista tinkimättä! Koodi ei muutu suorituksen kuluessa vapaakäyntisyys (reentrancy) järkevämpää sallia koodin yhteiskäyttö kuin pitää muistissa useita kopioita Monet prosessit tekevät yhteistyötä muiden kanssa, joten niillä yhteisiä tietorakenteita Esim. tuottajalla ja kuluttaja yhteinen puskuri osittain MMU:ssa ja osittain KJ:ssa 9 10 Łkäytä säikeitä, palvelupyyntöjä Yksink. muistinhallinta YKSINKERTAINEN MUISTINHALLINTA 11 = Prosessi kokonaan muistiin / levylle Jos ohjelma > fyysisen muistin koko, sitä ei välttämättä pystytä suorittamaan Menetelmät: a) kiinteä partitiointi b) dynaaminen partitiointi c) Buddy System d) yksinkertainen segmentointi e) yksinkertainen sivutus Katso ns. katoava kansanperinne ei paljon käyttöä nykyisissä järjestelmissä kuuluu kuitenkin KJ:n peruskäsitteistöön 12 Syksy 2007, Tiina Niklander 7-2

Kiinteät partitiot a) Kiinteät partitiot KJ (operaattori) jakoi muistin kiinteänkokoisiin partitioihin Varausalueet olivat kaikki yhtäsuuria tai niiden koot saattoivat vaihdella 13 Ohjelma, joka oli pienempi tai yhtäsuuri kuin partitio, voitiin ladata ja ajaa ko. partitiossa 14 Kiinteät partitiot Jos ei riittävän suurta vapaata partitiota, KJ teki tilaa heittovaihdolla joku prosessi levylle PCB jäi muistiin Jos ohjelma niin iso, ettei sopinut mihinkään partitioon, piti ohjelmoijan ratkaista tilanne kerrostus (overlaying) ohjelmoijan hoitama segmentointi vain osa ohjelmasta muistissa piti koodata mitä osia (aliohjelmia, segmenttejä ) kullakin hetkellä muistissa ja missä kohdassa 15 Kiinteät partitiot Muistin käyttö melko tehotonta varattiin aina kokonainen partitio, vaikka vähempikin olisi riittänyt Sisäinen pirstoutuminen (internal fragmentation) partitioiden sisälle jäi tyhjää tilaa vapaa tila yhdessä olisi saattanut riittää uudelle prosessille, mutta se ei ollut yhtenäisellä alueella 16 Kiinteät partitiot: Sijoitus Kiinteät partitiot: Sijoitus Jos kaikki partitiot samankokoisia jos vapaita, valitse joku niistä jos kaikki varattuja, heittovaihda joku Blocked-prosessi levylle tilaa vapautuu aina saman verran Jos partitiot eri kokoisia valitse pienin partitio, johon prosessi sopii yritti minimoida sisäistä pirstoutumista a) erikokoisille partitioille omat prosessijononsa partitiokoko yksi työn parametreista b) yksi jono, josta valittiin johonkin vapaaseen partitioon17 18 Kuva 7.3 Syksy 2007, Tiina Niklander 7-3

b) Dynaaminen partitiointi 19 Dynaaminen partitiointi Ei etukäteen partitiointia Varausten koot ja lukumäärä vaihtelivat dynaamisesti prosessien tarpeiden mukaan Prosessille muistia vain sen verran kuin tarvitsi Ulkoinen pirstoutuminen (external fragmentation) varausten / vapautusten tuloksena väleihin jäi pieniä vapaita alueita KJ tiivisti muistia välillä (compaction) prosesseja siirreltiin, jotta vapaa tila yhteen kohtaan yleisrasite 20 Dynaaminen partitiointi Kuva 7.4 Dynaaminen partitiointi Vaiheessa (d) ei enää tilaa prosessille 4, koko 8 M Jos kaikki 3 prosessia joutuivat Blocked-tilaan, KJ otti uuden P4:n suoritettavaksi 21 Niinpä KJ heitti P2:n ulos (e) ja P4 sai sen paikan (f) Aikanaan P2 pääsi taas Ready-tilaan Kun muistissa ei Ready-prosesseja, KJ vaihtoi P2:n muistiin Ł Tuloksena 3 pirstaletta: 6M + 6M + 4M = 14M 22 Sijoitus Kuva 7.5 Mistä kohtaa varataan? Tavoitteena vähäinen tiivistämistarve Best-fit kooltaan sopivin First-fit ens. kooltaan riittävän suuri Next-fit jatka etsintää edellisestä kohdasta 23 Paras sijoitusalgoritmi? First fit yksinkertainen helpoin toteuttaa tehokkaasti (paras) isosta aukosta jää jäljelle isohko aukko Best fit hyvä nimi, mutta tuloksena mahd. pieniä aukkoja tuloksena nopeimmin pirstoutuminen Next fit varaukset / aukot muistin loppuosaan Toteutus: linkitetty lista, jossa vapaat alueet koon tai osoitteen mukaisessa järjestyksessä kumpi parempi? (osoite,pituus) (osoite,pituus) 24 Syksy 2007, Tiina Niklander 7-4

Poistoalgoritmi Kun muistissa vain Blocked-prosesseja, kannatti ottaa uusi prosessi suoritukseen ettei CPU jouten heittovaihda joku levylle poistettava prosessi Blocked-Suspend-tilaan uusi prosessi tilaan Ready-Suspend tai Ready c) Buddy System Mikä pois, jotta saatiin sopivasti vapaata? iso vs. pieni sellainen, jonka vieressä iso tyhjä alue pieni vs. suuri prioriteetti 25 26 Buddy System Buddy System Kompromissi kahdesta em. menetelmästä kiinteät partitiokoot, mutta dynaaminen jako partitioihin ei haluta jättää pieniä tyhjiä tiloja varaa pikkuisen enemmänkin kuin tarve vaatii Varausyksikön koko ilmaistavissa 2:n potenssissa suurin mahdollinen yleensä koko muisti pienimmälle varausyksikölle joku minimikoko yksinkertaistaa vapaiden alueiden kirjanpitoa Varaukset ja vapaiden alueiden yhdistely toteutettavissa tehokkaasti 27 KJ ylläpitää kustakin koosta omaa listaa lista osoitteiden mukaisessa järjestyksessä aluksi vain yksi suuri varausyksikkö Varaus jos oikean kokoluokan listassa ei vapaata alkiota, jaa luokkaa suurempi alue kahdeksi pienemmäksi toista tarvittaessa Vapautus kun listassa kaksi fyysisesti vierekkäistä aluetta, yhdistä ne kokoluokkaa suuremmaksi alueeksi toista tarvittaessa 28 Buddy System: esimerkki Buddy: varaukset puuna Puu Kuva 7.6 29 30 Syksy 2007, Tiina Niklander 7-5

a) b) c) Osoitemuunnos a) b) c) Osoitemuunnos Kuva 7.8 Ohjelmassa loogiset osoitteet kaikki suhteellisia sen alun suhteen Historia Lataaja (KJ:n osa) muutti loogiset osoitteet fyysisiksi osoitteiksi samalla, kun latasi ohjelmakoodin muistiin Nykyaika osoitemuunnos vasta käskyjä suoritettaessa KJ:n ydin voi käyttää fyysisiä osoitteita, joten kun CPU suorittaa KJ:tä, osoitemuunnosta ei tarvitse tehdä 31 32 Laitteistotuki MMU:hun muunnosta ja suojaustarkistusta varten kaksi rekisteriä ns. kanta- ja rajarekisteri Base prosessin fyysinen alkuosoite Limit prosessin loppuosoite (tai pituus) Kun prosessi suoritukseen, kopioidaan näille arvot PCB:stä Fyys.osoite = loog.osoite + Base jos fyysinen osoite > Limit aiheuta poikkeus virh. muistiosoite muuten MAR <-- fyysinen osoite 33 d) Yksinkertainen sivutus 34 Yksinkertainen sivutus Sivutus Kuva 7.11 KJ varaa muistia sivutila kerrallaan (page frame) kaikki samankokoisia suhteellisen pieniä, esim. 1KiB tai 4 KiB koko aina joku 2:sen potenssi käsittely helppoa laitetasolla KJ käsittelee ohjelmaa sivuina (page) sivu ja sivutila samankokoisia KJ sijoittaa prosessin sivut vapaisiin sivutiloihin Kun käytössä yksinkertainen muistinhallinta, 0000001111111111 0000010000000000 KJ tuo kaikki sivut kerralla muistiin / vapauttaa 35 36 Syksy 2007, Tiina Niklander 7-6

Yksinkertainen sivutus Esimerkki muistin käytöstä KJ pitää prosessikohtaista sivutaulua (page table) PCB:ssä sivutaulun fyysinen alkuosoite osoite MMU:hun, kun prosessi suoritukseen alkiossa tieto sivutilasta, jossa ko. sivu majailee Looginen osoite muodostuu nyt parista (sivunumero, siirtymä) bittijonon alkupään bitit kertoo sivunumeron bittijonon loppupään bitit siirtymän sivun sisällä Vain viimeinen sivu voi aih. pirstoutumista (d) Prosessi D (5 sivua) ei sovi muistiin 37 38 Esimerkki (jatkuu) Kuva 7.9 Esimerkin prosessien sivutaulut (e) KJ heittovaihtaa prosessin B levylle (f) KJ lataa prosessin D muistiin (5 sivua) Prosessin D sivut eivät sijaitse peräkkäin Ei ulk. pirstoutumista Sis. pirstoutumista keskim. 1/2 sivutilaa per prosessi 39 Jokaisella prosessilla ikioma sivutaulu Sivutaulun alkiossa sen sivutilan numero, jossa sivu sijaitsee KJ:llä sivutilataulu (tai linkitetty lista), josta käy ilmi mitkä sivutilat vapaita 40 Osoitemuunnos (siv.) Kuva 8.3 Looginen vs Fyysinen osoite Kuva 7.12 = 1502 1 478 6 HUOM: katenointi 6*1024 + 478 = 6766 41 42 Syksy 2007, Tiina Niklander 7-7

Yksinkertainen segmentointi e) Yksinkertainen segmentointi Ohjelmoija tai kääntäjä jakaa ohjelman kooltaan erilaisiin loogisiin kokonaisuuksiin, segmentteihin segmentti = esim. data-alue tai muutama aliohjelma 43 Kääntäjä tuottaa koodia, jossa segmentin sisäiset loogiset osoitteet osoite tavallaan muotoa (segmentti,siirtymä) alkupään bitit kertoo segmenttinumeron loppupään bitit kertoo siirtymän segm. sisällä Järjestelmässä yleensä segmentin maksimikoko 44 Segmentointi Kuva 7.11 Yksinkertainen segmentointi 0000001011101110 0001000000000000 Kun KJ lataa prosessin muistiin, se voi sijoitella segmentit vapaasti muistiin kun käytössä yksinkertainen muistinhallinta, KJ tuo kaikki segmentit kerralla muistiin muistia varataan aiemmin esitetyillä menetelmillä segmenttikohtaisesti 45 KJ ylläpitää prosessin segmenttitaulua PCB:ssä segmenttitaulun fyysinen alkuosoite osoite MMU:hun, kun prosessi suoritukseen alkioissa kunkin segmentin fyysinen alkuosoite (Base) ja pituus (Length) 46 Osoitemuunnos (segm.).) Kuva 8.12 Looginen vs Fyysinen osoite = 4848 1 752 HUOM: 8224 aito yhteenlasku 8976 = 47 48 Syksy 2007, Tiina Niklander 7-8

Arviointia Segmenttitaulun alkiossa alkuosoite ja pituus segmentin kokoa helppo kasvattaa/pienentää dynaamisesti saattaa vaatia segmentin uudelleensijoittamista osoitteen oikeellisuus tarkistettavissa MMU:ssa Segmentti sopiva suojauksen yksikkö ohjelmoija määrittelee segmentit ja käyttöoikeudet käyttötapa kopioitu segmenttitaulun alkioon Ongelmana muistin pirstoutuminen segmentit eri kokoisia Segmentointi vai Sivutus Pirstoutuminen segmentointi aiheuttaa ulkoista, sivutus sisäistä segmentoinnin yhteydessä muistin tiivistämistä Osoitemuunnos MMU:ssa rekisteri, jossa segmentti-/sivutaulun fyys. osoite segmentoinnissa yhteenlaskua (yht.laskulaitteistoa) sivutuksessa katenointia (helppoa) muistin tiivistämistarve 49 50 Segmentointi vai Sivutus Sivutus ohjelmoijalle näkymätöntä, segmentointi ei Segmentti suojauksen kannalta loogisempi yksikkö kuin sivu Segmentointi sopii hyvin rutiinien dynaamiseen linkitykseen (yhteiskäyttö helpompi järjestää) Miksei molemmat: Yhdistettävissä! 51 Yhteenveto Menetelmä Kiinteä partitio Dynaaminen partitio Buddy System Yks. segmentointi Yks. sivutus kuvaus Muisti jaettu etukäteen osiin. Prosessi vain yhdessä osassa. Muistia varataan tarpeen mukaan. Prosessi vain yhdessä osassa. Muistinvar. dyn., mutta kiinteänkokoisina osina. Prosessi vain yhdessä osassa. Prosessi jaettu segmentteihin. Segm. sijoitettavissa vapaasti. Prosessi ja muisti jaettu sivuihin. Sij. vapaasti vahvuudet helppo toteutus ei sis. pirst. par. muistin käyttöaste ei juurikaan ulkoista pirstoutumista ei sis. pirst. par. muistin käyttöaste ei ulk. pirst. heikkoudet sisäinen pirstoutuminen maksimi prosessimäärä rajoitettu ulkoinen pirstoutuminen, tiivistämistarve vähäinen sisäinen pirstoutuminen ulkoinen pirstoutuminen hyvin vähän sis. pirst. (vain viimeinen sivu) 52 Binääriset etuliitteet Factor Name Symbol Origin SI derivation 2 10 kibi Ki kilobinary (2 10 ) 1 kilo (10 3 ) 1 2 20 mebi Mi megabinary (2 10 ) 2 mega (10 3 ) 2 2 30 gibi Gi gigabinary (2 10 ) 3 giga (10 3 ) 3 2 40 tebi Ti terabinary (2 10 ) 4 tera (10 3 ) 4 2 50 pebi Pi petabinary (2 10 ) 5 peta (10 3 ) 5 2 60 exbi Ei exabinary (2 10 ) 6 exa (10 3 ) 6 2 70 zebi Zi zettabinary (2 10 ) 7 zetta (10 3 ) 7 2 80 yobi Yi yottabinary (2 10 ) 8 yotta (10 3 ) 8 Tarve: Koon mukana kasvava virhe vastaaviin desim. esityksiin: k ~ 2,5%, M ~ 5%, G ~7,5% 53 Syksy 2007, Tiina Niklander 7-9