欢迎来到天天文库
浏览记录
ID:48737872
大小:996.00 KB
页数:27页
时间:2020-01-26
《第6章 虚拟存储管理.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第6章虚拟存储管理本章要点●虚拟存储器的引入●请求页式存储管理●请求段式存储管理2021/7/18●6.1虚拟存储器的引入前面介绍的存储管理方案要求作业全部装入内存才可运行。但这会出现两种情况:●有的作业因太大,内存装不下而无法运行。●系统中作业数太多,因系统容量有限只能让少数作业先运行。2021/7/18局部性原理(理论基础)1968年P.Denning提出●程序执行时,大多数情况下是顺序执行的。●过程调用会使程序的执行轨迹从一部分内存区域转至另一部分区域,但过程调用的深度不会超过5。●程序中有许多循环语句,这些语句会重复多次执行。●程序中对数据结构的操作,往往局限在很小的范围
2、内。局部性原理局限性的表现●时间局限性程序中的的某条指令一旦执行,不久后会再次执行。●空间局限性程序一旦访问某存储单元,不久后会访问其附近的存储单元。虚拟存储器的定义所谓虚拟存储器是指具有请求调入功能和置换功能,能从逻辑上对内存容量进行扩充的一种存储器系统。●离散性作业不装入连续的存储空间,内存分配采用离散分配方●多次性一个作业被分割,被多次调入内存。●对换性作业在运行过程中换进、换出内存。●虚拟性从逻辑上扩充了内存的容量。虚拟存储器的特征●状态位P:记录该页是否在内存。P=1该页在内存;P=0该页不在内存。●访问字段A:记录该页在一段时间内被访问的次数。●修改位M:记录该页在内
3、存期间是否被修改过。M=1该页调入内存后被修改过;M=0该页调入内存后未被修改过。●外存地址:该页在外存的地址。页表的扩充●6.2请求页式存储管理缺页中断机构主要表现在:●在指令执行期间产生和处理中断信号。●一条指令执行期间,可能产生多次缺页中断。缺页中断是一种特殊的中断地址变换机构请求页式存储管理驻留集管理驻留集管理包括以下内容:●保证进程正常运行所需的最少物理块数是多少?●为每个进程分配物理块时,其数目是固定的、还是可变的?●如何为进程置换物理块,是局部置换?还是全局置换?●物理块越多越好!——虚拟?●随着为进程分配的物理块数目的减少,将使进程执行中的缺页率提高,从而降低进程
4、的执行速度。●能保证进程正常运行所需的最小物理块数是多少?这与计算机的硬件结构有关,取决于指令的格式、功能和寻址方式。最少物理块数进程正常运行需要多少物理块?驻留集管理●固定分配、局部置换●为每个进程分配固定页数的内存空间、且运行过程中不变。●当进程缺页时,只能从该进程在内存的几个页面中选出一页换出,然后再调入一页,保证进程的页数不变。●可变分配、全局置换●系统开始先为每个进程分配一定数目的物理块。整个系统有一空闲物理块链,当某进程缺页时,系统从空闲链中选出一块分配给进程。●空闲链为空时,OS从所有进程的页面中权衡选择一页换出。●可变分配、局部置换●分配同上,但进程缺页时,只能从
5、该进程在内存的页面中选出一页换出。请求页式存储管理的调入策略●何时调入页面●预调●请调●从何处调入●进程的所有页面都放在对换区。●只将修改过的页面放在对换区,未改的放在文件区。●UNIX系统方式,首次从文件区调入,换出时放在对换区,以后从对换区调入。请求页式存储管理的页面置换算法●最佳置换算法OPT●先进先出置换算法FIFO●最近最久未使用置换算法LRU●CLOCK置换算法最佳置换算法结果:页面换出6次,缺页9次。页面走向思想——置换哪些不再使用,或最长时间不使用的页。先进先出页面置换算法OPT与FIFO的比较结果:OPT页面换出6次,缺页9次。FIFO页面换出12次,缺页15次
6、。页面走向页面走向思想——新进入内存的页被先置换出去。最近最久未使用LRU页面置换算法OPT与LRU的比较结果:OPT页面换出6次,缺页9次。LRU页面换出9次,缺页12次。页面走向页面走向思想——用“过去”的行为预测将来,置换哪些“最近最久未使用”的页。CLOCK页面置换算法●LRU性能较好,但实现困难!因此可用CLOCK算法。●为每页设一访问位,再将内存中的所有页面链接成一循环队列。●当某页被访问时,其访问位置1。●置换算法在选择一页淘汰时,只需检查其访问位。如果是0,就选择该页换出;如果是1,则重新将其置为0,暂不换出。CLOCK页面置换算法●除了考虑页面的使用情况外,还要
7、考虑该页是否被修改过。●由访问位A和修改位M组合成下面四种情况的组合:●<1>A=0,M=0该页既未被访问过、又未被修改过,是最佳淘汰页。●<2>A=0,M=1该页最近未被访问、但已被修改,可以被淘汰。●<3>A=1,M=0最近已被访问,但未被修改,该页有可能再被访问。●<4>A=1,M=1最近已被访问且被修改,该页可能再被访问。CLOCK算法执行过程1>从当前位置扫描循环队列,寻找〈1〉类页面。2>若1>失败,开始第二轮扫描,寻找<2>类页面,并将所经过的页面的访问位置0。3>
此文档下载收益归作者所有