




已阅读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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 农业经济合同的订立教学设计-2025-2026学年中职专业课-农业经营与管理-农林类-农林牧渔大类
- 北京链家岗前新人训考试及答案解析
- 中考体育模拟试题及答案
- 公共预算考试试题及答案
- 发票知识竞赛题及答案
- 2025年幼师考试题及答案
- 儿童康复治疗自测试题(含答案)
- 2025年乡村医生考试题库及答案解析
- 计算机网络考试题及答案
- 2025年院前急救、卒中、胸痛、创伤中心及“两病防治”培训试题及答案
- Unit 2 单元测试卷-2024-2025学年人教版七年级英语上册
- 2025股权技术入股合同
- 钢桁架桥制作施工方案
- 2025-2026学年北京版(2024)小学体育与健康一年级全一册教学计划及进度表(第一学期)
- 新《斜视弱视学》期末考试复习题库(含答案)
- 幼儿园数学活动《6和7的认识》课件
- 肠菌移植治疗炎症性肠病专家共识解读课件
- 2025年山西省建设工程专业高级职称评审考试(建筑工程管理)历年参考题库含答案详解(5卷)
- 医院医疗质量安全专项整治自查表
- 骨折固定与康复技术新进展
- 2025-2030中国医院经营管理模式与创新发展规划研究报告
评论
0/150
提交评论