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

Samankaltaiset tiedostot
MUISTINHALLINNAN OHJELMISTO

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

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

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

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

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

Luento 6: VIRTUAALIMUISTI

Luento 5: YKSINKERTAINEN SEGMENTOINTI JA SIVUTUS

UNIX / Solaris MUISTINHALLINTA

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

UNIX / Solaris (SVR4)

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

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

Muistinhallinnan esimerkit UNIX, Solaris, Linux, W2000

UNIX / Solaris (SVR4)

Osio 2: Luennot 4-7 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ä.

Luento 9 Järjestelmän ulkoinen muisti

Osio 2: Luennot 5-8 Muistinhallinta

Luento 9 Järjestelmän ulkoinen muisti

Muistinhallinta. Teemu s Cheesecake. Tietokoneen rakenne

Luento 9 Järjestelmän ulkoinen muisti

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

Luento 9 Järjestelmän ulkoinen muisti

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

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

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

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

Käyttöjärjestelmät: Virtuaalimuisti

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

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

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

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

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

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

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

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

Muistihierarkia Kiintolevyt I/O:n toteutus

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

Tietokoneen toiminta, K Tavoitteet (4)

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

Jakso 12 Yhteenveto. Keskeiset asiat Teemu Kerola, K2000

Käyttöjärjestelmät: prosessit

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

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

Järjestelmän ulkoinen muisti I/O

Käyttöjärjestelmän rakenne

Stallings, Luku

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

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

Muistihierarkia Kiintolevyt I/O:n toteutus

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

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

Luento 1 Tietokonejärjestelmän rakenne

Luento 1 (verkkoluento 1) Tietokonejärjestelmä

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

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

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

Sisältö SIIRRÄNTÄ. I/O-laitteiden luokittelua. Yleistä siirrännästä. Siirrännän perustekniikat. Siirtonopeuksia (teoreettisia) Kuva 11.

Luento 1 Tietokonejärjestelmän rakenne

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

Luento 9 Järjestelmän ulkoinen muisti

Luento 1 (verkkoluento 1) Ohjelman sijainti Ohjelman esitysmuoto Laitteiston nopeus

Luento 9 Järjestelmän ulkoinen muisti

Käännös, linkitys ja lataus

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

Jakso 8 Ohjelman suoritus järjestelmässä

Jakso 8 Ohjelman suoritus järjestelmässä

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

Algoritmit 1. Luento 4 Ke Timo Männikkö

Stallings, Luku I/O-laitteiden luokittelua, siirtonopeuksia Siirrännän perustekniikat Siirrännän kehittyminen

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

Tietokoneen rakenne (2 ov / 4 op) Syksy 2006

Luento 9 Järjestelmän ulkoinen muisti

Jakso 8 Ohjelman toteutus järjestelmässä

Jakso 8 Ohjelman toteutus järjestelmässä

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

Internal Memory, Cache

Tietorakenteet ja algoritmit

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

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

Jakso 8 Ohjelman toteutus järjestelmässä. Prosessi Prosessin esitysmuoto järjestelmässä Käyttöjärjestelmä KJ-prosessit

Luento 9 Järjestelmän ulkoinen muisti

Sisältöä SÄIKEET, SMP

Luento 8 Ohjelman toteutus järjestelmässä

Luento 8 Ohjelman toteutus järjestelmässä. Prosessi Prosessin esitysmuoto järjestelmässä Käyttöjärjestelmä KJ-prosessit

Muistihierarkia (4) Luento 9 Järjestelmän ulkoinen muisti

Algoritmit 2. Luento 13 Ti Timo Männikkö

Transkriptio:

