"$# % &'&)(+*,#.-/*10 2&)0 354 # &76! Stallings, Luku 8.1 KJ-I S2004 / Tiina Niklander; kalvot Auvo Häkkinen 7-1 89 2 # 3:&( ; <>=/?A@CBEDGFCHJILKMCNORQ:KI+STOENUQ:KFLFCBEOEDVKLORIQ:OWIXIF ; Y'OZSTKQ:KI ; <[IMCORQ\@CDVKLKCHLHMIL]LKIL^CKLNO_)`La ; `ORIbLbGILOcSTKQ\FdKLBEKLORIQ\F npo 0 q &)r s.t ; Y'@LeCDG@dHQ\MCOEHQ:O ; Y'@LeCDG@dHQ\MCOEHQ:Of?AFGIOZSTKQ:KIhgT=iCORIQ\@QQAgTHb ; jk=q:@coril^blglq\miq\b KJ-I S2004 / Tiina Niklander; kalvot Auvo Häkkinen 7-2 KJ-I I S2004 / Tiina Niklander; kalvot Auvo Häkkinen 7-1
6 "$# % &'&)(+*,#.-/*10 2&)0 354 # & 6 n 8 6!8 6 n.6 6 8 6 8 8 KJ-I S2004 / Tiina Niklander; kalvot Auvo Häkkinen 7-3 88 o r.- 99 &[ö 22 99 -C& o 3 99 44 oo 99 2& 99 22 ; <>=/?A@CBEDGFCHVB MLMCeCORI@Q[MIMCORQQ\@L@Q DVKLKQ:@Q\FLFdH gglilowiloe^iolmimcorqq\@coe^iols FIQ\FVFf?AMCHFCOE^LFCHF prosessin paikka muistissa vaihtelee, sillä ei vaikutusta osoitemuunnokseen MMU ; ^bilorqq\@cb @L@VMd=/?A@CBEDGFLF ILOcSTKLOEHF Q\FCO ^LbLbCHQ:bf?Ab?AFC^FLFVMd=/?A@CBEDGFCH I@LeCDG@dHQQ\@COE=LOEH?AMQ:^LF S MCOIO?AMCORQ\@CBEB F+S FC]FCFIQ:OCDVKLOWIQ:O OEH KJ:n kirjanpito osien sijainnista prosessin sivutaulussa tai segmenttitaulussa KJ-I S2004 / Tiina Niklander; kalvot Auvo Häkkinen 7-4 KJ-I I S2004 / Tiina Niklander; kalvot Auvo Häkkinen 7-2
88 o r.- 99 &[ö 22 99 -C& o 3 99 44 oo 99 2& 99 22 ; [FCOE^L^LO @dhjiozstk/?a@ch I@LeCDG@dHQQ:O @CHG@COQ\FCN STORQI@VMCB B F DVKLORIQ:ORIXIF gt=q\blfcoe^flf riittää, että suoritettava osa ja sen data muistissa paikallisuus, suoritus viihtyy samoilla alueilla ks. kuva 8.1 ; `FCORQQ\@CORIQ\M?AF =LKMCB @d=q:ozs FQ L@QQ:b Q\FdN STORQQ\FlS FQ[MIFQ[MCOE^@LFLFdHGFCOE^FLFdHVDVKLORIXQ:ORIIF MMU huomaa puuttumisen KJ noutaa muistiin OENUQ:KFLFCBEOEDVKLORIQ:O KJ-I S2004 / Tiina Niklander; kalvot Auvo Häkkinen 7-5 88 o r.- 99 &[ö 22 99 -C& o 3 99 44 oo 99 2& 99 22 ; Y'OZSTK I@LeCDG@CHQ\Q:ORQ\FCKLBEKLHGFCBE^LO MIIF B bilhbcmcb MLORQQ:O?AMIQ\F^blg OEBEDGOLMCHL^MGILOZSTKlI@LeCDG@CHQQ:OCDVKLORIQ:ORIXIF ; `FQ\FLFf?AFGQ KMVFCBEKL^ILOCDVKLORIQ\OEOEH S FCOEHVDVKLKQ:FCDGFCHJILOZSTKLH I@LeCDG@CHQ:OEH @CHCHFCBRQ\FCHLMCKQ\M Q\FCOL@COlgT=Q\bLbCH Q:FCN S @CHMCKQ:M ; dnmi@ixilo EB B @ E=LKCHJIOZSTK I@LeCDG@dHQQ:ORQ\FdKLBEKLH ggliloeh@chvdvkloriq:o MIMCORQ\@ _[`LaEH ILORIbCB B mchvdvorq\bq\mcoehq:o KJ-I S2004 / Tiina Niklander; kalvot Auvo Häkkinen 7-6 KJ-I I S2004 / Tiina Niklander; kalvot Auvo Häkkinen 7-3
oö &r 2 0 2 0 % &d% 2 (memory / page fault) ; dmihstoeorq\fqq:kgmimcorq\@v@colmcb @DVKLOWIQ:ORIXIF.FCOE=@dKQQ\FCF^@IL^@lglQAgT^I@CH ; VILO OENUQ\bLb^L@IL^@lglQAgT^I@CHGFCOE=@CKQQ:FCH@C@CH ]LNMI@IIOEH )ab M C^L@Li EQ:OEB FLFCH ; @QILOEOILOcSTKLBEB @ I@LeCDG@CHQ:OEBEB @ S FC]FCFCHV]FCOE^LFCHVDVKLORIQ:ORIQ\F ; ^blgthlhloriq\blbvmd=/?afcoedg@chjiloeoenuq\bcdgblbch ]CKLKQQ K S FLFGILOcSTKF I@LeCDG@dHQQ:O F^M C]FCOE^C^FLFdH ; Y'OEOENN MCHGFCOE^LFCHF ILKMCNORQQ\FLF DVKLORQ\F]CN MI@II@f?AF KJ-I S2004 / Tiina Niklander; kalvot Auvo Häkkinen 7-7 oö &r 2 0 2 0 % &d% 2 ; KLHJILOEOENUQ\M S FCBEDGORI LMC=/?AFCOEHV^@IL^@lglQQ\bCb ILKMCNORQ:KC^I@IXIFVMCB @ls FCHV]LN MI@IILOEHa ; ]bcozstorqq\blb]lnmi@ixiloeh ILOcSTKZI@LeCDG@CHQ\Q:ORQ\FCKLBEKLH?AFGILO OENUQ\bLb]CN MI@IIOEH '@LFLilg EQ\OEB FLFCH ; YKMCNORQ:KIV]FCB FLFGQ\Fd^FCORILOEHV]LN MI@IXILOEOEHa ; KLHV]LNMI@IIO Q\FLFIGFCOE^FCHLFLFCHJILKMCNORQ:KL^I@L@dH I@ STO ORQQ\FLFKCKiL@IQ\FLFdHGbIL^@CORI@L@CHGMIMCORQQ\@C@I@L@CH nyt viitatun mp:n sisältö muistissa KJ-I S2004 / Tiina Niklander; kalvot Auvo Häkkinen 7-8 KJ-I I S2004 / Tiina Niklander; kalvot Auvo Häkkinen 7-4
99 -C&[o 3 99 44 oo 99 2& 99 qq 0 &[o ** ; KLORIQ:O F^blglQ\@Q\bCbCHJQ\@d=MC^C^FLFCDVDVOEHV= gs bc^ilo kustakin prosessista vain tarvittava osa muistissa montako sivua/prosessi pidetään muistissa yhtäaikaa? lokaalit ja globaalit algoritmit ; dnmi@iximcno F^blglQ\@Q:bLbCH U^@CHQ:O @I Q\@d=MC^C^FLFCDVDVOEH moniajoastetta voi nostaa muistiin mahtuu paremmin, ei ruuhkautumista KJ-I S2004 / Tiina Niklander; kalvot Auvo Häkkinen 7-9 99 -C&[o 3 99 44 oo 99 2& 99 qq 0 &[o ** ; MCOLFf?AFLF gglioriq\bdvklowiq:o FGILKLKLN @CDV]LO F Md=/?A@CBEDVO F ohjelmoijan ei tarvitse huolehtia kerrostuksesta ; <[IMCORQ\@LFlS FCNKCKIhS MCOLMCB B F S FCBRQ\FCORIF+S @CNN FQQ:KCHF Q\MCiL@CBEBEORI@L@CHVDVKLORIQ:OEHVDGbLbCN blbch esim. 32 bittiä => 4GB:n osoiteavaruus hyöty? ; `MLMLeCOEHL@CHGMIMCORQ\@LFlS FCN\KLKI IFLFGILOWIbCBRQ\bLb N @COE^LO bd^loeh vain tarvittavat osat kuvataan fyysiseen muistiin KJ-I S2004 / Tiina Niklander; kalvot Auvo Häkkinen 7-10 KJ-I I S2004 / Tiina Niklander; kalvot Auvo Häkkinen 7-5
6 "$# % &'&)(+*,#.-/*10 2&)0 354 # & 6 8 6!8 KJ-I S2004 / Tiina Niklander; kalvot Auvo Häkkinen 7-11 89.ö &[o 2 Kuva 7.11 KJ-I S2004 / Tiina Niklander; kalvot Auvo Häkkinen 7-12 KJ-I I S2004 / Tiina Niklander; kalvot Auvo Häkkinen 7-6
89.ö && o3o ; dmc^fcori@cbeb F]LN MI@IIOEBEB FVMCDGFJILOZSTKQ\FCKLBEK missä sivutiloissa tämän prosessin sivut sijaitsevat ; dmc^fcori@iifvfcbe^lo MIXIFB bilhblmcb MLORQQ:O =1: sivu muistissa, alkiossa sivutilan numero =0: sivu ei muistissa, alkiossa esim. tieto missä sivu sijaitsee tukimuistissa (suoraan/epäsuorasti) KJ-I S2004 / Tiina Niklander; kalvot Auvo Häkkinen 7-13 89.ö && o3o ; dmc^fcori@iifjilocstkq\fcklbekchgfcbe^lo MIIF DVKCKQ\@QQ K LORQQ:O DGMLiCO O @Ci M=1: sivun sisältö muuttunut muistissa, sivu kirjoitettava levylle, jos varaus vapautetaan M=0: sivua ei muutettu, ei tarvitse kirjoittaa levylle sivutilaa vapautettaessa ; Y'OZSTKQ\FCKLBEKCHGFCBE^LO MIIFDGFC=ï CD+g mivdvklkq\fgq:o @Q:MLF käyttötapabitti: R / RW suojaustasobitti/bitit: KJ:n sivu / tav. prosessin sivu milloin sivuun viitattu viimeeksi tai viitelaskuri poistoalgoritmit tarvitsevat näitä KJ-I S2004 / Tiina Niklander; kalvot Auvo Häkkinen 7-14 KJ-I I S2004 / Tiina Niklander; kalvot Auvo Häkkinen 7-7
2 r 99 &)0.4 oopqq r 2 ; dnmi@ixilo @CHJILOcSTKQ\FCKLBEKQ)Q\FlS FCBEBEORI@IQ:O @CNOC^Md^MCORILO F?AF+S MCOZS FQ[MCB B FGILKLKLNO F koko riippuu sivukoosta ja ohjelman koosta koko taululle ei voi varata tilaa MMU:sta sivutaulu muistissa ja osa jopa levyllä sivutaulun fyysinen osoite CB:ssä ; RIIFJILOcSTKQ\FCKLBEKLN@C^LORIQ\@CNOL_?AMIIFJILKMCNORQ\@Q\Q\FlS FCHV]LNMI@IXILOEH ILOZSTKQ\FCKLBEKLH gglioeh@chgfcbe^ckmimcorq\@ KJ-I S2004 / Tiina Niklander; kalvot Auvo Häkkinen 7-15 2 r 99 &)0.4 oopqq r 2 ;?AFC^FCFB MLMLeCORI@CHGMIMCORQQ\@L@CHV]LFCNOE^IO EILOZSTKLHLN M RILOEOENUQ gtdgb Esim. kun sivukoko 1024 B (= 2 10 ) 10 viimeistä bittiä siirtymä alkuosa sivunumero ; ^MCN S FCFGIOZSTKLHLKLDG@CNM LORQ:ORQILOcSTKQ\FdKLBEKIQ\F B mlglqags OEBEB bjilocstkq:oeb FCHLHLKLDV@CN M LORQ\@COEBEB b ts. MMU katenoi sivutilanumeron ja siirtymän bitit ; [@CBE]L]LMB FCORQ\@Q\MCOEDVOEHQ\M KJ-I S2004 / Tiina Niklander; kalvot Auvo Häkkinen 7-16 KJ-I I S2004 / Tiina Niklander; kalvot Auvo Häkkinen 7-8
n rr 99 q 0 q 2 G%% 2 99 q 0 q rp2 r 99 &)0 Kuva 7.12 KJ-I S2004 / Tiina Niklander; kalvot Auvo Häkkinen 7-17 2 r 99 &)0.4 oopqq r 2 KJ-I S2004 / Tiina Niklander; kalvot Auvo Häkkinen 7-18 KJ-I I S2004 / Tiina Niklander; kalvot Auvo Häkkinen 7-9
6 "$# % &'&)(+*,#.-/*10 2&)0 354 # & 6 2 r 9 &)0.4 oopqq r 2 pö 2 op- 9 n KJ-I S2004 / Tiina Niklander; kalvot Auvo Häkkinen 7-19 2 r 99 &)0.4 oopqq r 2 pö 2 op- 99 n ; [MIL^FGILOcSTKQ\FdKLBEKVDVKLORIQ\ORIXIF f?amc^fcori@l@ch DVKCKLHLHLMC^I@L@CHVHLblglQQ\bCORILOLBEO ORQQAgS bch gt^ilo gtb OEDGbLbCNbCOEH@CHVDVKLORIQ:OEHMCKQ:M hae sivutaulun alkio MMU:hun tee osoitemuunnos nouda / talleta ko. fyysiseen osoitteeseen ; 'FQ ^FCORILK MIMCORQ\@CDVKLKLHLHLMIL]LKIL^LKLNO_)`La Translation Lookaside Buffer ; ]LORQ\bLbGQ:FCBEB @IXIFV@LiL@CBEBEORIORIXIbDVKLKLHLHLMC^ILORIXIF Q\FdN STORQ:KQILOZSTKQ\FCKLBEKLHJQ:O @LiCMQ paikallisuus: sitä tarvitaan het kohta uudestaan sivutaulun alkiota ei tarvitse noutaa joka kerta KJ-I S2004 / Tiina Niklander; kalvot Auvo Häkkinen 7-20 KJ-I I S2004 / Tiina Niklander; kalvot Auvo Häkkinen 7-10
&'2 99 q &# n t 2&)# ; _[`LapHMC]@CO ic@chvn @C^LORIQ\@CN@CO il@ch?amckc^l^m esim. 32 rekisteriä ; [blglqq\blbvfiimilo FQ:OEOcSTOWIQ\F=FC^CKF vertailu kohdistuu kaikkiin alkioihin yhtäaikaa etsintä nopeaa laitetoiminto! ; [FCOE^LOEBEB F]LN MI@II@CO BEB FJILOcSTKQ DVKQ\Q\FV@CNOILOcSTKQ:OEB MCOWIIF TLB tyhjennettävä prosessin vaihdossa ; _[`LaEHGFCBE^LO MIXIF FCOEHFd^LOEH ILOZSTKLHLN M IOZSTKQ\FCKLBEKLHGFCBE^LO M ls FCBEO ico LORQQ:O KJ-I S2004 / Tiina Niklander; kalvot Auvo Häkkinen 7-21 &'2 99 q &# n t 2&)# KJ-I S2004 / Tiina Niklander; kalvot Auvo Häkkinen 7-22 KJ-I I S2004 / Tiina Niklander; kalvot Auvo Häkkinen 7-11
erform page replacement n ** r 2 r 99 &0.4 ooqpq r 2 sivunro = loog. osoitteen alkubitit siirtymä = loog. osoitteen loppubitit Jos sivun tiedot ei TLB:ssä tai V=0, nouda TLB:hen sivutaulun alkio osoitteesta TR + sivunro Jos =0, aiheuta sivunpuutoskeskeytys Fyys.os = Katenoi(Sivutilanro,Siirtymä) ; KLHV^L@IL^@lglQAg IV^bILORQ\@CBRQAg JIFCDGFVMIMCORQ@ Q:KLB @C@ STO ORQ\FQQ\FlS FC^ILOCKLKiC@CBEB @L@CH Esim. C:n kasvatus vasta osoitemuunnoksen jälkeen KJ-I S2004 / Tiina Niklander; kalvot Auvo Häkkinen 7-24 KJ-I I S2004 / Tiina Niklander; kalvot Auvo Häkkinen 7-12
! KJ-I S2004 / Tiina Niklander; kalvot Auvo Häkkinen 7-25 #" $%& '(& ) *,+.-0/.+214365879.767:<;=:'>.3?12/292//.5@;=:45BA7+.+.C D(E.FG -H;=:4-.A.:I/.5J/2K4L87M'NO587K27M4587K<;=K TR osoittamaan uuden prosessin sivutauluun nollattava TLB:n alkioiden validibitit V=0 ) *(12/.Q2: DRE.F /.+.A79494LBLB5J/294-O>.5S94-.5BC 7:T3U;V587:.:4-0/214>.5W;=:OLS:4587927:2/21T-I:4LSX.1436587NO5BC Y 14-4Q2:'>2943+/79.94LBLS:Z;=:4LB587:.:4-OQ2143U;=:2767:<;=:I:4LBQ.5S1 TLB:n alkiossa mahd. myös laitetason viitelaskureita: poista se, jota ei ole aikoihin käytetty KJ-I S2004 / Tiina Niklander; kalvot Auvo Häkkinen 7-26 KJ-I I S2004 / Tiina Niklander; kalvot Auvo Häkkinen 7-13
$% ', KJ-I S2004 / Tiina Niklander; kalvot Auvo Häkkinen 7-27 'R$ & $% ' KJ-I S2004 / Tiina Niklander; kalvot Auvo Häkkinen 7-28 KJ-I I S2004 / Tiina Niklander; kalvot Auvo Häkkinen 7-14
& $% ' ) 1T-2927 Y K43 Y 92/794LBNIK27R/2:4LBLB5 ;=:27R/.+.+.3?94- ;V5B3 7+2:.:4LB5S12/2145879.:<;=:43+.+ 494- looginen osoite esim. 32 tai 64 bittiä ) T14Q2:458/294LBLS:'>.3?12/292//25BLBLS:0/.+.+.3652/25W;V+7:4+.LB+ jos 32-bittinen osoite ja sivukoko 4KB (12 bittiä), niin sivuja 2 20 = 1M kappaletta jokainen alkio useita tavuja, esim. 4 B, joten sivutaulu 4 MB ) =M2/0/25W;V+7:4+.LB+ Y :.927:4:4-0/.5 ;V+.5BA.5B- Y : N =M2/ /.5W;V+7:4+.LB+.-I12/.5S:Z;=145.:.:4-O>.587K.K'LS9<; VLBLSK riittää, kun suorituksessa olevaan osaan liittyvät sivut muistissa KJ-I S2004 / Tiina Niklander; kalvot Auvo Häkkinen 7-29 % & $% "!$# &% ' ( ) LB5B-OA2:4Q294NO58/71'NI:4A7 +.+ VA79.94-0/.5W;V+.+2-.C > @/ ;=K2/75.NO+.58/75J//2: KJ-I S2004 / Tiina Niklander; kalvot Auvo Häkkinen 7-30 KJ-I I S2004 / Tiina Niklander; kalvot Auvo Häkkinen 7-15
% & $% KJ-I S2004 / Tiina Niklander; kalvot Auvo Häkkinen 7-31 ) E :4587679458/71 NIK4K43?K.K'NO587KI/.5 ;V+.Q214Q.1.: * G -OQ2K <79277K<;=K sivukoko aina 2:sen potenssi nopea osoitemuunnos katkaisu ja katenointi helppoa ) 587K'58/214NONI:27R/.5 ;V+7C/.587KI/25W;V+ Y : >.3?12/292//.5 pienempi sivutaulu vie vähemmän tilaa ison sivutaulun osia useammin levyllä enemmän keskeytyksiä KJ-I S2004 / Tiina Niklander; kalvot Auvo Häkkinen 7-32 KJ-I I S2004 / Tiina Niklander; kalvot Auvo Häkkinen 7-16
)T5S9T-.5 G :45BA294+767:.:Z;=K4A 2/258/2K45J/7K'>.5B3 /714+7+.NO58/7: ) S/21 G /258/2K4L87K.K'>2:4L Y 14-I92/.5BN 27:436>29.92714-7:'Q.1.1 45S: ) S/21 G /2:.:2767:.:I/214>.5S:'>.:43?94NONO5B- VA79.9T- LS9<; @/.5B5B3 71 Y 94-OQ2:4-//2: LS14A.Q.14Q21TQ21 hakuvarren siirto ja pyörähdysviive syö paljon aikaa ) S/21 G ;V5S58767:4+/O+/29.:4NONO5B-0/2:4NI:4LBLS9I/25W;V+.LSL89 TLB:n osumatodennäköisyys hyvä KJ-I S2004 / Tiina Niklander; kalvot Auvo Häkkinen 7-33 &R ' $ vähän sivupuutoksia "!#$%&%&')(+*,-+%.*( /10- %. /1((+%&.%2%30*( /1040( *%3( **. 5 ($!$4 5 ( paljon sivupuutoksia 670!*( /108,8,)-'9$*%;:: 5<,*$**(!8,8,.= vähän sivupuutoksia =prosessin koko KJ-I S2004 / Tiina Niklander; kalvot Auvo Häkkinen 7-34 KJ-I I S2004 / Tiina Niklander; kalvot Auvo Häkkinen 7-17
J J (.- ;,!8,*( /10 %3(-,;. 5 $ < 5<,*$**(,* /'9'! *( /10 %3(-+,;.= 6 9$( %&%''9$- 5,*%( 5,( * *( /10!=;,%.%. < /1(+%..! 5 (.! 00"!$--$$! paljon sivupuutoksia,**.. 5.- ;,!=!((!-'9$* 8.(88( *( /10 %74.9%30 /.% 40(+* %3((! vähän sivupuutoksia # lokaalit vs. globaalit algoritmit W = working set size N = total # of pages in process KJ-I S2004 / Tiina Niklander; kalvot Auvo Häkkinen 7-35 $ % &'& ( ) *,+.-0/21 /43536/4758:9<;<=>-:= =?;@1:/BADC 8:E08 E6FGIH J ks. myös taulukko 8.2 ) K903695-0/:1:ELAM-0+4+4C58:N0/48 8 /4/47O=>N0 Q -0/21 /./47 R -0 9 9:=SQ E:1:-:1T1:E0 /2=1:N0+4+./BAMN:=SCU1:-0/2=>NO1 /VADC 8 E08:EXW?N entium sallii 2 kokoa: 4KB tai 4MB MIS peräti 7 eri koko: 4KB..16MB ) Miten MMU tietää mitä kokoa käyttää? KJ-I S2004 / Tiina Niklander; kalvot Auvo Häkkinen 7-36 KJ-I I S2004 / Tiina Niklander; kalvot Auvo Häkkinen 7-18
KJ-I S2004 / Tiina Niklander; kalvot Auvo Häkkinen 7-37 KJ-I I S2004 / Tiina Niklander; kalvot Auvo Häkkinen 7-19