UNIX / Solaris (SVR4)

Samankaltaiset tiedostot
UNIX / Solaris (SVR4)

Muistinhallinnan esimerkit UNIX, Solaris, Linux, W2000

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

UNIX / Solaris MUISTINHALLINTA

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

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

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

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

Luento 6: VIRTUAALIMUISTI

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

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

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

Osio 2: Luennot 4-7 Muistinhallinta

MUISTINHALLINTA. Stallings, Luku 7

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

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

Muistihierarkia Kiintolevyt I/O:n toteutus

Käyttöjärjestelmät II

Luento 9 Järjestelmän ulkoinen muisti

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

Luento 9 Järjestelmän ulkoinen muisti

Järjestelmän ulkoinen muisti I/O

Luento 9 Järjestelmän ulkoinen muisti

Luento 9 Järjestelmän ulkoinen muisti

Käyttöjärjestelmät II

Luento 9 Järjestelmän ulkoinen muisti

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

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

D B. Tiedostojen käsittely

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

Muistihierarkia Kiintolevyt I/O:n toteutus

Tietorakenteet ja algoritmit

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

Tietokoneen toiminta, K Tavoitteet (4)

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

Osio 2: Luennot 5-8 Muistinhallinta

Luento 9 Järjestelmän ulkoinen muisti

Jakso 12 Yhteenveto. Keskeiset asiat Teemu Kerola, K2000

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

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

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ä

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

FinFamily PostgreSQL installation ( ) FinFamily PostgreSQL

Muistinhallinta. Teemu s Cheesecake. Tietokoneen rakenne

Käyttöjärjestelmät: Virtuaalimuisti

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

HELIA 1 (16) Outi Virkki Tietokantasuunnittelu

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

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

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

D B. Levytiedostojen käsittely. Levytiedostojen käsittely

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

Käyttöjärjestelmän rakenne

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

PROSESSIT JA NIIDEN HALLINTA

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 4 Ke Timo Männikkö

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

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

Käyttöjärjestelmät: prosessit

Aliohjelmatyypit (2) Jakso 4 Aliohjelmien toteutus

Luento 9 Järjestelmän ulkoinen muisti

Luento 9 Järjestelmän ulkoinen muisti

Stallings, Luku

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

Jakso 4 Aliohjelmien toteutus

Dynaaminen muisti Rakenteiset tietotyypit

Prosessit ja säikeet SMP, Mikroytimet W2K säikeet

Luento 9 Järjestelmän ulkoinen muisti

Luento 9 Järjestelmän ulkoinen muisti

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. Muistihierarkia Kiintolevyt Muut pyörivät levyt I/O:n toteutus

Luento 5 (verkkoluento 5) Suoritin ja väylä

NYKYAIKAISET KÄYTTÖ- JÄRJESTELMÄT

Jakso 5 Suoritin ja väylä

KJ-II K2006 / Auvo Häkkinen - Teemu Kerola II:ssa?

LUENTO 2. u moniajoa monen käyttäjän ympäristössä, oma KJ versio. u sisältää keskeiset tietoliikenneprotokollat

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

KJ-II K2006 / Auvo Häkkinen - Teemu Kerola

Windows ja Linux. Lappeenrannan teknillinen yliopisto Teknistaloudellinen tiedekunta Tietotekniikan koulutusohjelma

Käyttöjärjestelmät II. SMP, Mikroytimet. Prosessit yleensä. UNIX prosessit. UNIX SVR4 Prosessit. UNIX prosessin kuvaaja

Jakso 5 Suoritin ja väylä

Intel Pentium Pro -prosessori. tietokonearkkitehtuurit, syksy -96 Ari Rantanen

Sisältö. Levy I/O Linux ja W2000 levy I/O. Ch [Stal 05] Ch 20.8 [DDC 04] RAID Lohkopuskurit (disk cache) Esimerkit: Linux, W2K

Jakso 8 Ohjelman suoritus järjestelmässä

Jakso 8 Ohjelman suoritus järjestelmässä

TKHJ:ssä on yleensä komento create index, jolla taululle voidaan luoda hakemisto

