操作系统c 第4章 存储管理5.ppt

  1. 1、本文档共53页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
操作系统c 第4章 存储管理5

回 顾 基本分页分段存储管理方式如何实现地址映射? 基本分页分段存储管理方式有哪些特征? 什么是局部性原理? 什么是虚拟存储器,虚拟存储器有哪些特征? 4.7 请求分页式存储管理方式 基本的分页和分段系统具有:一次性和驻留性不支持虚拟存储器功能,根据局部性原理程序的一次性和驻流性是不必要的,为了实现虚拟存储器功能而采用请求分页和请求分段系统实现 请求分页式存储管理是建立在基本分页系统基础上的,为了支持虚拟存储器功能而增加了请求调页和页面置换功能。 4.7.1 请求分页中的硬件支持 1 页表机制 物理块号 状态位P 访问字段A 修改位M 外存地址 状态位P:用于指示该页是否已经调入了内存 ,供访问 时参考。 访问字段A:用于记录本页在一定时间内被访问的次数,或最近已经有多长时间未被访问。供页面置换时参考。 修改位M:表示该页调入内存后是否被修改过。置换时参考 外存地址:该页在外存上的物理地址,调入时参考 2 缺页中断机构 所要访问的页面不在内存时,便产生一缺页中断,请求OS将该页调入内存。 与一般中断的相同之处: 保存CPU环境; 分析中断原因; 转入缺页中断处理程序; 恢复CPU环境。 与一般中断不同之处: 指令执行期间产生和处理中断 一条指令在执行期间可能产生多次中断,如下图 3 地址变换机构 请求分页中的地址变换机构 4.7.2 内存分配策略和分配算法 在请求分页存储管理方式中,为进程分配内存时,涉及到三个问题: 最小物理块数的确定 物理块的分配策略 物理块的分配算法 1 最小物理块号的确定 指能保证进程正常运行所需要的最小物理块数 2 物理块的分配策略 可采用两种内存分配策略:固定分配和可变分配策略。 置换时也可以采用两种策略:全局置换和局部置换。 于是可以组合成以下三种策略 (1)固定分配局部置换 为每个进程分配一定数目的物理块数,运行期间所占内存空间不变。当发现缺页时置换该进程中的一个物理块。 缺点:难于确定应该为每个进程分配多少物理块 (2)可变分配全局置换 为系统中的每个进程分配一定数目的物理块,OS系统本身保持一个空闲物理块队列,进程缺页时即分配空闲物理块队列中的一个装入。当空闲队列用完时,OS在从内存中选择一页调出。 (3)可变分配局部置换 首先为每个进程分配一定数目的物理块,当缺页时,将该进程的一页换出,如果某进程频繁的发生缺页中断,则再给该进程分配一定的物理块,直到缺页率降低到某一个适当的值。相反,如果进程运行期间缺页率特别低,则适当较少其物理块数。 3 物理块分配算法 平均分配算法:将可用的物理块平均分配给哥哥进程。 按比例分配算法:根据进程的大小按比例分配物理块。 考虑优先权的分配算法:将可供分配的物理块分成两部分,一部分按比例分配给进程,另一部分根据优先权,适当的增加其相应的份额。 4.7.3 调页策略 1 何时调入页面 预调页策略:将那些预计在不久的将来会被访问的页面预先调入内存。若干连续区域,一同调入 请求调页策略:当进程在运行过程中,需要访问某部分程序和数据时,发现不在内存,便立即提出请求,由操作系统将页面调入。 4.8 页面置换算法 把选择换出页面的算法称为页面置换算法。 一个好的页面置换算法,应该具有较低的页面置换频率。 从理论上来说,应该将那些以后不会再使用的或者长时间不用的页面替换。 4.8.1 最佳置换算法和先进先出置换算法 1 最佳置换算法 将以后永不使用或最长时间内不再被访问的页面调出。 2 先进先出页面置换算法 举例说明最佳置换算法和先进先出页面置换算法 假定系统为某进程分配了三个物理块,并考虑有以下的页号引用串: 7,0,1,2,0,3,0,4,2,3,0,3,2,1,2,0,1,7,0,1 进程运行时,先将7,0,1三个页面装入,以后使用的页面将根据不同的置换算法进行 4.8.2 最近最久未使用(LRU)置换算法 1 LRU置换算法描述: 根据页面调入内存后的使用情况进行决策,由于无法预测各页面将来的使用情况,只能利用“最近的过去”作为“最近的将来”的近似。 赋予每个页面一个访问字段,用来记录一个页面上次被访问以来所经历的时间t. 2 LRU置换算法的硬件支持 移位寄存器: 为每个页面配置一个移位寄存器R=Rn-1Rn-2…R0 当进程访问某物理块时,将Rn-1位置1 每隔一定时间(如100ms)将寄存器右移一位 2) 栈: 利用栈保存当前使用的各个页面的页号。 每当进程访问某页时,将该页号从栈中取出,压入栈顶。 栈顶始终最新被访问的页面,栈底是最久未使用的页面。 4.8.3 Clock置换算法 1 简单Clock置换算法 每页置一个访问位,内存中各页面链接成一个循环队列; 一个页面首次

文档评论(0)

ajgoaw + 关注
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档