LUENTO 5 Käyttöjärjestelmät II MUISTINHALLINNAN OHJELMISTO Ch 7-87 8 [Stal[ 05] 1 Lähtötiedot tiedot / seuraavaksi? Yksinkertainen muistinhallinta (Ch 7) Tehtävät, staattinen vs. dynaaminen partitiointi, Buddy System sivutus, segmentointi Virtuaalimuisti (Ch 8.1) Sivutus ja segmentointi, sivu- ja segm. taulut, MMU Laitteistotuki (Tietokoneen rakenne -kurssi) MMU:n sisäinen rakenne TLB Seuraavaksi KJ-II:ssa KJ:n muistinhallinta-algoritmit (Ch 8.2) UNIX ja Solaris: muistinhallinta (Ch 8.3) Linux: muistinhallinta (Ch 8.4) W2K: muistinhallinta (Ch 8.5) Luento 5 Luento 6 2 KJ-II K2006 / Teemu Kerola (lu 5) 1

Perusvalinnat Virtuaalimuistia vai ei? u originaali UNIX ja MS-DOS eivät käyttäneet F ei tarvittavaa laitteistotukea (MMU, TLB) Sivutus vai segmentointi? u pelkkään segmentointiin perustuvat häviämässä u molempien yhteiskäyttö yleistymässä u nykyisin lähes aina monta tasoa Millaisia algoritmeja käytetään? u monta tekijää vaikuttamassa F reaaliaikaisuus? palvelinkone? F laitteistotuki? Jatkossa käsitellään vain sivutusta 3 Looginen vs. fyysinen osoite 1502 6766 (Fig 7.12 [Stal05]) = 1502 PCB 6766 = 6 *1024 + 478 6 478 Fig 8.13 [Stal05] 4 KJ-II K2006 / Teemu Kerola (lu 5) 2

Moni- tasoinen sivutus VA FA PCB (Fig 4-12 [Tane01]) 5 Sivun koko Optimoi sisäistä pirstoutumista pieni Optimoi sivutaulun (taulujen) kokoa iso Monikerta (1x, 2x, ) levylohkon koosta Optimaaliarvo erilainen eri ohjelmille Optimoi TLB:n osumasuhdetta iso Sovellus tai KJ voi vaihdella sivun kokoa? Tbl 8.2 [Stal05] 6 KJ-II K2006 / Teemu Kerola (lu 5) 3

Optimaalinen sivun koko? Minimoi prosessille hukkatila (p. 238 [Tane01]) u hukkatila = sivutaulun koko plus sisäinen pirstoutuminen? f = se/p + p/2 s = keskim. prosessin koko tavuina e = sivutaulu entryn koko p = sivun koko f = hukkatila df/dp = -se/p 2 + ½ = 0, kun p = 2se s = 1 MB e = 8B p opt = 4 KB s = 100 MB e = 8B p opt = 40 KB Tbl 8.2 [Stal05] u sovellukset suurempia optimi sivun koko suurempi! F kriteerinä tässä vain hukkatilan määrä F mikä muu voisi olla kriteerinä? 7 Sivutaulun alkio Jokaisella prosessilla oma sivutaulunsa u missä sivukehyksissä tämän prosessin sivut sijaitsevat? u sivutaulun fyysinen osoite PCB:ssä port mem? shared mem? dirty? since when? R/W/E? (Fig 4-13 [Tane01]) 8 KJ-II K2006 / Teemu Kerola (lu 5) 4

TLB Miten osoitteen muutos nopeasti yleensä? Samalla teknologialla kuin (tason 1) välimuisti? u vain ajallinen paikallisuus Hudin käsittely laitteistolla tai TLB-keskeytyksellä Fig 8.7 [Stal05] Fig 8.10 [Stal05] [Tane01] 9 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) 10 KJ-II K2006 / Teemu Kerola (lu 5) 5

Muistinhallinta-algoritmit algoritmit Noutopolitiikka (fetch policy) u milloin sivu tuodaan muistiin? Sijoituspolitiikka (placement policy) Tbl 8.3 [Stal05] u minne sivu sijoitetaan? Korvauspolitiikka, poistopolitiikka (replacement policy) u mikä sivu korvataan uudella ja milloin? Levylle kirjoitus -politiikka (cleaning policy) u milloin muutettu sivu vapautetaan? Moniajoaste (load control) u montako prosessia suoritettavana? u paljonko muistia käytettävissä per prosessi? Käyttöjoukon koko (working set) u paljonko sivukehyksiä per prosessi? (resident set) u mihin viitattu viime aikoina? 11 Käyttöjärjestelmät II Noutopolitiikka 12 KJ-II K2006 / Teemu Kerola (lu 5) 6