Luento 4 Aliohjelmien toteutus

Luento 2: Tiedostot ja tiedon varastointi

Dynaaminen muisti. Pasi Sarolahti Aalto University School of Electrical Engineering. C-ohjelmointi Kevät 2017.

Transkriptio:

LUENTO 10 Muistinhallinnan esimerkit UNIX, Solaris, Linux, W2000 UNIX / Solaris (+4BSD) MUISTINHALLINTA Ch 8.3-8.6 [Stal 05] Ch 10-11 [Tane 01] 1 2 UNIX / Solaris (SVR4) Vanhoissa UNIXeissa ei virtuaalimuistia heittovaihtoivat aina kokonaisia prosesseja Sivutus tarvenouto osittain ytimessä osittain pagedaemon-prosessissa (pid=2) käynnistyy aika-ajoin (esim. 250 ms:n välein) tarkistamaan, onko riittävästi vapaita sivutiloja (25%?) Heittovaihto swapper-prosessi (pid=0) pagedaemon käynnistää tarvittaessa vain PCB (user structure) ja sivutaulu jää muistiin 3 UNIX/Solaris: Tietorakenteita Page table Missä sivu keskusmuistissa? X = 7; P Q - jokaisella prosessilla oma Tbl 8.5 [Stal05] - alkio per virt. muistin looginen sivu P:n sivuja P&Q:n sivu X = 5 Q:n sivuja write P Q P:n sivuja P:n sivu X = 7 Q:n sivu X = 5 Q:n sivuja 4 UNIX/Solaris: Tietorakenteita Disk block descriptor - alkio per virt. muistin looginen sivu UNIX/Solaris: Tietorakenteita Tbl 8.5 [Stal05] Page frame data table - alkio per fyysinen sivukehys, vapaat sivutilat lisäksi free-listassa Missä sivu tukimuistissa (eli levyllä)? Muistin sivukehyksen tila? Swap-use table - alkio per levyllä oleva sivu Tbl 8.5 [Stal05] Tukimuistissa olevan sivun tiedot? 5 6 Syksy 2006 / Luento 10 10-1

UNIX/4BSD: Sivukehystaulu (core map) UNIX SVR4: Korvausalgoritmi 1 KB sijainti levyllä? kenen? segmentti? Kaksiviisarinen globaali Clock poistoalgoritmi tutki sivukehystaulua prosessille annettujen sivukehysten (sivutilojen) lkm vaihtelee etummainen viisari asettaa Reference count = 0 perässä tuleva viisari siirtää vapautettavaksi ne, globaali poistoalg. 16 B joiden Reference count == 0 (edelleen?) (Fig 10-16 [Tane01]) 7 8 Kaksiviisarinen Clock (Fig 8.23 [Stal05]) Fronthand: set Reference = 0 Backhand: if (Reference == 0) page out Idea: jos ei viittausta viime aikoina (eli viisarien pyyhkimisaikavälillä), niin kehyksessä oleva sivu ei kuulu käyttöjoukkoon Miten nopeasti (frame/sec) viisarit liikkuvat? Montako kehystä on viisareiden väli? 9 Unix SVR4: korvausalgoritmi Kaksiviisarinen clock viisarien nopeus (scanrate) välillä [slowscan, fastscan] molemmat viisarit etenevät samaa tahtia kehys kerrallaan, kunnes tarpeeksi vapaata tilaa reset (fronthand); jos U(backhand)==0, vapauta se ; etene gap (handspread) viisarien välissä jos spread on pieni, vain hyvin usein viitattuihin sivuihin ehtii tulla viitebitti päälle Jos gap = 359, niin sama kuin 1-viisarinen clock (Fig. 8.16) sopii paremmin suurille muisteille, nopeampi kuin tavallinen clock Ylläpidä: minfree < vapaiden sivutilojen lkm < maxfree Jos lkm < minfree, käynnistä swapper heittovaihtamaan prosesseja, jolloin sivutiloja vapautuu äkkiä paljon (UNIX 4BSD) pisimmän aikaa vähintään 20 sek. idle nä ollut prosessi? 4 suurimmasta prosessista kauiten muistissa ollut prosessi? Jos lkm lähellä minfree-arvoa kasvata scanrate-arvoa (vapauta herkemmin, käynnistä algoritmi useammin) Jos lkm lähellä maxfree-arvoa, pienennä scanrate-arvoa (viitebitin asetukselle aikaa lisää) Fig 8.23 [Stal05] 10 UNIX/Solaris: ytimen (kernel) muisti time Buddy System (& lazy buddy system) Perusvaraus sivutusta käyttäen Sivuja voi lukita muistiin Ydin varaa ja vapauttaa paljon pieniä alueita ja puskureita tiedoston polkunimen selvitys zombie-prosessista jälkeenjäävät tiedot dynaaminen varaus: proc, vnode, tiedostokuvaaja Ydin varaa ja vapauttaa myös sivun osia sivun sisällä tehtäviä varauksia hallitaan dynaamista tilanvarausta käyttäen (Ch 7 [Stal05]) varaus ja vapautus oltava tehokkaita => Laiska Buddy System (Lazy Buddy) lohkojen yhdistelyä viivästetään, kunnes vapaita lohkoja on liikaa 11 lazy buddy ei tee heti! (Fig 7.6 [Stal05]) 12 Syksy 2006 / Luento 10 10-2

