Networks and Operang Systems Chapter 16: Demand Paging · Networks and Operang Systems Chapter 16:...

61
Networks and Opera/ng Systems Chapter 16: Demand Paging (252‐0062‐00) Donald Kossmann & Torsten Hoefler Frühjahrssemester 2013 © Systems Group | Department of Computer Science | ETH Zürich

Transcript of Networks and Operang Systems Chapter 16: Demand Paging · Networks and Operang Systems Chapter 16:...

Page 1: Networks and Operang Systems Chapter 16: Demand Paging · Networks and Operang Systems Chapter 16: Demand Paging (252‐0062‐00) Donald Kossmann & Torsten Hoefler Frühjahrssemester

NetworksandOpera/ngSystemsChapter16:DemandPaging

(252‐0062‐00)DonaldKossmann&TorstenHoefler

Frühjahrssemester2013

©SystemsGroup|DepartmentofComputerScience|ETHZürich

Page 2: Networks and Operang Systems Chapter 16: Demand Paging · Networks and Operang Systems Chapter 16: Demand Paging (252‐0062‐00) Donald Kossmann & Torsten Hoefler Frühjahrssemester

Last/me

•  Base+Limitregisters•  Segmenta/on

•  Paging•  Pageprotec/on•  Pagesharing•  Pagetablestructures•  TLBshootdown

Page 3: Networks and Operang Systems Chapter 16: Demand Paging · Networks and Operang Systems Chapter 16: Demand Paging (252‐0062‐00) Donald Kossmann & Torsten Hoefler Frühjahrssemester

Today

•  Usesforvirtualmemory•  Copy‐on‐write•  Demandpaging– Pagefaulthandling– Pagereplacementalgorithms– Framealloca/onpolicies

– Thrashingandworkingset

Page 4: Networks and Operang Systems Chapter 16: Demand Paging · Networks and Operang Systems Chapter 16: Demand Paging (252‐0062‐00) Donald Kossmann & Torsten Hoefler Frühjahrssemester

Recap:VirtualMemory

•  Userlogicalmemory≠physicalmemory.– OnlypartoftheprogrammustbeinRAMforexecu/on⇒Logicaladdressspacecanbelargerthanphysicaladdressspace

– Addressspacescanbesharedbyseveralprocesses– Moreefficientprocesscrea/on

•  Virtualizememoryusingso^ware+hardware

Page 5: Networks and Operang Systems Chapter 16: Demand Paging · Networks and Operang Systems Chapter 16: Demand Paging (252‐0062‐00) Donald Kossmann & Torsten Hoefler Frühjahrssemester

Themanyusesofaddresstransla/on

•  Processisola/on•  IPC•  Sharedcodesegments•  Programini/aliza/on

•  Efficientdynamicmemoryalloca/on

•  Cachemanagement

•  Programdebugging•  EfficientI/O

•  Memorymappedfiles•  Virtualmemory

•  Checkpointandrestart•  Persistentdatastructures•  Processmigra/on•  Informa/onflowcontrol•  Distributedshared

memoryandmanymore…

Page 6: Networks and Operang Systems Chapter 16: Demand Paging · Networks and Operang Systems Chapter 16: Demand Paging (252‐0062‐00) Donald Kossmann & Torsten Hoefler Frühjahrssemester

Copy‐on‐write(COW)

Page 7: Networks and Operang Systems Chapter 16: Demand Paging · Networks and Operang Systems Chapter 16: Demand Paging (252‐0062‐00) Donald Kossmann & Torsten Hoefler Frühjahrssemester

Recallfork()

•  Canbeexpensivetocreateacompletecopyoftheprocess’addressspace– Especiallyjusttodoexec()!

•  vfork():sharesaddressspace,doesn’tcopy– Fast– Dangerous–twowriterstosameheap

•  Bejer:onlycopywhenyouknowsomethingisgoingtogetwrijen

Page 8: Networks and Operang Systems Chapter 16: Demand Paging · Networks and Operang Systems Chapter 16: Demand Paging (252‐0062‐00) Donald Kossmann & Torsten Hoefler Frühjahrssemester

Copy‐on‐Write

•  COWallowsbothparentandchildprocessestoini/allysharethesamepagesinmemory

Ifeitherprocessmodifiesasharedpage,onlythenisthepagecopied

