虚拟内存41878.pptx
《虚拟内存41878.pptx》由会员分享,可在线阅读,更多相关《虚拟内存41878.pptx(58页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第十章第十章虚拟内存虚拟内存110.1背景背景F第九章所介绍的内存管理算法都是基于一个基第九章所介绍的内存管理算法都是基于一个基本要求:执行指令必须在物理内存中。执行前本要求:执行指令必须在物理内存中。执行前将整个进程放在内存中。将整个进程放在内存中。连续内存分配连续内存分配分页分页分段分段F覆盖是个例外,但需要程序员特别小心。覆盖是个例外,但需要程序员特别小心。必须设计和编写覆盖结构必须设计和编写覆盖结构2背景背景F在许多情况下并不需要将整个程序放到内存中在许多情况下并不需要将整个程序放到内存中处理异常错误条件的代码处理异常错误条件的代码数组、链表和表通常分配了比实际所需要更多的内数组、链表
2、和表通常分配了比实际所需要更多的内存。存。程序的某些选项或特点可能很少使用。即使需要完程序的某些选项或特点可能很少使用。即使需要完整程序,也并不是在某时刻同时需要整程序,也并不是在某时刻同时需要(与覆盖相似与覆盖相似)3背景背景F结论结论:如果只保存部分程序在内存中如果只保存部分程序在内存中可运行一个比物理内存大的多的程序可运行一个比物理内存大的多的程序可以有更多程序同时运行可以有更多程序同时运行程序运行更快程序运行更快4背景背景F虚拟内存虚拟内存物理内存和用户逻辑内存的区分物理内存和用户逻辑内存的区分只有部分运行的程序需要在内存中只有部分运行的程序需要在内存中因此,逻辑地址空间能够比物理地址
3、空间大因此,逻辑地址空间能够比物理地址空间大允许若干个进程共享地址空间允许若干个进程共享地址空间允许更多有效进程创建允许更多有效进程创建5虚拟内存大于物理内存的示意图虚拟内存大于物理内存的示意图6背景背景虚拟内存能够通过以下手段来执行:虚拟内存能够通过以下手段来执行:请求页面调度(请求页面调度(Demandpaging)u用户观点是分段,而操作系统可以通过请求页面调度实现这用户观点是分段,而操作系统可以通过请求页面调度实现这一观点一观点u类似于分页系统加上交换。交换程序对整个进程操作,调页类似于分页系统加上交换。交换程序对整个进程操作,调页程序只对进程的单个页进行操作程序只对进程的单个页进行操
4、作请求分段调度(请求分段调度(Demandsegmentation)7分页的内存与邻接的磁盘空间之间的传递分页的内存与邻接的磁盘空间之间的传递8请求页面调度请求页面调度F只有在一个页需要的时候才把它换入内存只有在一个页需要的时候才把它换入内存.需要很少的需要很少的I/O需要很少的内存需要很少的内存快速响应快速响应多用户多用户F需要页需要页查阅此页查阅此页无效的访问无效的访问中止中止不在内存不在内存换入内存换入内存9有效有效-无效位无效位F在每一个页表的表项有一个有效在每一个页表的表项有一个有效-无效位相关联无效位相关联有效:相关的页既合法且也在内存中有效:相关的页既合法且也在内存中无效:相关的
5、页不在进程的逻辑地址空间内或者有效但是在磁盘上无效:相关的页不在进程的逻辑地址空间内或者有效但是在磁盘上有效有效-无效位无效位iiiiviv帧帧页表页表v10当有些页不在内存中时的页表当有些页不在内存中时的页表11页错误(缺页)页错误(缺页)F如果只访问真正需要的并已在内存中的页,那么如果只访问真正需要的并已在内存中的页,那么进程就可如同所有页都已调入一样正常运行。进程就可如同所有页都已调入一样正常运行。F当进程试图访问那些尚未调入到内存的页时当进程试图访问那些尚未调入到内存的页时页页错误陷阱(缺页)错误陷阱(缺页)FOS查看页表来决定查看页表来决定无效引用无效引用终止终止仅仅不在内存仅仅不在
6、内存u找一个空闲帧找一个空闲帧u将需要的页调入空闲帧将需要的页调入空闲帧u重置页表,有效位为重置页表,有效位为1u重启指令重启指令12处理页错误的步骤处理页错误的步骤13F纯粹请求页面调度纯粹请求页面调度:只有在需要时才将页调入内存所有的页都不在内存中,就开始执行进程,立即出现页错误,当页调入内存时,进程继续执行,并不断出现页错误直到所有所需的页均在内存中。14请求页面调度的性能请求页面调度的性能F页错误的概率(缺页率)页错误的概率(缺页率)0 p 1.0如果如果p=0,没有缺页没有缺页如果如果p=1,每次访问都缺页每次访问都缺页F有效访问时间(有效访问时间(EffectiveAccessTi
7、me,EAT)EAT=(1p)*内存访问时间内存访问时间+p*页错误时间页错误时间页错误时间主要包含三个方面:页错误时间主要包含三个方面:1、处理页错误中断、处理页错误中断2、读入页、读入页3、重新启动进程、重新启动进程15性能举例性能举例F内存访问时间内存访问时间=100nsF平均页错误处理时间平均页错误处理时间=25msF有效访问时间有效访问时间EAT=(1p)*100+p*25,000,000=100+24,999,900*p性能与缺页率直接有关性能与缺页率直接有关如果需要性能降低不超过如果需要性能降低不超过10%110100+25000000p1025000000pp降低缺页率降低缺页
8、率21页置换算法页置换算法F需要一个最小的缺页率需要一个最小的缺页率F通过运行一个内存访问的特殊序列(访问序列)通过运行一个内存访问的特殊序列(访问序列),计算这个序列的缺页次数,计算这个序列的缺页次数引用串:只考虑页码,任何紧跟着的引用不会出错引用串:只考虑页码,任何紧跟着的引用不会出错22F内存访问地址顺序内存访问地址顺序:0100,0432,0101,0612,0102,0103,0104,0101,0611,0102,0103,0104,0101,0610,0102,0103,0104,0101,0609,0102,0105F页大小页大小100B,页码序列页码序列:1,4,1,6,1,
9、1,1,1,6,1,1,1,1,6,1,1,1,1,6,1,1F引用串引用串:1,4,1,6,1,6,1,6,1,6,123理想的缺页与帧数量关系图理想的缺页与帧数量关系图F给定引用串给定引用串:1,4,1,6,1,6,1,6,1,6,1F如果有三帧如果有三帧:3次缺页次缺页F如果只有一帧如果只有一帧:11次缺页次缺页24FIFO页置换页置换FFIFO算法算法:可以创建一个可以创建一个FIFO队列来管理内存中的所有页队列来管理内存中的所有页调入页时,将它加到队列的尾部调入页时,将它加到队列的尾部当必须置换一页时,将选择最旧的页当必须置换一页时,将选择最旧的页总共总共15次缺页次缺页25Bela
10、dy异常异常F引用串引用串:1,2,3,4,1,2,5,1,2,3,4,5F3帧帧F4帧帧FFIFO置换算法置换算法Belady异常异常期望期望:增加帧数增加帧数降低缺页率降低缺页率1231234125349 page faults1231235124510 page faults44326存在存在Belady异常的异常的FIFO置换缺页曲线图置换缺页曲线图27最优页置换最优页置换F被置换的页将是最长时间不被使用的页被置换的页将是最长时间不被使用的页F很难实现,因为需要引用串的未来知识很难实现,因为需要引用串的未来知识F4帧的例子帧的例子1,2,3,4,1,2,5,1,2,3,4,5最优页置换
11、的作用:用来衡量你的算法的效率最优页置换的作用:用来衡量你的算法的效率12346 page faults4528最优页置换total9pagefaults29LRU页置换页置换FLRU置换为每个页记录该页最后的使用置换为每个页记录该页最后的使用时间时间F当必须进行页置换时,当必须进行页置换时,LRU选择最近最选择最近最长未被使用的页。长未被使用的页。30LRU页置换F引用串引用串:1,2,3,4,1,2,5,1,2,3,4,5F计数器的实现计数器的实现每一个页表项每一个页表项有一个计数器,每次页通过这个表项被有一个计数器,每次页通过这个表项被访问,把记录拷贝到计数器中访问,把记录拷贝到计数器中
12、当一个页需要改变是,查看计数器来觉得改变哪一个当一个页需要改变是,查看计数器来觉得改变哪一个页页0123544358 page faults31LRU页置换total12pagefaults32LRU页置换F计数器计数器每个页表项都关联一个使用时间域每个页表项都关联一个使用时间域需要一个逻辑时钟或计数器,对每次内存引用,计需要一个逻辑时钟或计数器,对每次内存引用,计数器都会增加。数器都会增加。每次内存引用时,时钟寄存器的内容都会复制到相每次内存引用时,时钟寄存器的内容都会复制到相应页表项的使用时间域内应页表项的使用时间域内进行页置换时,选择具有最小时间(或者计数器值)进行页置换时,选择具有最小
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 虚拟内存 41878
限制150内