Muistiinkuvatut tiedostot Muistiinkuvattu tiedosto Memory-mapped files Tiedostovälimuisti on muistissa Mapataan (kuvataan) virtuaalimuistialue tiedostovälimuistin päälle Tiedoston luku/kirjoitus muistin luku/kirjoitus-operaatioilla nopea! Monta prosessia voi mapata helposti saman alueen yhteiskäyttöiset tiedostot (koodi ja/tai data) ks. kuva seuraavalla sivulla VM hallinnoi tiedostoja, ei File System! VM voi siirtää sivun levylle, kun FS pitäisi sen muistissa FS suunniteltu tiedostojen käyttöä varten, VM ei [Tane01] 13 14 Linux MUISTINHALLINTA Ch 8.4 [Stal 05] 15 Linux: muistinhallinta 32-bittisissä arkkitehtuureissa 3 GB:n virtuaaliavaruus prosesseille 1 GB ytimelle (mm. sivutaulut) fyysisesti todellisen muistin alussa etuoikeutetussa tilassa viitattavissa 4 GB prosessin oma 3 GB ytimen 1 GB Virtuaalinen osoiteavaruus jaettu yhtenäisiin alueisiin, joilla joka sivulla samat suojaukset ja ominaisuudet vrt. segmentti Ytimen pienin allokoinnin yksikkö: slab (<< sivu) ei ole tehokasta varata aina kokonaisia sivuja vain ytimen käyttöön, joka tarvitsee paljon pieniä muistialueita 16 Linux: sivutus Laitteistoriippumaton toteutus Alpha: 64b osoitteet, tuki 3:lle tasolle, sivu 8KB offset 13 bittiä x86: 32b osoitteet, käyttää 2-tasoa, sivu 4KB offset 12 bittiä 3-tasoinen sivutaulu page directory (PD), 1 sivu page middle directory (PMD), monta sivua page table (PT), monta sivua Ylin taso aina muistissa säikeen vaihdossa fyysinen osoite MMU:hun (PD) muut voivat olla tukimuistissa! puuttuu x86 sta arvo 0 monta sivua yksi sivu (Fig 8.25 [Stal05]) 17 Linux: osoitemuunnos Jaa osoite 4:ään osaan indeksi ylimmän tason hakemistoon (PD-offset) indeksi välitason hakemistoon (PMD-offset) indeksi sivutauluun (PT-offset) siirtymä sivun sisällä (offset) PMD_base = PD_base + PD[PD_offset] PT_base = PMD_base + PMD[PMD_offset] Page_base = PT_base + PT[PT_offset] fyys.os = Page-base + offset X86-jippo välitason hakemiston (PMD) koko vain yksi alkio! laitteisto tulkitsee ylimmän tason (PD) alkion osoittavan suoraan alimman tason sivutauluun (PT) sopii muillekin laitteistoille, joissa vain 2 tasoa 18 Syksy 2006 / Luento 10 10-3