•  COWallowsmoreefficientprocesscrea/onasonlymodifiedpagesarecopied

•  Freepagesareallocatedfromapoolofzeroed‐outpages

Page 9: Networks and Operang Systems Chapter 16: Demand Paging · Networks and Operang Systems Chapter 16: Demand Paging (252‐0062‐00) Donald Kossmann & Torsten Hoefler Frühjahrssemester

Example:processessharinganareaofmemory

pageA

pageB

pageC

Process1 physicalmemory

Process2

Notnecessarilythesamevirtual

addresses(butwouldbea^erfork())

Page 10: Networks and Operang Systems Chapter 16: Demand Paging · Networks and Operang Systems Chapter 16: Demand Paging (252‐0062‐00) Donald Kossmann & Torsten Hoefler Frühjahrssemester

Howdoesitwork?

•  Ini/allymarkallpagesasread‐only•  Eitherprocesswrites⇒pagefault– Faulthandlerallocatesnewframe– Makescopyofpageinnewframe– Mapseachcopyintoresp.processeswriteable

•  Onlymodifiedpagesarecopied– Lessmemoryusage,moresharing– Costispagefaultforeachmutatedpage

Page 11: Networks and Operang Systems Chapter 16: Demand Paging · Networks and Operang Systems Chapter 16: Demand Paging (252‐0062‐00) Donald Kossmann & Torsten Hoefler Frühjahrssemester

A^erprocess1writestopageC

pageA

pageB

pageC

Process1 physicalmemory

Process2

copyofpageC

S/llread‐only

Nowwriteable

Page 12: Networks and Operang Systems Chapter 16: Demand Paging · Networks and Operang Systems Chapter 16: Demand Paging (252‐0062‐00) Donald Kossmann & Torsten Hoefler Frühjahrssemester

Generalprinciple

•  MarkaVPNasinvalidorreadonly⇒trapindicatesajempttoreadorwrite

•  Onapagefault,changemappingssomehow•  Restartinstruc/on,asifnothinghadhappened

•  General:allowsemula-onofmemoryaswellasmul-plexing.–  E.g.on‐demandzero‐fillingofpages– And…

Page 13: Networks and Operang Systems Chapter 16: Demand Paging · Networks and Operang Systems Chapter 16: Demand Paging (252‐0062‐00) Donald Kossmann & Torsten Hoefler Frühjahrssemester

Pagingconcepts

page0

page1

page2

page3

pagev

virtualaddressspace

pagetablephysicaladdressspace

disk

Page 14: Networks and Operang Systems Chapter 16: Demand Paging · Networks and Operang Systems Chapter 16: Demand Paging (252‐0062‐00) Donald Kossmann & Torsten Hoefler Frühjahrssemester

Pagingconcepts

page0

page1

page2

page3

pagev

virtualaddressspace

pagetablephysicaladdressspace

disk

memory‐residentpage

Page 15: Networks and Operang Systems Chapter 16: Demand Paging · Networks and Operang Systems Chapter 16: Demand Paging (252‐0062‐00) Donald Kossmann & Torsten Hoefler Frühjahrssemester

Pagingconcepts

page0

page1

page2

page3

pagev

virtualaddressspace

pagetablephysicaladdressspace

disk

Keeptrackofwherepagesareondisk

Page 16: Networks and Operang Systems Chapter 16: Demand Paging · Networks and Operang Systems Chapter 16: Demand Paging (252‐0062‐00) Donald Kossmann & Torsten Hoefler Frühjahrssemester

Pagingconcepts

page0

page1

page2

page3

pagev

virtualaddressspace

pagetablephysicaladdressspace

disk

Keeptrackofwherepagesareondisk

Write“dirty”pagesouttodisk

Page 17: Networks and Operang Systems Chapter 16: Demand Paging · Networks and Operang Systems Chapter 16: Demand Paging (252‐0062‐00) Donald Kossmann & Torsten Hoefler Frühjahrssemester

Pagingconcepts

page0

page1

page2

page3

pagev

virtualaddressspace

pagetablephysicaladdressspace

disk

Readinpagesfromdiskondemand

Page 18: Networks and Operang Systems Chapter 16: Demand Paging · Networks and Operang Systems Chapter 16: Demand Paging (252‐0062‐00) Donald Kossmann & Torsten Hoefler Frühjahrssemester

DemandPaging