Perform page replacement Muut osat käsitelty KJ-I:ssä (Fig 8.8 [Stal05]) Milloin sivu muistiin levyltä? Tarvesivutus (demand paging) u tuo vasta kun viitataan sivulla olevaan osoitteeseen u aluksi paljon sivunpuutoksia, voi kestää kauan F voi olla hyvin huono juttu, esim. puhelinkeskus u hetken päästä paikallisuus alkaa olla OK Ennaltanouto (prepaging) u tuo etukäteen useita sivuja (tai kaikki?) u sivunpuutoksen sattuessa tuo monta sivua F alueellinen paikallisuus u peräkkäisiä sivuja optimoi hakuviiveet u viitataanko tuotuun sivuun? Välimuotoja u tuo tärkeät ensin (demand) u tuo taustalla loput (prepaging) Windows DLL epäsuora dynaaminen linkitys (implicit linking) 14 KJ-II K2006 / Teemu Kerola (lu 5) 7

Käyttöjärjestelmät II Sijoituspolitiikka 15 Minne sivu sijoitetaan? Kun noudetaan levyltä muistiin, Segmentointi u Best-fit, first-fit, (Ch 7) Sivutus ja segmentoiva sivutus u mikä tahansa vapaa sivutila u osoitemuunnos MMU:ssa aina yhtä tehokkaasti NUMA moniprosessorit u nonuniform memory access u yhteiskäytössä oleva muisti u tiedon fyysinen sijainti vaikuttaa muistiviitteen nopeuteen u sijoituspolitiikasta taas tärkeä? u sivu viitteen tekijälle vai omistajalle? (Tane01, Fig 8-1) 16 KJ-II K2006 / Teemu Kerola (lu 5) 8

