操作系统教程09.ppt_第1页
操作系统教程09.ppt_第2页
操作系统教程09.ppt_第3页
操作系统教程09.ppt_第4页
操作系统教程09.ppt_第5页
已阅读5页,还剩66页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

Chapter9 VirtualMemory BackgroundDemandPagingCopy on WritePageReplacementAllocationofFramesThrashingMemory MappedFilesAllocatingKernelMemory Background VirtualmemorySeparationofuserlogicalmemoryfromphysicalmemoryOnlypartoftheprograminmemoryLogicaladdressspace physicaladdressspaceInmanycases theentireprogramnotneeded ErrorcodeArrays lists tablesallocatedmorethanneedCertainoptions featuresofaprogramrarelyused Background Benefits ProgramscanbelargerthanphysicalmemoryProgrammersneedn tcareaboutmemorylimitationsMoreprogramscouldberunsimultaneouslyLessI Oneeded eachuserprogramwouldrunfasterEasy2sharefilesamongseveralprocessesMoreefficientprocesscreationDrawbacks VirtualMemoryThatisLargerThanPhysicalMemory Virtual addressSpace Sparseaddressspaces holes SharedLibraryUsingVirtualMemory LibrarycanbesharedCommunicationFork systemcall VirtualMemory Virtualmemorycanbeimplementedvia DemandpagingPagingondemandDemandsegmentationSegmentingondemand DemandPaging PagingondemandBringapageintomemoryonlywhenitisneededLessI OneededLessmemoryneededFasterresponseMoreusersLazyswapperneverswapsapageintomemoryunlesspagewillbeneededSwapperthatdealswithpagesisapager TransferofaPagedMemorytoContiguousDiskSpace Valid InvalidBit Avalid invalidbitforeachpagetableentryAllaresettoiinitiallyv in memory legali not in memory pagefaultwhenreferencedinvalidreference abortnot in memory bringtomemory PageTableWhenSomePagesAreNotinMainMemory PageFault pagefaultFirstreferencetoapagewilltraptooperatingsystem Invalidreference abortValidbutnotinmemoryFindafreeframe fromthefreeframelist SwappageintoframeResetpagetablesSetvalidationbit vRestarttheinstructionthatcausedthepagefault StepsinHandlingaPageFault PageFault Cont RestartinstructionC A B1 fetchtheinstruction2 fetchA3 fetchB4 AddAandB5 StorethesuminC Cnotinmemory ProblemscanbeignoredRepetition1instructioncauseNpagefaults PageFault Cont Restartinstruction1instructionmodifyNlocationsE g MVC movecharacter canmove256bytesBlocksmaystraddlesapageboundaryPagefaultoccuraftermoveispartiallydoneIfthesource destinationblocksoverlapThesourceblockmayhavebeenchangedSolutionsAttempttoaccessbothendsof2blocksUsetempregisterstoholdthevaluesoverwritten PerformanceofDemandPaging PageFaultRate0 p 1 0ifp 0nopagefaultsifp 1 everyreferenceisafault PuredemandpagingEffectiveAccessTime EAT EAT 1 p xmemoryaccess pxpagefaulttime pagefaultoverhead swappageout optional swappagein restartoverhead DemandPagingExample Memoryaccesstime 200nanosecondsAveragepage faultservicetime 8millisecondsEAT 1 p x200 p 8milliseconds 1 px200 px8 000 000 200 px7 999 800Ifoneaccessoutof1 000causesapagefault thenEAT 8 2microseconds Thisisaslowdownbyafactorof40 ProcessCreation Virtualmemoryallowsotherbenefitsduringprocesscreation Copy on Write Memory MappedFiles later Copy on Write Copy on Write COW parent childprocessestoinitiallysharethesamepagesinmemoryIfeitherprocessmodifiesasharedpage pagecopiedOnlypagescanbemodifiedneedtobemarkedMoreefficientprocesscreationAllocatefreepagesfromazeroed outpagepoolZero fill on demand BeforeProcess1ModifiesPageC AfterProcess1ModifiesPageC Whathappensifthereisnofreeframe Pagereplacementfindsomepageinmemory butnotreallyinuse swapitoutalgorithmperformance analgorithmwhichwillresultinminimumnumberofpagefaultsSamepagemaybebroughtintomemoryseveraltimes PageReplacement Preventover allocationofmemoryModifypage faultserviceroutinetoincludepagereplacementmodify dirty bitreduceoverheadofpagetransfers onlymodifiedpagesarewrittentodiskSeparationbetweenlogicalmemoryandphysicalmemorylargevirtualmemorycanbeprovidedonasmallerphysicalmemoryFrame allocation page replacementalgorithmsareneededtoimplementdemandpaging NeedForPageReplacement BasicPageReplacement FindthelocationofthedesiredpageondiskFindafreeframe Ifthereisafreeframe useit Ifthereisnofreeframe useapagereplacementalgorithmtoselectavictimframeBringthedesiredpageintothe newly freeframe updatethepageandframetablesRestarttheprocess PageReplacement PageReplacementAlgorithms Criteria lowestpage faultrateEvaluatealgorithmbyrunningitonaparticularstringofmemoryreferences referencestring computingthenumberofpagefaultsonthatstringInallourexamples thereferencestringis1 2 3 4 1 2 5 1 2 3 4 5 GraphofPageFaultsVersusTheNumberofFrames Expected First In First Out FIFO Algorithm Referencestring 1 2 3 4 1 2 5 1 2 3 4 53frames 3pagescanbeinmemoryatatimeperprocess 9pagefaults 2 1 3 4 2 1 5 1 3 2 4 5 FIFO cont Referencestring 1 2 3 4 1 2 5 1 2 3 4 54framesBelady sAnomaly moreframes morepagefaults 10pagefaults 2 1 3 4 2 1 5 1 3 2 4 5 FIFOPageReplacement FIFOIllustratingBelady sAnomaly OptimalAlgorithm Replacepagenotbeusedforlongestperiodoftime4framesexampleHowdoyouknowthis Usedformeasuringhowwellyouralgorithmperforms 6pagefaults 2 1 3 4 2 1 5 1 3 2 4 5 OptimalPageReplacement LeastRecentlyUsed LRU Algorithm Referencestring CounterimplementationEverypageentryhasacounter everytimepageisreferencedthroughthisentry copytheclockintothecounterWhenapageneedstobechanged lookatthecounterstodeterminewhicharetobechanged 5 1 2 3 4 1 2 5 1 2 3 4 2 1 3 4 2 1 5 1 3 2 4 5 8Pagefaults LRUPageReplacement LRUAlgorithm Cont Stackimplementation keepastackofpagenumbersinadoublylinkedlist Pagereferenced moveittothetoprequires6pointerstobechangedatworstEachupdateisalittlemoreexpensiveButnosearchforreplacement UseOfAStacktoRecordTheMostRecentPageReferences LRUApproximationAlgorithms ReferencebitHWassociatewitheachpageabit initially 0Whenpageisreferenced bitissetto1Replacetheonewhichis0 ifoneexists Wedonotknowtheorder howeverAdditionalreferencebitalgorithmRecordeachentryofapagetableentrywitha8 bitbyteAtanregularinterval atimerinterrupttransfersthecontrol2theOSThebitsshiftright values 00000000111111110110011111001000 LRUApproximationAlgorithms SecondchanceNeedreferencebitClockreplacementIfpagetobereplaced inclockorder hasreferencebit 0 thenreplaceIfpagetobereplacedhasreferencebit 1then setreferencebit0leavepageinmemoryreplacenextpage inclockorder subjecttosamerules Second Chance clock Page ReplacementAlgorithm CountingAlgorithms KeepacounterofthenumberofreferencesthathavebeenmadetoeachpageLFUAlgorithmreplacespagewithsmallestcountProblem heavilyusedinitially thenneverusedShiftthecountsrightby1bit2decayaverageusagecountMFUAlgorithmthepagewiththesmallestcountwasprobablyjustbroughtinandhasyettobeused AllocationofFrames Processneedsminimumnumberofpages causePagenumber processexecution Enough2holdallpagesaninstructionreferencesE g indirectaddressingE g IBM370 6pagestohandleMVCinstruction instructionis6bytes mightstraddle2pages2pagestohandlefrom2pagestohandletoTwomajorallocationschemesfixedallocationpriorityallocation FixedAllocation Equalallocation e g ifthereare100framesand5processes giveeachprocess20frames Proportionalallocation Allocateaccordingtothesizeofprocess PriorityAllocation UseaproportionalallocationschemeusingprioritiesratherthansizeIfprocessPigeneratesapagefault select4replacementoneofitsframesSelect4replacementaframefromaprocesswithlowerprioritynumber Globalvs LocalAllocation GlobalreplacementprocessselectsareplacementframefromthesetofallframesoneprocesscantakeaframefromanotherProb processcan tcontrolitspage faultrateLocalreplacementeachprocessselectsfromonlyitsownsetofallocatedframesProb lessusedpagesofmemory Thrashing Ifaprocessdoesnothave enough pages thepage faultrateisveryhighlowCPUutilizationOSthinksthatitneedstoincreasethedegreeofmultiprogramminganotherprocessaddedtothesystemThrashing aprocessisbusyswappingpagesinandoutSpendingmoretimeinswappingthanexecuting Thrashing Cont DemandPagingandThrashing Whydoesdemandpagingwork LocalitymodelhowmanypagesaprocessusingProcessmigratesfromonelocalitytoanotherAprogrammayhaveNlocalities theymayoverlapWhydoesthrashingoccur sizeoflocality totalmemorysizeActivepages framesallocated LocalityInAMemory ReferencePattern Working SetModel working setwindowafixednumberofpagereferencese g 10 000instructionWSSi workingsetsizeofPi totalno ofpagesreferencedinthemostrecent variesintime if toosmallwillnotencompassentirelocalityif toolargewillencompassseverallocalitiesif willencompassentireprogram Working setmodel D WSSi totaldemandframesm totalno ofavailableframesifD m ThrashingPolicy ifD m thensuspendoneoftheprocesses KeepingTrackoftheWorkingSet Approximatewithfixed intervaltimer areferencebitE g 10 000Timerinterruptsafterevery5000timeunitsKeepinmemory2bitsforeachpageWheneveratimerinterruptscopyandsetsthevaluesofallreferencebitsto0Ifoneofthebitsinmemory 1 pageinworkingsetWhyisthisnotcompletelyaccurate Improvement 10bitsandinterruptevery1000timeunits Page FaultFrequencyScheme Establish acceptable page faultrateIfactualratetoolow processlosesframeIfactualratetoohigh processgainsframe Memory MappedFiles Memory mappedfilemappingadiskblocktoapageinmemoryTreatfileI OasroutinememoryaccessMechanismAfileisinitiallyreadusingdemandpagingApage sizedportionofthefileisreadintoaphysicalpageSubsequentreads writesto fromthefilearetreatedasordinarymemoryaccesses Memory MappedFiles SimplifiesfileaccessWritestoMemory mappedfilescanbe SynchronouswriteAsynchronouswriteNprocessesmaymapthesamefileconcurrentlyallowingthepagesinmemorytobesharedWritesby1processcanbeseenbyallothersSupportcopy on write MemoryMappedFiles Memory MappedSharedMemoryinWindows 1stprocesscreatesafilemapping establishaview2ndopen createaviewofthefileinitsvirtualaddressspace AllocatingKernelMemory TreateddifferentlyfromusermemoryOftenallocatedfromafree memorypoolKernelrequestsmemoryforstructuresofvaryingsizesManyOSsdonotsubjectkernelcode datatopagingSomekernelmemoryneedstobecontiguousCertainhwdevicesinteractdirectlywithphysicalmemory BuddySystem Allocatesmemoryfromfixed sizesegmentconsistingofphysically contiguouspagesMemoryallocatedusingpower of 2allocatorSatisfiesrequestsinunitssizedaspowerof2Requestroundeduptonexthighestpowerof2Whensmallerallocationneededthanisavailablecurrentchunksplitinto2buddiesofnext lowerpowerof2ContinueuntilappropriatesizedchunkavailableCoalescingAdjacentbuddiescanbecombinedquickly BuddySystemAllocator 4a21KBrequest SlabAllocator SlabisoneormorephysicallycontiguouspagesCacheconsistsofoneormoreslabsSinglecacheforeachuniquekerneldatastructureEachcachefilledwithobjects instantiationsofthedatastructure E g semaphores fileobjectsWhencachecreated filledwithobjectsmarkedasfreeWhenstructuresstored objectsmarkedasusedIfslabfullofusedobjects nextobjectallocatedfromemptyslabIfnoemptyslabs newslaballocatedBenefitsincludenofragmentationfastmemoryrequestsatisfaction SlabAllocation OtherIssues Prepaging PrepagingToreducetheno ofpagefaultsatprocessstartupPrepageall someofthepagesaprocesswillneed beforetheyarereferencedButifprepagedpagesareunused I OandmemorywaswastedAssumespagesareprepagedand ofthepagesisusedIscostofs savepagesfaults or thanthecostofprepagings 1 unnecessarypages nearzero prepagingloses OtherIssues TLBReach TLBReach TheamountofmemoryaccessiblefromtheTLBTLBReach TLBSize X PageSize Ideally theworkingsetofeachprocessisstoredintheTLBOtherwisethereisahighdegreeofpagefaultsIncreasethePageSizeThismayleadtoani

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论