•  Bringapageintomemoryonlywhenitisneeded– LessI/Oneeded– Lessmemoryneeded– Fasterresponse– Moreusers

•  TurnsRAMintoacacheforprocessesondisk!

Page 19: Networks and Operang Systems Chapter 16: Demand Paging · Networks and Operang Systems Chapter 16: Demand Paging (252‐0062‐00) Donald Kossmann & Torsten Hoefler Frühjahrssemester

DemandPaging

•  Pageneeded⇒reference(loadorstore)toit–  invalidreference⇒abort–  not‐in‐memory⇒bringtomemory

•  Lazyswapper–neverswapsapageintomemoryunlesspagewillbeneeded–  Swapperthatdealswithpagesisapager–  Candothiswithsegments,butmorecomplex

•  Strictdemandpaging:onlypageinwhenreferenced

Page 20: Networks and Operang Systems Chapter 16: Demand Paging · Networks and Operang Systems Chapter 16: Demand Paging (252‐0062‐00) Donald Kossmann & Torsten Hoefler Frühjahrssemester

PageFault•  Ifthereisareferencetoapage,firstreferenceto

thatpagewilltraptoopera/ngsystem:pagefault1. Opera/ngsystemlooksatanothertabletodecide:

–  Invalidreference⇒abort–  Justnotinmemory

2. Getemptyframe3.  Swappageintoframe4.  Resettables5.  Setvalida/onbit=v6.  Restarttheinstruc/onthatcausedthepagefault

Page 21: Networks and Operang Systems Chapter 16: Demand Paging · Networks and Operang Systems Chapter 16: Demand Paging (252‐0062‐00) Donald Kossmann & Torsten Hoefler Frühjahrssemester

Recall:handlingapagefault

1)ProcessorsendsvirtualaddresstoMMU

2‐3)MMUfetchesPTEfrompagetableinmemory

4)Validbitiszero,soMMUtriggerspagefaultexcep/on

5)Handlerfindsaframetouseformissingpage

6)HandlerpagesinnewpageandupdatesPTEinmemory

7)Handlerreturnstooriginalprocess,restar/ngfaul/nginstruc/on

MMU Cache/Memory

CPUVA

CPUChip PTEA

PTE

1

2

3

4

Disk

Pagefaulthandler

Newpage

Excep/on

65

7

Page 22: Networks and Operang Systems Chapter 16: Demand Paging · Networks and Operang Systems Chapter 16: Demand Paging (252‐0062‐00) Donald Kossmann & Torsten Hoefler Frühjahrssemester

Performanceofdemandpaging

•  PageFaultRate0≤p≤1.0–  ifp=0nopagefaults–  ifp=1,everyreferenceisafault

•  Effec/veAccessTime(EAT) EAT=(1–p)xmemoryaccess +p(pagefaultoverhead +swappageout +swappagein +restartoverhead

)

Page 23: Networks and Operang Systems Chapter 16: Demand Paging · Networks and Operang Systems Chapter 16: Demand Paging (252‐0062‐00) Donald Kossmann & Torsten Hoefler Frühjahrssemester

Demandpagingexample

•  Memoryaccess/me=200nanoseconds

•  Averagepage‐faultservice/me=8milliseconds

•  EAT=(1–p)x200+p(8milliseconds)=(1–p)x200+px8,000,000

=200+px7,999,800

•  Ifoneaccessoutof1,000causesapagefault,thenEAT=8.2microseconds.Thisisaslowdownbyafactorof40!!

Page 24: Networks and Operang Systems Chapter 16: Demand Paging · Networks and Operang Systems Chapter 16: Demand Paging (252‐0062‐00) Donald Kossmann & Torsten Hoefler Frühjahrssemester

PageReplacement

Page 25: Networks and Operang Systems Chapter 16: Demand Paging · Networks and Operang Systems Chapter 16: Demand Paging (252‐0062‐00) Donald Kossmann & Torsten Hoefler Frühjahrssemester

Whathappensifthereisnofreeframe?

•  Pagereplacement–find“lijleused”residentpagetodiscardorwritetodisk– “vic/mpage”– algorithm– performance–wantanalgorithmwhichwillresultinminimumnumberofpagefaults

•  Samepagemaybebroughtintomemoryseveral/mes