Käyttöjärjestelmät II Korvauspolitiikka 17 Muistitilan hallinta (resident( set mgt) Montako sivutilaa maksimi per prosessi eli montako sivua pidetään muistissa? (resident set size) u kiinteä lkm? F miten iso? sama kaikilla? u vaihteleva lkm? F millä perusteella lkm vaihtelee? F käyttöjoukko (working set): niiden sivujen joukko, jotka tarvitaan lähitulevaisuudessa resident set: ne sivut, jotka ovat nyt muistissa Mistä kaikkialta korvattavaa sivua etsitään? u etsi kaikkien sivujen joukosta (globaali politiikka) u etsi prosessin omien sivujen joukosta (lokaali politiikka) F voi olla silti vaihteleva sivukehysten lkm 18 KJ-II K2006 / Teemu Kerola (lu 5) 9

Sivun korvaus Milloin korvataan? u sivunpuutos u muisti liian täynnä, ei vapaata tilaa (yleensä on!) u ei tarpeeksi vapaata tilaa Mikä sivu korvataan? u sellainen, jota ei tarvita (lähi)tulevaisuudessa F yritä ennustaa menneisyyden perusteella u paikallisuus: jos sivuun ei enää viitata, on ohjelma ohittanut ko. vaiheen F menneisyys ei ennustanutkaan Fig 8.1 [Stal05] tulevaisuutta oikein! 19 Prosessille allokoidun muistin hallinta (Resident Set Management) Allokoitu muistin määrä (sivukehysten lkm) u jos liian pieni, niin F muistiin mahtuu useampi prosessi F enemmän sivunpuutoskeskeytyksiä liikaa? trashing eli ruuhkautuminen? u jos turhan iso F vie tilaa muilta prosesseilta F CPU utilisaatio turhan pieni F tuhlattu muistia Fig 8.1 [Stal05] Fig 8.11 (b) [Stal05] 20 KJ-II K2006 / Teemu Kerola (lu 5) 10

Muistiallokoinnin koko vs. poistettavan sivun valinta (esim. PFF, kalvo 35) (Tbl 8.4 [Stal05]) 21 Lukitus Sivu voidaan lukita muistiin u ytimeen kuuluvat sivut u KJ:n keskeiset tietorakenteet u siirrännän puskurit (siirron ajaksi) u reaaliaikajärjestelmissä myös prosessin sivut Toteutus u sivutilataulussa ko. sivutilan kohdalla lukkobitti F vapaat / varatut sivutilat u tai sivutaulun alkiossa lukkobitti F tietylle prosessille varatut sivutilat u globaali vs. lokaali politiikka 22 KJ-II K2006 / Teemu Kerola (lu 5) 11

Korvauspolitiikka Optimaalinen algoritmi (OPT) korvaa sivun, johon ei tule enää viittauksia, tai sivun, johon uudelleenviittaamiseen menee pisin aika u mistäpäs sen tiedät? Perusalgoritmit u LRU, Least recently used F poista se, johon viitattu kauimmin aikaa sitten u FIFO, First-in-first-out F poista se, joka ollut kauimmin muistissa u Clock F poista se, jota ei käytetty edellisen tutkinnan jälkeen F rengasalgoritmi Hyvyyden mitta? on muitakin u sivunpuutoskeskeytysten lukumäärä (tiheys) 23 OPT-poistoalgoritmi Poista se, jonka seuraavaan viittaukseen on eniten aikaa u vaatii erinomaisia ennustajan taitoja u voidaan mitata jälkeenpäin trace-tiedostosta Jälkiviisaus on hienoa, mutta mitä sillä tekee? Vertailukohta poistoalgoritmeja arvioitaessa u jos päästään lähelle OPTia, niin ollaan jo aika hyviä u jos ollaan kaukana OPTista, niin huonosti menee Fig 8.15 [Stal05] 24 KJ-II K2006 / Teemu Kerola (lu 5) 12

LRU poistoalgoritmi Korvaa sivu, johon viittaamisesta kulunut kauimmin menneisyydessä u vrt OPT: kauimmin tulevaisuudessa Paikallisuus vihjaa tähän suuntaan Toteutuksen vaikeus u jokaiseen sivuun mukaan aikaleimako? u miten aikaleima päivitetään? F jokaisella muistiviitteellä F laitteistotoimintona? miten? u ei käy, liikaa yleisrasitetta! Fig 8.15 [Stal05] 25 NRU (Not( Recently Used) -poistoalgoritmi Sivukehyksissä viitebitti (R, Reference) u nollataan aika ajoin u laitteisto asettaa, jos viittaus Sivukehyksessä muutettu bitti (M, Modified) u nollataan levylle kirjoituksen yhteydessä u laitteisto asettaa, jos kirjoitus F tarvitaan siis joka tapauksessa! Poista u joku, johon ei viittausta ja jota ei muutettu u joku, johon ei viittausta ja jota muutettu u joku, johon viittaus ja jota ei muutettu u joku Helppo toteuttaa, vähän HW-tukea vaatii siis laitteistotukea! 26 KJ-II K2006 / Teemu Kerola (lu 5) 13

FIFO-poistoalgoritmi Korvaa sivu, joka ollut kauimmin muistissa vrt. Round-Robin vuorottamisessa Helpoin toteuttaa u aikaleima sivutaulun alkioon, kun tuodaan muistiin, TAI u kaikki sivut listassa, muistista tuontiajan mukaisesti Muistiintuontiaika korreloi huonosti käyttötarpeen kanssa u kauiten muistissa ollut sivu voi olla sellainen, jota käytetään koko ajan? Fig 8.15 [Stal05] jonojen hallinta? 27 RANDOM poistoalgoritmi Poista satunnainen sivu Todella helppo toteuttaa Ei vaadi laitteistotukea Lähes yhtä hyvä kuin FIFO u ei siis kauhean hyvä 28 KJ-II K2006 / Teemu Kerola (lu 5) 14

Second Chance -poistoalgoritmi FIFOn modifikaatio viitebitti R ja muutosbitti M poista FIFO-järjestyksessä, mutta jonojen hallinta? u jos R==1 (on viitattu äsken), niin siirrä FIFO jonon loppuun ja nollaa R F jos muita ei löydy, niin sitten tämä poistetaan kun FIFO jonossa päästään seuraavalla kerralla tämän sivun kohdalle (jolloin R==0) R=1 Nykyhetki = 20 (Fig 4-16 [Tane01]) 29 R=0 Clock-poistoalgoritmi Second Chance algoritmin modifikaatio u ei sivujen siirtelyä listassa Käy sivutilojen listaa läpi renkaana Jokaiseen sivutilaan liittyy viitebitti (U eli Use bit) u kun sivu muistiin, U = 0, reset silloin tällöin u kun sivuun viitataan, U = 1 (MMU asettaa) Korvaa sivu, jonka viitebitti on 0 u ensimmäinen eteen sattuva Aseta aina tutkituissa viitebitiksi 0 u jos arvo seuraavallakin kierroksella 0, sivuun ei ole viitattu (ainakaan teoriassa) Aseta kaikki U=0 u ei aina? joka 10 ms? (HW-toiminto) Fig 8.16 [Stal05] Fig 8.15 [Stal05] Fig 8.17 [Stal05] 30 KJ-II K2006 / Teemu Kerola (lu 5) 15

Clock-poistoalgoritmi M-bitin M kera Not used, not modified? Not used, modified? Not modified? Any page? Lisää laitteistotukea: M eli Modified-bitti u ennestään U (eli Used eli R eli Referenced) käy sivuja läpi ringissä u jos U==0 ja M==0, poista tämä u älä muuta U-bittiä käy sivuja läpi uudestaan ringissä u jos U==0 ja M==1, poista tämä u aseta U=0 muille käy sivuja läpi uudestaan ringissä u jos löytyy M==0, niin poista tämä käy sivuja läpi uudestaan ringissä u jos löytyy M==1, niin poista tämä u kaikki jäljellä olevat tällaisia käy rinki läpi monta kertaa, kunnes poistettava löytynyt Fig 8.18 [Stal05] 31 Käyttöjärjestelmät II Käyttöjoukkostrategia Muistitilan koon hallintaan 32 KJ-II K2006 / Teemu Kerola (lu 5) 16

Käyttöjoukkostrategia (Working Working Set Strategy) Sivut, joihin viitattu k:n (ikkunakoko) viimeisimmän viittauksen aikana Fig 8.19 [Stal05] u approksimaatio prosessin tarvitsemille sivuille (todelliselle käyttöjoukolle) working set vs. Toteutus? resident set? u vain approksimaatioita u käyttöjoukossa sivut, joihin viitattu esim. viim. 100 ms:n aikana, kun prosessi oli suoritettavana Sivu, joka ei kuulu käyttöjoukkoon, voidaan vapauttaa u pyrkii tekemään ennakolta tilaa uusille sivuille Fig 8.1 [Stal05] Jos käyttöjoukko kutistuu pieneksi, voidaan tuoda sivuja ennalta takaisin u mitkä? viitattu ja sitä seuraava? 33 Käyttöjoukon koko Montako sivutilaa siis per prosessi? u osa käyttöjoukoissa, osa pidettävä vapaana u vähän muistissa monta prosessia, usein puutoksia u paljon vähemmän sivunpuutoskeskeytyksiä u paikallisuus vs. sivunpuutos Kiinteä allokointi u prosessia käynnistettäessä u tyypin perusteella: interaktiivinen, erätyö (tausta) u muun tiedon perusteella, esim. edellinen suorituskerta Dynaaminen allokointi u sivuja muistiin tarpeen mukaan u käyttöjoukon koko vaihtelee vapaan muistitilan mukaan ja prosessin vaiheen mukaan Mikä sopiva käyttöjoukon koko? u arvio esim. sivupuutostiheyden perusteella 34 KJ-II K2006 / Teemu Kerola (lu 5) 17

Dynaaminen käyttk yttöjoukon koko PFF Page Fault Frequency u pidetään kirjaa, milloin edellinen sivunpuutos tapahtui u sivunpuutos: laske T = väliaika edellisestä sivunpuutoksesta u jos T < L, niin tarvitaan lisää muistitilaa F lisää puuttuva sivu käyttöjoukkoon u jos T > H, niin prosessilla liikaa muistitilaa F poista kaikki viime aikoina viittaamattomat sivut tai jotkut niistä käyttöjoukosta u yritetään pitää sivunpuutostiheys sopivissa rajoissa, eli sivunpuutosten väliaika välillä (L, H) VSWS Variable-interval Sampled Working Set u PFF:n modifikaatio, ottaa huomioon vaiheen vaihtumisen u käyttöjoukko voi kasvaa milloin vain, mutta pienentyä vain vaiheen vaihtuessa u vaiheen pituus aina vähintään M ja enintään L u vaiheen aikana hyväksyttävän sivunpuutosmäärän (Q) avulla 35 Käyttöjärjestelmät II Levylle kirjoitus politiikka (Cleaning Policy) how to clean dirty pages 36 KJ-II K2006 / Teemu Kerola (lu 5) 18

Milloin sivu kirjoitetaan levylle? Vain jos muutettu Tarvetalletus (demand cleaning) u kirjoita levylle vasta, jos sivutila pitää ottaa käyttöön u saattaa aiheuttaa pitkän viipeen sivutilan tarvitsijalle u entä jos kone kaatuu? Ennaltatalletus (precleaning) u kirjoitus levylle etukäteen erä kerrallaan u ennaltamääritellyin aikavälein Sivutila siivouksen jälkeen vapaiden listaan u siivous voi olla hukkainvestointi u entäpä, jos sivuun viitataan taas? Entäpä jos levy odottaa toimetonna, eli sillä on pieni utilisaatio? 37 Puskurointi (page buffering) Pidä tietty osa sivutiloista vapaana u joskus tulee vapautetuksi väärä sivu ~ sivujen välimuisti u nopea palautus takaisin käyttöön sivupuskurista, jos vapaassa sivukehyksessä olevaan tietoon viitataan Poistettavaksi merkitty sivu lisätään u vapaiden listaan, jos ei muutettu u muutettujen sivujen listaan, jos muutettu Sivu pysyy silti alkuperäisellä paikalla muistissa u vain merkintä prosessin sivutaulussa poistetaan Varaus vapaiden listan alusta u viimeksi vapautetuilla suurempi mahdollisuus tulla pelastetuksi F miksi? 38 KJ-II K2006 / Teemu Kerola (lu 5) 19

Käyttöjärjestelmät t II Moniajoaste 39 Moniajoaste (load control) Löydettävä sopiva suorituksessa (muistissa) olevien prosessien lkm Liian vähän? u CPU jouten, jos prosessit Blocked tilassa Liian paljon? u ruuhkautuminen (trashing): sivuttaminen vie liikaa aikaa Mitä tehdä jos liikaa prosesseja? Eli siis liian vähän muistia per prosessi? u heittovaihda Ready-prosesseja levylle F se, jolla pienin prioriteetti F se, joka aiheutti puutoksen F se, joka oli edellisenä suorituksessa F se, jolla pienin käyttöjoukko F se, jolla eniten muistia käytössä tai jolla suurin aikaviipale F kuka vaan, mutta joku! Fig 8.11 [Stal05] Fig 8.21 [Stal05] 40 KJ-II K2006 / Teemu Kerola (lu 5) 20

Moniajoasteen dynaaminen kontrolli L=S kriteeri u sivunpuutosten väliaika L u sivunpuutosten käsittelyaika S u L >> S kasvata mpl, 50% sääntö u Util (sivutuslevy) olisi hyvä olla 50% L << S pienennä mpl u pieni U kasvata mpl, iso U pienennä mpl Globaali Clock poistoalgoritmi, viisarin nopeusrajat u hidas kasvata mpl u nopea pienennä mpl 41 Käyttöjärjestelmät II Heittovaihtoalue 42 KJ-II K2006 / Teemu Kerola (lu 5) 21

Heittovaihtoalue (swap swap area,, VM backup store) Heittovaihtoalue varattu levyltä etukäteen u Windows: pagefile.sys, win386.swp u Linux: oma swap-levypartitio a) Kiinteä yhtenäinen varaus u kerralla koko prosessille F kopioi koodi alustuksessa tai F varaa tila, heittovaihda sivut sinne vähitellen u PCB:ssa swap-alueen alkuosoite ja pituus u vapaiden alueiden kirjanpito kuten luvussa 7 b) Dynaaminen varaus u sivu kerrallaan u tarvitaan sivukohtainen kuvaus F sivutaulun alkiossa swap-alueen lohkonnumero tai F erillinen taulu (disk map) u ei tarvita levytilaa sivuille, joita ei koskaan viedä levylle 43 Heittovaihtoalue (Fig 4-33 [Tane01]) Kiinteä varaus Dynaaminen varaus 44 KJ-II K2006 / Teemu Kerola (lu 5) 22

Kertauskysymyksiä Miksi PFF:ssä kannattaa olla kaksi rajaa eikä vain yksi? Miten OPT voidaan käytännössä toteuttaa? Mikä on OPT:n merkitys? Mitä hyötyä kotikoneessa on suuresta moniajoasteesta? Miksi Clock-algoritmi asettaa ohitettaville sivuille use=0? Miksei sijoituspolitiikka ole niin kiinnostava? Mitkä hyötyä on vapaiden sivujen puskuroinnista? Miten sen aiheuttamia haittoja voidaan minimoida? 45 KJ-II K2006 / Teemu Kerola (lu 5) 23