Linux: varausalgoritmi Linux: noutoalgoritmi Varaa yhtenäinen lohko (area, region) peräkkäisille sivuille tehostaa levyltä noutoa ja takaisin kirjoitusta optimoi siis levyn käyttöaikaa (tilan kustannuksella) Buddy System: 1, 2, 4, 8, 16 tai 32 sivutilaa toteutus: taulukko, jossa osoittimet koon mukaisiin vapaiden listoihin paljon sisäistä pirstoutumista tarvitset 18 sivua, mutta varaat 32 sivua! 19 Tarvenouto ei ennaltanoutoa, ei käyttöjoukon algoritmeja Toisaalta, lohkon usea sivu voidaan ehkä hakea kerralla (buddy system) ennakova nouto? ei viitepaikallisuuden vaan levypaikallisuuden mukaan (alueellinen paikallisuus) toivon mukaan lähellä toisiaan 20 Linux: korvausalgoritmi Globaali Clock M-bitillä + eräänlainen LRU prosessilla dynaaminen varattujen sivutilojen lkm 8 bitin ikälaskuri (age) vrt. U-bitti MMU kasvattaa, kun sivuun viitataan taustaprosessi (kswapd) tutkii sekunnin välein vähentää 1 ikälaskurista jokaisella tutkintakerralla jos vapaana liian vähän, vapauttaa sivutiloja Mitä suurempi ikälaskuri, sitä tiuhempaan sivuun viitattu Jos ikälaskuri = 0, sivuun ei ole viitattu Korvaa se, jonka laskuri pienin Käyttää sivujen puskurointia (pagebuffer) 21 Linux memory manager 260 * For choosing which pages to swap out, inode pages carry a 261 * PG_referenced bit, which is set any time the system accesses 262 * that page through the (mapping,index) hash table. This referenced 263 * bit, together with the referenced bit in the page tables, is used 264 * to manipulate page->age and move the page across the active, 265 * inactive_dirty and inactive_clean lists. 266 * 267 * Note that the referenced bit, the page->lru list_head and the 268 * active, inactive_dirty and inactive_clean lists are protected by 269 * the pagemap_lru_lock, and *NOT* by the usual PG_locked bit! (include/linux/mm.h) 22 Linux daemon kswapd [Stal 05] Linux daemon bdflush Suorittaa kerran sekunnissa. Jos tarvitaan lisää vapaita sivukehyksiä, niin käy kaikki käytössä olevat sivut läpi, max 6 kierrosta, kunnes tarpeeksi vapaita etsi käyttämättömiä sivuja modifioidulla clock illa sivupuskurista (page buffer) ja tiedostovälimuistista etsi yhteiskäytössä olevia käyttämättömiä sivuja etsi tavallisista käytössä olevista sivuista käy sivut läpi 1 prosessi kerrallaan poista käyttämättömät puhtaat heti pistä käyttämättömät likaiset levyjonoon pistä käytössä olevat likaiset sivupuskuriin Herää henkiin aika ajoin, tai explisiittisesti Jos liikaa likaisia sivuja, rupea kirjoittamaan niitä levylle 23 24 Syksy 2006 / Luento 10 10-4