Page 26: Networks and Operang Systems Chapter 16: Demand Paging · Networks and Operang Systems Chapter 16: Demand Paging (252‐0062‐00) Donald Kossmann & Torsten Hoefler Frühjahrssemester

Pagereplacement

•  Trytopickavic/mpagewhichwon’tbereferencedinthefuture– Variousheuris/cs–butul/matelyit’saguess

•  Use“modify”bitonPTE– Don’twrite“clean”(unmodified)pagetodisk– Trytopick“clean”pagesover“dirty”ones(saveadiskwrite)

Page 27: Networks and Operang Systems Chapter 16: Demand Paging · Networks and Operang Systems Chapter 16: Demand Paging (252‐0062‐00) Donald Kossmann & Torsten Hoefler Frühjahrssemester

Pagereplacement

vic/m

Physicalmemory

0f

iv

Pagetable

framevalid

f

Page 28: Networks and Operang Systems Chapter 16: Demand Paging · Networks and Operang Systems Chapter 16: Demand Paging (252‐0062‐00) Donald Kossmann & Torsten Hoefler Frühjahrssemester

Pagereplacement

vic/m

Physicalmemory

0f

iv

Pagetable

framevalid

f

1.Swapvic/mpagetodisk

Page 29: Networks and Operang Systems Chapter 16: Demand Paging · Networks and Operang Systems Chapter 16: Demand Paging (252‐0062‐00) Donald Kossmann & Torsten Hoefler Frühjahrssemester

Pagereplacement

vic/m

Physicalmemory

00

ii

Pagetable

framevalid

f

1.Swapvic/mpagetodisk

2.Changevic/mPTEtoinvalid

Page 30: Networks and Operang Systems Chapter 16: Demand Paging · Networks and Operang Systems Chapter 16: Demand Paging (252‐0062‐00) Donald Kossmann & Torsten Hoefler Frühjahrssemester

Pagereplacement

vic/m

Physicalmemory

00

ii

Pagetable

framevalid

f

3.Loaddesiredpageinfromdisk

Page 31: Networks and Operang Systems Chapter 16: Demand Paging · Networks and Operang Systems Chapter 16: Demand Paging (252‐0062‐00) Donald Kossmann & Torsten Hoefler Frühjahrssemester

Pagereplacement

vic/m

Physicalmemory

f0

vi

Pagetable

framevalid

f

3.Loaddesiredpageinfromdisk

4.ChangefaultPTEtovalid

Page 32: Networks and Operang Systems Chapter 16: Demand Paging · Networks and Operang Systems Chapter 16: Demand Paging (252‐0062‐00) Donald Kossmann & Torsten Hoefler Frühjahrssemester

Pagereplacementalgorithms•  Wantlowestpage‐faultrate

•  Evaluatealgorithmbyrunningitonapar/cularstringofmemoryreferences(referencestring)andcompu/ngthenumberofpagefaultsonthatstring

•  E.g.7,0,1,2,0,3,0,4,2,3,0,3,2,1,2,0,1,7,0,1

Page 33: Networks and Operang Systems Chapter 16: Demand Paging · Networks and Operang Systems Chapter 16: Demand Paging (252‐0062‐00) Donald Kossmann & Torsten Hoefler Frühjahrssemester

Pagefaultsvs.numberofframes

Whatwemightexpect…

Numberofframes

Num

berofpagefaults

Plentyofmemory:moredoesn’thelp

much

Verylijlememory:thrashing(see

later)

Page 34: Networks and Operang Systems Chapter 16: Demand Paging · Networks and Operang Systems Chapter 16: Demand Paging (252‐0062‐00) Donald Kossmann & Torsten Hoefler Frühjahrssemester

FIFO(First‐In‐First‐Out)pagereplacement

7 0 1 2 0 3 0 4 2 3 0 3 2 1 2 0 1 7 0 1

7 7 7 2 2 2 4 4 4 0 0 0 7 7 70 0 0 3 3 3 2 2 2 1 1 1 0 0

1 1 1 0 0 0 3 3 3 2 2 2 1

referencestring:

pageframes:

Here,15pagefaults.

Page 35: Networks and Operang Systems Chapter 16: Demand Paging · Networks and Operang Systems Chapter 16: Demand Paging (252‐0062‐00) Donald Kossmann & Torsten Hoefler Frühjahrssemester

5

2

3

4

5

1

3

4

5

1

2

4

5

1

2

