MUISTINHALLINTA. Stallings, Luku 7

Samankaltaiset tiedostot
Osio 2: Luennot 4-7 Muistinhallinta

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

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

MUISTINHALLINTA. Stallings, Luku 7

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

Luento 5: YKSINKERTAINEN SEGMENTOINTI JA SIVUTUS

Osio 2: Luennot 5-8 Muistinhallinta

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

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

Käyttöjärjestelmät: 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än rakenne

Käyttöjärjestelmät II

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

Käyttöjärjestelmät II

Luento 9 Järjestelmän ulkoinen muisti

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

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.

Käyttöjärjestelmät: prosessit

Luento 9 Järjestelmän ulkoinen muisti

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

käännösprosessi Kääntäjä Konekielikääntäjä (Assembler) Yhdistelijä (linker) Lataaja (loader)

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

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

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

MUISTINHALLINNAN OHJELMISTO: Sivutuksen algoritmit. Stallings, Luku 8.2

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

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

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

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

Muistihierarkia Kiintolevyt I/O:n toteutus

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

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

Luento 3: PROSESSIT JA NIIDEN HALLINTA

Muistinhallinta. Teemu s Cheesecake. Tietokoneen rakenne

Prosessi perinteisesti

Rakenteiset tietotyypit Moniulotteiset taulukot

PROSESSIT JA NIIDEN HALLINTA

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

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

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

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

Tavoite. Monitorit. Monitori Hoare Monitori. Minimoi virhemahdollisuuksia. Monitori Synkronointimenetelmiä Esimerkkejä

Algoritmit 1. Luento 4 Ke Timo Männikkö

MAA10 HARJOITUSTEHTÄVIÄ

Dynaaminen optimointi

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

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

Käännös, linkitys ja lataus

Järjestelmän ulkoinen muisti I/O

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

Stallings, Luku

UNIX / Solaris (SVR4)

Niemenkulman vanha koulu. Yhdistysten talot ja tilat ilta 3.5. Vartsala Terhi Ajosenpää

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

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

Muistinhallinnan esimerkit UNIX, Solaris, Linux, W2000

Sisältöä SÄIKEET, SMP

UNIX / Solaris (SVR4)

Tietorakenteet ja algoritmit Johdanto Lauri Malmi / Ari Korhonen

Aliohjelmatyypit (2) Jakso 4 Aliohjelmien toteutus

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ä

UNIX / Solaris MUISTINHALLINTA

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

Luento 2: LAITTEISTOSTA

Dynaaminen muisti Rakenteiset tietotyypit

HELIA 1 (16) Outi Virkki Tietokantasuunnittelu

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

Tietokoneen toiminta, K Tavoitteet (4)

A TIETORAKENTEET JA ALGORITMIT

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

Tieto- ja tallennusrakenteet

Muistihierarkia Kiintolevyt I/O:n toteutus

Luento 6. June 1, Luento 6

Jakso 4 Aliohjelmien toteutus

monissa laskimissa luvun x käänteisluku saadaan näyttöön painamalla x - näppäintä.

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

Jakso 12 Yhteenveto. Keskeiset asiat Teemu Kerola, K2000

Tutkimusaineistojen tekijänoikeus. TTA, Tekijänoikeus ja tutkimusetiikka, Helsinki OTT Pirjo Kontkanen

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

Algoritmit 1. Luento 13 Ti Timo Männikkö

Luento 9 Järjestelmän ulkoinen muisti

Raportointi hankkeen tulosten kuvaajana ja toteutuksen tukena

Arto Salminen,

LOAD R1, =2 Sijoitetaan rekisteriin R1 arvo 2. LOAD R1, 100

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

Transkriptio:

LUENTO 7 MUISTINHALLINTA Stallings, Luku 7 1 Sisältöä 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ä 2 Syksy 2007, Tiina Niklander 7-1

YLEISTÄ MUISTINHALLINNASTA 3 Fyysinen muisti 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 Syksy 2007, Tiina Niklander 7-2

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 osa moduuleista tarkoitettu yhteiskäyttöön 5 Prosessin rakenne PCB Ohjelma-alue Data-alue Pino alueen lopussa Suhteellisia viittauksia prosessin omalla muistialueella 6 Syksy 2007, Tiina Niklander 7-3