Linux page cache swap_out age up (+3) refill_inactive_scan age down (/2) page_launder kswapd http://home.earthlink.net/~jknapka/linux-mm/vmoutline.html demand paging, levy page cache read-ahead active_list (age > 0, in use) inactive_dirty_list (age = 0, not used clean or dirty) inactive_clean_list (age = 0, not used, clean) It does not seem possible to understand the VM system in a modular way. The interfaces between, say, the zone allocator and the swap policy are many and varied What a nightmare (Joe Knapka) swap cache kreclaimd alloc bdflush 25 Linux: tilanvaraus ytimessä Ydin lukittu pysyvästi muistiin Dynaaminen varaus sivuittain Dynaamisesti ladattavat moduulit kokonaisina ytimen muistialueelle buddy system sivutilatasolla Ytimessä usein tarvetta myös pienille lyhytaikaisille varauksille, slab eille yksittäinen sivu leikattavissa pienempiin osiin (slab) buddy system sivun sisäisesti x86: 32, 64, 128, 252, 508, 2040, 4080 tavua (sivu 4KB) Slab: laatta, leikata laatoiksi, kattaa laatoilla kmalloc() 26 Windows 2000 MUISTINHALLINTA 0x0000????: W2K 32-bittiset osoitteet => 4 GB virt. os. Sivukoko 4K - 64K Pentium: 4KB Alpha: 8K -1 Ch 8.5 [Stal 05] Ch 11.5 [Tane 01] (Fig 8.26 [Stal05]) ks. Fig. 11.23 [Tane 01] 27 0xFFFF????: 28 W2K: Sivutus W2K: Sivutus Sivutaulun alkioissa eroja eri järjestelmissä (Fig 11.26 [Tane01]) Ei segmentointia Vaihtuva määrä sivukehyksiä / prosessi aluksi kiinteä määrä (muistin määrän mukaan) minimi 20-50, maksimi 45-345 (muistin koosta riippuen) jos vapaata paljon, prosessi voi saada lisää ahneen pitää jättää viimeiset 512 kehystä muille prosesseille jos vapaan muistin määrä vähenee, prosessikohtaista sivutilamäärää vähennetään Tarvenouto ei ennaltanoutoa Levy I/O isompina paloina 1-8 sivua kerrallaan Sivun tilat Available Reserved: varaus, jota ei vielä laskettu prosessin osuuteen nopea allokointi, kun tarvitaan (esim. pino) Committed: käytössä, tila myös tukimuistissa eli siis myös jonkin asteen ennaltanouto! 29 30 not used Pentium Fig 11.24 [Tane01] (seur. kalvo) Syksy 2006 / Luento 10 10-5

W2K: Korvausalgoritmi W2K osoiteavaruus copy on write? [Tane01] ei swap-alueella! 31 Käyttöjoukkoalgoritmi, lokaali korvaus käyttöjoukko per prosessi, ei per säie Balance set manager -daemon tutkii 1 sek välein, onko riittävästi vapaita sivutiloja Working set manager käynnistyy tarvittaessa käyttöjoukon koko määräytyy dynaamisesti vapauttaa prosessikohtaisia sivutiloja aloittaa isoista idle-prosesseista Swapper-daemon ajetaan 4 sek välein: etsi prosesseja, joiden kaikki säikeet olleet passiivisia kauan aikaa Osa KJ:sta ja puskuriallas lukittu muistiin Vapautettujen sivujen puskurointi 32 W2K Poistettavan sivun valinta Joka sivulla laskuri kauanko sivu käyttämättä Yksi suoritin jos ei viitettä, lisää laskuria jos viite, nollaa laskuri modifioitu Clock? Monta suoritinta viitebitit eivät toimi, koska lokaaleja suorittimelle! FIFO-järjestys (onko hyvä? nyt yleinen tapaus!) Neljä vapaiden sivujen listaa dirty, clean, free, zeroed free (ja bad) Kukin fyysinen sivu jossakin käyttöjoukossa jossakin vapaiden sivujen joukossa silti prosessin käytettävissä? vrt. Linux Age Fig 11.27 [Tane01] (seur. kalvo) 33 W2K: Vapaat sivutilat (Fig 11.27 [Tane01]) 34 W2K reference WS swapper thread 4 s. Modified Standby disk modified page writer dealloc mapped page writer Free normal use stack zero page thread (idle proc) Zeroed W2K: Sivutilataulu page fault The code is so complex that the designers loathe to touch parts of it for fear of breaking something somewhere Andrew Tanenbaum [Tane01, p. 823] Fig 11.27 [Tane01] (edell. kalvo) Fig 11.28 [Tane01] (seur. kalvo) 35 (Fig 11.28 [Tane01]) 36 Syksy 2006 / Luento 10 10-6