3

4

1

2

3

4

5

2

3

Morememoryisbejer?Referencestring:1,2,3,4,1,2,5,1,2,3,4,5•  3frames(3pagescanbeinmemory):

•  4frames:

Belady’sAnomaly:moreframes⇒morepagefaults

9pagefaults

10pagefaults!

5

3

4

5

3

2

5

1

2

4

1

2

4

1

3

4

2

3

1

2

3

1

2

1

1 1

2

1

2

3

1

2

3

4

Page 36: Networks and Operang Systems Chapter 16: Demand Paging · Networks and Operang Systems Chapter 16: Demand Paging (252‐0062‐00) Donald Kossmann & Torsten Hoefler Frühjahrssemester

FIFOshowingBelady’sAnomalyNum

berofpagefaults

Numberofframes

Page 37: Networks and Operang Systems Chapter 16: Demand Paging · Networks and Operang Systems Chapter 16: Demand Paging (252‐0062‐00) Donald Kossmann & Torsten Hoefler Frühjahrssemester

1

2

3

4

1

2

3

5

Op/malalgorithm

Replacepagethatwillnotbeusedforlongestperiodof/me

4framesexample: 123412512345

Howdoyouknowthis?–youcan’t!Usedformeasuringhowwellyouralgorithmperforms

⇒6pagefaults

4

2

3

5

Page 38: Networks and Operang Systems Chapter 16: Demand Paging · Networks and Operang Systems Chapter 16: Demand Paging (252‐0062‐00) Donald Kossmann & Torsten Hoefler Frühjahrssemester

Op/malpagereplacement

7 0 1 2 0 3 0 4 2 3 0 3 2 1 2 0 1 7 0 1

7 7 7 2 2 2 2 2 70 0 0 0 4 0 0 0

1 1 3 3 3 1 1

referencestring:

pageframes:

Here,9pagefaults.

Page 39: Networks and Operang Systems Chapter 16: Demand Paging · Networks and Operang Systems Chapter 16: Demand Paging (252‐0062‐00) Donald Kossmann & Torsten Hoefler Frühjahrssemester

LeastRecentlyUsed(LRU)algorithm

•  Referencestring:123412512345

•  Counterimplementa/on–  Everypageentryhasacounter;every/mepageisreferenced

throughthisentry,copytheclockintothecounter–  Whenapageneedstobechanged,lookatthecountersto

determinewhicharetochange

5

2

4

3

1

2

3

4

1

2

5

4

1

2

5

3

1

2

4

3

Page 40: Networks and Operang Systems Chapter 16: Demand Paging · Networks and Operang Systems Chapter 16: Demand Paging (252‐0062‐00) Donald Kossmann & Torsten Hoefler Frühjahrssemester

LRUpagereplacement

7 0 1 2 0 3 0 4 2 3 0 3 2 1 2 0 1 7 0 1

7 7 7 2 2 4 4 4 0 1 1 10 0 0 0 0 0 3 3 3 0 0

1 1 3 3 2 2 2 2 2 7

referencestring:

pageframes:

Here,12pagefaults.

Page 41: Networks and Operang Systems Chapter 16: Demand Paging · Networks and Operang Systems Chapter 16: Demand Paging (252‐0062‐00) Donald Kossmann & Torsten Hoefler Frühjahrssemester

LRUalgorithm

•  Stackimplementa/on–keepastackofpagenumbersinadoublelinkform:–  Pagereferenced:

•  moveittothetop•  requires6pointerstobechanged

– Nosearchforreplacement

•  Generalterm:stackalgorithms– Havepropertythataddingframesalwaysreducespagefaults(noBelady’sAnomaly)

Page 42: Networks and Operang Systems Chapter 16: Demand Paging · Networks and Operang Systems Chapter 16: Demand Paging (252‐0062‐00) Donald Kossmann & Torsten Hoefler Frühjahrssemester

2

1

0

7

4

7

2

1

0

4

Useastacktorecordmostrecentpagereferences

4 7 0 7 1 0 1 2 1 2 7 1 2

Referencestring

Page 43: Networks and Operang Systems Chapter 16: Demand Paging · Networks and Operang Systems Chapter 16: Demand Paging (252‐0062‐00) Donald Kossmann & Torsten Hoefler Frühjahrssemester

LRUapproxima/onalgorithms

