




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、Chapter 9: Virtual Memory第1页,共70页。Chapter ObjectivesTo describe the benefits of a virtual memory systemTo explain the concepts of demand paging, replacement algorithms, and allocation of page framesTo discuss the principle of the working-set model第2页,共70页。Content OverviewBackgroundDemand PagingCopy-
2、on-WritePage ReplacementAllocation of Frames ThrashingMemory-Mapped FilesAllocating Kernel MemoryOther ConsiderationsOperating-System Examples第3页,共70页。9.1 BackgroundVirtual memory separation of user logical memory from physical memory.Only part of the program needs to be in memory for executionLogic
3、al address space can therefore be much larger than physical address spaceAllows address spaces to be shared by several processesAllows for more efficient process creationVirtual memory can be implemented via:Demand paging Demand segmentation第4页,共70页。Virtual Memory That is Larger Than Physical Memory
4、第5页,共70页。Virtual-address Space第6页,共70页。Shared Library Using Virtual Memory第7页,共70页。9.2 Demand PagingBring a page into memory only when it is neededLess I/O neededLess memory needed Faster responseMore usersPage is needed reference to itinvalid reference abortnot-in-memory bring to memoryLazy swapper
5、 never swaps a page into memory unless page will be neededSwapper that deals with pages is a pager第8页,共70页。Transfer of a Paged Memory to Contiguous Disk Space第9页,共70页。Valid-Invalid BitWith each page table entry a validinvalid bit is associated(v in-memory, i not-in-memory)Initially validinvalid bit
6、is set to i on all entriesExample of a page table snapshot:During address translation, if validinvalid bit in page table entry is I page faultvvvviii.Frame #valid-invalid bitpage table第10页,共70页。Page Table When Some Pages Are Not in Main Memory第11页,共70页。Page FaultIf there is a reference to a page, fi
7、rst reference to that page will trap to operating system: page faultOperating system looks at another table to decide:Invalid reference abortJust not in memoryGet empty frameSwap page into frameReset tablesSet validation bit = vRestart the instruction that caused the page fault第12页,共70页。Page Fault (
8、Cont.)Restart instructionblock moveauto increment/decrement location第13页,共70页。Steps in Handling a Page Fault第14页,共70页。Performance of Demand PagingPage Fault Rate 0 p 1.0if p = 0 no page faults if p = 1, every reference is a faultEffective Access Time (EAT)EAT = (1 p) x memory access+ p (page fault o
9、verhead + swap page out + swap page in + restart overhead )第15页,共70页。Demand Paging ExampleMemory access time = 200 nanosecondsAverage fault service time = 8 millisecondsEAT = (1 p) x 200 + p (8 milliseconds) = (1 p x 200 + p x 8,000,000 = 200 + p x 7,999,800If one access out of 1,000 causes a page f
10、ault, then EAT = 8.2 microseconds. This is a slowdown by a factor of 40!第16页,共70页。Process CreationVirtual memory allows other benefits during process creation:- Copy-on-Write- Memory-Mapped Files (later)第17页,共70页。9.3 Copy-on-WriteCopy-on-Write (COW) allows both parent and child processes to initiall
11、y share the same pages in memoryIf either process modifies a shared page, only then is the page copiedCOW allows more efficient process creation as only modified pages are copiedFree pages are allocated from a pool of zeroed-out pages第18页,共70页。Before Process 1 Modifies Page C第19页,共70页。After Process
12、1 Modifies Page C第20页,共70页。What happens if there is no free frame?Page replacement find some page in memory, but not really in use, swap it outalgorithmperformance want an algorithm which will result in minimum number of page faultsSame page may be brought into memory several times第21页,共70页。9.4 Page
13、 ReplacementPrevent over-allocation of memory by modifying fault service routine to include page replacementUse modify (dirty) bit to reduce overhead of page transfers only modified pages are written to diskPage replacement completes separation between logical memory and physical memory large virtua
14、l memory can be provided on a smaller physical memory第22页,共70页。Need For Page Replacement第23页,共70页。Basic Page ReplacementFind the location of the desired page on diskFind a free frame: - If there is a free frame, use it - If there is no free frame, use a page replacement algorithm to select a victim
15、frameBring the desired page into the (newly) free frame; update the page and frame tablesRestart the process第24页,共70页。Page Replacement第25页,共70页。Page Replacement AlgorithmsWant lowest fault rateEvaluate algorithm by running it on a particular string of memory references (reference string) and computi
16、ng the number of page faults on that stringIn all our examples, the reference string is 1, 2, 3, 4, 1, 2, 5, 1, 2, 3, 4, 5第26页,共70页。Graph of Page Faults Versus The Number of Frames第27页,共70页。First-In-First-Out (FIFO) AlgorithmReference string: 1, 2, 3, 4, 1, 2, 5, 1, 2, 3, 4, 53 frames (3 pages can b
17、e in memory at a time per process)4 framesBeladys Anomaly: more frames more page faults1231234125349 page faults1231235124510 page faults443第28页,共70页。FIFO Page Replacement第29页,共70页。FIFO Illustrating Beladys Anomaly第30页,共70页。Optimal AlgorithmReplace page that will not be used for longest period of ti
18、me4 frames example 1, 2, 3, 4, 1, 2, 5, 1, 2, 3, 4, 5How do you know this?Used for measuring how well your algorithm performs12346 page faults45第31页,共70页。Optimal Page Replacement第32页,共70页。Least Recently Used (LRU) AlgorithmReference string: 1, 2, 3, 4, 1, 2, 5, 1, 2, 3, 4, 5Counter implementationEve
19、ry page entry has a counter; every time page is referenced through this entry, copy the clock into the counterWhen a page needs to be changed, look at the counters to determine which are to change52431234125412531243第33页,共70页。LRU Page Replacement第34页,共70页。LRU Algorithm (Cont.)Stack implementation ke
20、ep a stack of page numbers in a double link form:Page referenced:move it to the toprequires 6 pointers to be changedNo search for replacement第35页,共70页。Use Of A Stack to Record The Most Recent Page References第36页,共70页。LRU Approximation AlgorithmsReference bitWith each page associate a bit, initially
21、= 0When page is referenced bit set to 1Replace the one which is 0 (if one exists)We do not know the order, howeverAdditional-Reference bitA timern bits Reference bits shiftSecond chanceNeed reference bitClock replacementIf page to be replaced (in clock order) has reference bit = 1 then:set reference
22、 bit 0leave page in memoryreplace next page (in clock order), subject to same rules第37页,共70页。Second-Chance (clock) Replacement Algorithm第38页,共70页。Counting AlgorithmsKeep a counter of the number of references that have been made to each pageLFU Algorithm: replaces page with smallest countMFU Algorith
23、m: based on the argument that the page with the smallest count was probably just brought in and has yet to be used第39页,共70页。9.5 Allocation of FramesEach process needs minimum number of pagesExample: IBM 370 6 pages to handle SS MOVE instruction:instruction is 6 bytes, might span 2 pages2 pages to ha
24、ndle from2 pages to handle toTwo major allocation schemesfixed allocationpriority allocation第40页,共70页。Fixed AllocationEqual allocation For example, if there are 100 frames and 5 processes, give each process 20 frames.Proportional allocation Allocate according to the size of process第41页,共70页。Priority
25、 AllocationUse a proportional allocation scheme using priorities rather than sizeIf process Pi generates a page fault,select for replacement one of its framesselect for replacement a frame from a process with lower priority number第42页,共70页。Global vs. Local AllocationGlobal replacement process select
26、s a replacement frame from the set of all frames; one process can take a frame from anotherLocal replacement each process selects from only its own set of allocated frames第43页,共70页。9.6 ThrashingIf a process does not have “enough” pages, the fault rate is very high. This leads to:low CPU utilizationo
27、perating system thinks that it needs to increase the degree of multiprogramminganother process added to the systemThrashing a process is busy swapping pages in and out第44页,共70页。Thrashing (Cont.)第45页,共70页。Demand Paging and Thrashing Why does demand paging work?Locality modelProcess migrates from one
28、locality to anotherLocalities may overlapWhy does thrashing occur? size of locality total memory size第46页,共70页。Locality In A Memory-Reference Pattern第47页,共70页。Working-Set Model working-set window a fixed number of page references Example: 10,000 instructionWSSi (working set of Process Pi) =total num
29、ber of pages referenced in the most recent (varies in time)if too small will not encompass entire localityif too large will encompass several localitiesif = will encompass entire programD = WSSi total demand frames if D m ThrashingPolicy if D m, then suspend one of the processes第48页,共70页。Working-set
30、 model第49页,共70页。Keeping Track of the Working SetApproximate with interval timer + a reference bitExample: = 10,000Timer interrupts after every 5000 time unitsKeep in memory 2 bits for each pageWhenever a timer interrupts copy and sets the values of all reference bits to 0If one of the bits in memory
31、 = 1 page in working setWhy is this not completely accurate?Improvement = 10 bits and interrupt every 1000 time units第50页,共70页。Fault Frequency SchemeEstablish “acceptable” fault rateIf actual rate too low, process loses frameIf actual rate too high, process gains frame第51页,共70页。9.7 Memory-Mapped Fil
32、esMemory-mapped file I/O allows file I/O to be treated as routine memory access by mapping a disk block to a page in memoryA file is initially read using demand paging. A sized portion of the file is read from the file system into a physical page. Subsequent reads/writes to/from the file are treated
33、 as ordinary memory accesses.Simplifies file access by treating file I/O through memory rather than read() write() system callsAlso allows several processes to map the same file allowing the pages in memory to be shared第52页,共70页。Memory Mapped Files第53页,共70页。Memory-Mapped Shared Memory in Windows第54页
34、,共70页。9.8 Allocating Kernel MemoryTreated differently from user memoryOften allocated from a free-memory poolKernel requests memory for structures of varying sizesSome kernel memory needs to be contiguous第55页,共70页。Buddy SystemAllocates memory from fixed-size segment consisting of physically-contiguo
35、us pagesMemory allocated using power-of-2 allocatorSatisfies requests in units sized as power of 2Request rounded up to next highest power of 2When smaller allocation needed than is available, current chunk split into two buddies of next-lower power of 2Continue until appropriate sized chunk availab
36、le第56页,共70页。Buddy System Allocator第57页,共70页。Slab AllocatorAlternate strategySlab is one or more physically contiguous pagesCache consists of one or more slabsSingle cache for each unique kernel data structureEach cache filled with objects instantiations of the data structureWhen cache created, fille
37、d with objects marked as freeWhen structures stored, objects marked as usedIf slab is full of used objects, next object allocated from empty slabIf no empty slabs, new slab allocatedBenefits include no fragmentation, fast memory request satisfaction第58页,共70页。Slab Allocation第59页,共70页。9.9 Other Issues
38、 - PrepagingPrepaging To reduce the large number of page faults that occurs at process startupPrepage all or some of the pages a process will need, before they are referencedBut if prepaged pages are unused, I/O and memory was wastedAssume s pages are prepaged and of the pages is usedIs cost of s *
39、save pages faults or than the cost of prepaging s * (1- ) unnecessary pages? near zero prepaging loses 第60页,共70页。Other Issues Page SizePage size selection must take into consideration:fragmentationtable size I/O overheadlocality第61页,共70页。Other Issues TLB Reach TLB Reach - The amount of memory access
40、ible from the TLBTLB Reach = (TLB Size) X (Page Size)Ideally, the working set of each process is stored in the TLBOtherwise there is a high degree of page faultsIncrease the Page SizeThis may lead to an increase in fragmentation as not all applications require a large page sizeProvide Multiple Page
41、SizesThis allows applications that require larger page sizes the opportunity to use them without an increase in fragmentation第62页,共70页。Other Issues Program StructureProgram structureInt128,128 data;Each row is stored in one page Program 1 for (j = 0; j 128; j+) for (i = 0; i 128; i+) datai,j = 0; 128 x 128 = 16,384 page faults Program 2 for (i = 0; i 128; i+) for (j = 0; j 128; j+) datai,j = 0;128 page faults第63页,共70页。Other Issues I/O interlockI/O Interlock Pages must sometimes be locked into memoryConsider I/O - Pages that
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年河北省隆化县人民医院公开招聘护理工作人员试题带答案详解
- 洪洞教编初中数学试卷
- 医院项目管理课件
- 医院课件教学课件
- 《网络综合布线》教案 项目3实训任务 实施工程预算和撰写采购招标文件
- 健康管理中心课件内容
- 中国无线鼠标行业发展监测及投资战略规划研究报告
- 2021-2026年中国风光互补控制器市场竞争格局及投资战略规划报告
- 2025-2030年中国制动鼓行业市场供需态势及发展前景研判报告
- 中国无糖糖果行业市场发展监测及投资潜力预测报告
- 2023-2024学年深圳市盐田区数学四下期末学业水平测试试题含解析
- 虚拟股权激励方案(模板)
- 2024-2029年中国管道运输行业发展分析及发展前景与投资研究报告
- 泰文租房合同
- 建筑维修与保养方法
- 金华出租车从业资格证模拟考试题
- (完整)中医症候积分量表
- 劳务外包三方协议
- 水果礼盒创业计划书
- 水产养殖行业营销策略方案
- 厂房分布式光伏系统施工进度计划横道图
评论
0/150
提交评论