Yleistä muistinhallinnasta Ytimelle voidaan sallia kiinteä paikka muistissa voi käyttää suoraan fyysisiä osoitteita Loppu KJ:n muille osille ja sovelluksille KJ huolehtii siitä, että muistiin mahtuu mahd. monta prosessia vapaan / varatun tilan hallinta Laitteisto huolehtii siitä, etteivät prosessit sotke toisiaan MMU 7 Muistinhallinta: vaatimuksia Vapaa sijoitettavuus Heittovaihto KJ voi siirtää prosesseja välillä levylle KJ voi ottaa suoritettavaksi useampia prosesseja 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 ŁAjonaikainen osoitemuunnos MMU:ssa 8 Syksy 2007, Tiina Niklander 7-4

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 osittain MMU:ssa ja osittain KJ:ssa 9 Muistinhallinta: vaatimuksia 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 Łkäytä säikeitä, palvelupyyntöjä 10 Syksy 2007, Tiina Niklander 7-5

YKSINKERTAINEN MUISTINHALLINTA 11 Yksink. muistinhallinta = 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-6

a) Kiinteät partitiot 13 Kiinteät partitiot KJ (operaattori) jakoi muistin kiinteänkokoisiin partitioihin Varausalueet olivat kaikki yhtäsuuria tai niiden koot saattoivat vaihdella Ohjelma, joka oli pienempi tai yhtäsuuri kuin partitio, voitiin ladata ja ajaa ko. partitiossa 14 Syksy 2007, Tiina Niklander 7-7

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 Syksy 2007, Tiina Niklander 7-8

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 partitioon 17 Kiinteät partitiot: Sijoitus Kuva 7.3 18 Syksy 2007, Tiina Niklander 7-9

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 Syksy 2007, Tiina Niklander 7-10

Dynaaminen partitiointi Kuva 7.4 Vaiheessa (d) ei enää tilaa prosessille 4, koko 8 M Jos kaikki 3 prosessia joutuivat Blocked-tilaan, KJ otti uuden P4:n suoritettavaksi 21 Dynaaminen partitiointi 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 Syksy 2007, Tiina Niklander 7-11

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-12

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 Mikä pois, jotta saatiin sopivasti vapaata? iso vs. pieni sellainen, jonka vieressä iso tyhjä alue pieni vs. suuri prioriteetti 25 c) Buddy System 26 Syksy 2007, Tiina Niklander 7-13

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 Buddy System 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 Syksy 2007, Tiina Niklander 7-14

Buddy System: esimerkki Puu Kuva 7.6 29 Buddy: varaukset puuna 30 Syksy 2007, Tiina Niklander 7-15

a) b) c) Osoitemuunnos 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 a) b) c) Osoitemuunnos Kuva 7.8 32 Syksy 2007, Tiina Niklander 7-16

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 Syksy 2007, Tiina Niklander 7-17

Yksinkertainen sivutus 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, KJ tuo kaikki sivut kerralla muistiin / vapauttaa 35 Sivutus Kuva 7.11 0000001111111111 0000010000000000 36 Syksy 2007, Tiina Niklander 7-18

Yksinkertainen sivutus 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 37 Esimerkki muistin käytöstä (d) Prosessi D (5 sivua) ei sovi muistiin 38 Syksy 2007, Tiina Niklander 7-19

Esimerkki (jatkuu) Kuva 7.9 (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 Esimerkin prosessien sivutaulut 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 Syksy 2007, Tiina Niklander 7-20

Osoitemuunnos (siv.) Kuva 8.3 41 Looginen vs Fyysinen osoite Kuva 7.12 = 1502 1 478 6 HUOM: katenointi 6*1024 + 478 = 6766 42 Syksy 2007, Tiina Niklander 7-21

e) Yksinkertainen segmentointi 43 Yksinkertainen segmentointi Ohjelmoija tai kääntäjä jakaa ohjelman kooltaan erilaisiin loogisiin kokonaisuuksiin, segmentteihin segmentti = esim. data-alue tai muutama aliohjelma 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 Syksy 2007, Tiina Niklander 7-22

Segmentointi Kuva 7.11 0000001011101110 0001000000000000 45 Yksinkertainen segmentointi 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 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 Syksy 2007, Tiina Niklander 7-23

Osoitemuunnos (segm.).) Kuva 8.12 47 Looginen vs Fyysinen osoite = 4848 1 752 HUOM: 8224 aito yhteenlasku 8976 = 48 Syksy 2007, Tiina Niklander 7-24

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 muistin tiivistämistarve 49 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) 50 Syksy 2007, Tiina Niklander 7-25

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 Syksy 2007, Tiina Niklander 7-26

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-27