•  Referencebit–  Witheachpageassociateabit,ini/ally=0–  Whenpageisreferencedbitsetto1–  Replacetheonewhichis0(ifoneexists)

•  Wedonotknowtheorder,however

•  Secondchance–  Needreferencebit–  Clockreplacement–  Ifpagetobereplaced(inclockorder)hasreferencebit=1then:

•  setreferencebit0•  leavepageinmemory•  replacenextpage(inclockorder),subjecttosamerules

Page 44: Networks and Operang Systems Chapter 16: Demand Paging · Networks and Operang Systems Chapter 16: Demand Paging (252‐0062‐00) Donald Kossmann & Torsten Hoefler Frühjahrssemester

Second‐chance(clock)pagereplacementalgorithm

0

0

1

1

0

1

1…

Circularqueueof

pages

Referencebits

Nextvic/m(“clockhand”)

Page 45: Networks and Operang Systems Chapter 16: Demand Paging · Networks and Operang Systems Chapter 16: Demand Paging (252‐0062‐00) Donald Kossmann & Torsten Hoefler Frühjahrssemester

Second‐chance(clock)pagereplacementalgorithm

0

0

1

1

0

1

1…

Circularqueueof

pages

Referencebits

Nextvic/m(“clockhand”)

Page 46: Networks and Operang Systems Chapter 16: Demand Paging · Networks and Operang Systems Chapter 16: Demand Paging (252‐0062‐00) Donald Kossmann & Torsten Hoefler Frühjahrssemester

Second‐chance(clock)pagereplacementalgorithm

0

0

0

1

0

1

1…

Circularqueueof

pages

Referencebits

Nextvic/m(“clockhand”)

Page 47: Networks and Operang Systems Chapter 16: Demand Paging · Networks and Operang Systems Chapter 16: Demand Paging (252‐0062‐00) Donald Kossmann & Torsten Hoefler Frühjahrssemester

Second‐chance(clock)pagereplacementalgorithm

0

0

0

0

0

1

1…

Circularqueueof

pages

Referencebits

Nextvic/m(“clockhand”)

Page 48: Networks and Operang Systems Chapter 16: Demand Paging · Networks and Operang Systems Chapter 16: Demand Paging (252‐0062‐00) Donald Kossmann & Torsten Hoefler Frühjahrssemester

Framealloca/onpolicies

Page 49: Networks and Operang Systems Chapter 16: Demand Paging · Networks and Operang Systems Chapter 16: Demand Paging (252‐0062‐00) Donald Kossmann & Torsten Hoefler Frühjahrssemester

Alloca/onofframes

•  Eachprocessneedsminimumnumberofpages

•  Example:IBM370–6pagestohandleSSMOVEinstruc/on:–  instruc/onis6bytes,mightspan2pages

–  2pagestohandlefrom–  2pagestohandleto

•  Twomajoralloca/onschemes–  fixedalloca/on–  priorityalloca/on

Page 50: Networks and Operang Systems Chapter 16: Demand Paging · Networks and Operang Systems Chapter 16: Demand Paging (252‐0062‐00) Donald Kossmann & Torsten Hoefler Frühjahrssemester

Fixedalloca/on

•  Equalalloca/on–  allprocessesgetequalshare.

•  Propor/onalalloca/on–  Allocateaccordingtothesizeofprocess

Page 51: Networks and Operang Systems Chapter 16: Demand Paging · Networks and Operang Systems Chapter 16: Demand Paging (252‐0062‐00) Donald Kossmann & Torsten Hoefler Frühjahrssemester

Priorityalloca/on

•  Propor/onalalloca/onscheme•  Usingpriori/esratherthansize

•  IfprocessPigeneratesapagefault,select:1.  oneofitsframes,or2.  framefromaprocesswithlowerpriority

Page 52: Networks and Operang Systems Chapter 16: Demand Paging · Networks and Operang Systems Chapter 16: Demand Paging (252‐0062‐00) Donald Kossmann & Torsten Hoefler Frühjahrssemester

Globalvs.localalloca/on•  Globalreplacement–processselectsareplacementframefromthesetofallframes;oneprocesscantakeaframefromanother

•  Localreplacement–eachprocessselectsfromonlyitsownsetofallocatedframes

