chapter4_存储管理讲义.ppt

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

* * * * * * * * * * (4)页面缓冲算法 该算法是对FIFO算法的发展,通过建立置换页面的缓冲,就有机会找回刚被置换的页面,从而减少系统I/O的开销。 页面缓冲算法用FIFO算法选择被置换页,选择出的页面不是立即换出,而是放入两个链表之一,如果页面未被修改,就将其归入到空闲页面链表的末尾,否则将其归入已修改页面链表末尾。这些空闲页面和已修改页面会在内存中停留一段时间 。如果这些页面被再次访问,只需将其从相应链表中移出,就可以返回进程,从而减少一次I/O开销。 (4)页面缓冲算法 需调入新页,则将新页读入到空闲页面链表的第一个页面中,然后将其从该链表中移出。当已修改的页面达到一定数目后,再将它们一起写入磁盘,然后将它们归入空闲页面链表。这样能大大减少I/O操作的次数。 返回 请求分页系统的性能分析 缺页率对有效访问时间的影响 设存储器的访问时间为ma,缺页率为p,则有效访问时间=(1-p)*ma+p*缺页中断时间 =ma+p*(缺页中断时间-ma) 工作集(缺页率与进程分得的物理块数目的关系) 工作集:在某段时间间隔里,进程实际要访问的页面集合,记为w(t, △ ) 注:工作集窗口大小的选择 抖动产生的原因和预防方法 颠簸或抖动: 页面置换算法是用来确定哪一页换出,但算法的优劣直接影响到系统的效率,若选用的算法不合适,可能会出现这种现象:刚被淘汰出去的页,过后不久又要访问它,需要再次调入,而调入后不久又再次被淘汰,然后又要访问,如此反复,使系统把大部时间用在了页面的调进调出上,这种现象称为颠簸或抖动。 (一个进程的页面经常换入换出) 预防方法 选择合适的局部置换策略 在CPU调度程序中引入工作集算法 挂起若干进程 返回 降低缺页率防止抖动 1、增加分配给进程的页框数 2、选择合适的页面置换算法 3、改进应用程序结构 有一个程序要将128*128的数组A置为初值“0”,假定页面大小128个字,数组A中的元素每一行放在一个页中,假定系统分给此进程的物理块只有1块(m=1),开始第一页在内存,若程序如下编制: Var a:array [1..128,1..128] of integer For j:=1 to 128 do For i:=1 to 128 do A[i,j]:=0; 请问,系统会产生多少次缺页中断,请改写次程序,让其缺页中断大大减少。 解: (1) 从程序可以看出,该程序是按照列的顺序来存放数据的。由于只给一个页面,而且每一行要放在一个页面中,所以每次放一个数据,就会导致其页面不在内存,引起缺页中断。 所以会产生128*128-1次缺页中断。 2既然要减少缺页中断次数,考虑到存放数据的特点,一行数据放在一个页面里面,所以应该按照行来存放数据。故程序应该按照如下方式编写: Var a:array [1..128,1..128] of integer For i:=1 to 128 do For j:=1 to 128 do A[i,j]:=0; 总共产生128-1=127次缺页中断。 4.8 请求分段式存储管理方式 请求分段存储管理系统也与请求分页存储管理系统一样,为用户提供了一个比内存空间大得多的虚拟存储器。虚拟存储器的实际容量由计算机的地址结构确定。 在请求分段存储管理系统中,作业运行之前,只要求将当前需要的若干个分段装入内存,便可启动作业运行。在作业运行过程中,如果要访问的分段不在内存中,则通过调段功能将其调入,同时还可以通过置换功能将暂时不用的分段换出到外存,以便 腾出内存空间。 4.8 *请求分段式存储管理方式 请求分段中的硬件支持 段表机制 缺段中断机构 地址变换机构 分段共享与保护 共享段表 共享段的分配与回收 分段保护(越界检查、存取控制检查、环保护机构) 返回目录 段表机制 存取方式:存取属性(执行、只读、允许读/写) 访问字段A:记录该段被访问的频繁程度 修改位M:表示该段在进入内存后,是否被修改过。 存在位P:表示该段是否在内存中。 增补位:表示在运行过程中,该段是否做过动态增长。 外存地址:表示该段在外存中的起始地址。 段名 段长 段基址 存取方式 访问字段A 修改位M 存在位P 增补位 外存地址 缺段中断机构 当被访问的段不在内存中时,将产生一缺段中断信号。其缺段中断的处理过程如图: 虚段S不在内存 返回 阻塞请求进程 内存中有合适 的空闲区吗? 从外存读入段S 修改段及内存空区链 唤醒请求进程 空区容量总 和能否满足? 空区拼接,以形成 一个合适的空区 淘汰一个或多个实段, 以形成一个合适空区 N N Y

文档评论(0)

441113422 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档