Page 53: Networks and Operang Systems Chapter 16: Demand Paging · Networks and Operang Systems Chapter 16: Demand Paging (252‐0062‐00) Donald Kossmann & Torsten Hoefler Frühjahrssemester

Thrashing•  Ifaprocessdoesnothave“enough”pages,thepage‐faultrateisveryhigh.Thisleadsto:–  lowCPUu/liza/on–  opera/ngsystemthinksthatitneedstoincreasethedegreeofmul/programming

–  anotherprocessaddedtothesystem

•  Thrashing≡aprocessisbusyswappingpagesinandout

Page 54: Networks and Operang Systems Chapter 16: Demand Paging · Networks and Operang Systems Chapter 16: Demand Paging (252‐0062‐00) Donald Kossmann & Torsten Hoefler Frühjahrssemester

ThrashingUsefulCPU

u/liza/

on

Demandforvirtualmemory

Thrashingbegins!

Page 55: Networks and Operang Systems Chapter 16: Demand Paging · Networks and Operang Systems Chapter 16: Demand Paging (252‐0062‐00) Donald Kossmann & Torsten Hoefler Frühjahrssemester

Demandpagingandthrashing

•  Whydoesdemandpagingwork?Localitymodel– Processmigratesfromonelocalitytoanother– Locali/esmayoverlap

•  Whydoesthrashingoccur?Σsizeoflocality>totalmemorysize

Page 56: Networks and Operang Systems Chapter 16: Demand Paging · Networks and Operang Systems Chapter 16: Demand Paging (252‐0062‐00) Donald Kossmann & Torsten Hoefler Frühjahrssemester

Localityinamemoryreferencepajern

Page 57: Networks and Operang Systems Chapter 16: Demand Paging · Networks and Operang Systems Chapter 16: Demand Paging (252‐0062‐00) Donald Kossmann & Torsten Hoefler Frühjahrssemester

Working‐setmodel

•  Δ ≡working‐setwindow≡afixednumberofpagereferences

–  Example:10,000instruc/on

•  WSSi(workingsetofProcessPi)=totalnumberofpagesreferencedinthemostrecentΔ(variesin/me)– Δtoosmall⇒willnotencompassen/relocality– Δtoolarge⇒willencompassseverallocali/es– Δ=∞⇒willencompassen/reprogram

Page 58: Networks and Operang Systems Chapter 16: Demand Paging · Networks and Operang Systems Chapter 16: Demand Paging (252‐0062‐00) Donald Kossmann & Torsten Hoefler Frühjahrssemester

Allocatedemandframes

•  D=ΣWSSi≡totaldemandframes–  Intui/on:howmuchspaceisreallyneeded

•  D>m⇒Thrashing

•  Policy:ifD>m,suspendsomeprocesses

Page 59: Networks and Operang Systems Chapter 16: Demand Paging · Networks and Operang Systems Chapter 16: Demand Paging (252‐0062‐00) Donald Kossmann & Torsten Hoefler Frühjahrssemester

Working‐setmodel

...2615777751623412344434344413234443444...

Δ

WS(t1)={1,2,5,6,7} t1

Δ

WS(t2)={3,4} t2

Pagereferencestring:

Page 60: Networks and Operang Systems Chapter 16: Demand Paging · Networks and Operang Systems Chapter 16: Demand Paging (252‐0062‐00) Donald Kossmann & Torsten Hoefler Frühjahrssemester

Keepingtrackoftheworkingset

•  Approximatewithinterval/mer+areferencebit•  Example:Δ=10,000–  Timerinterruptsa^erevery5000/meunits–  Keepinmemory2bitsforeachpage– Whenevera/merinterruptscopyandsetsthevaluesofallreferencebitsto0

–  Ifoneofthebitsinmemory=1⇒pageinworkingset

•  Whyisthisnotcompletelyaccurate?•  Improvement=10bitsandinterruptevery1000/meunits

Page 61: Networks and Operang Systems Chapter 16: Demand Paging · Networks and Operang Systems Chapter 16: Demand Paging (252‐0062‐00) Donald Kossmann & Torsten Hoefler Frühjahrssemester

Page‐faultfrequencyscheme

•  Establish“acceptable”page‐faultrate–  Ifactualratetoolow,processlosesframe

–  Ifactualratetoohigh,processgainsframe

Numberofframes

Rateofp

agefaults

Lowerbound

Upperbound

Decreasenumberofframes

Increasenumberofframes