2021操作系统期末复习.ppt

  1. 1、本文档共75页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
如果在内存中分配 4 个页面,则缺页情况如下: 12 次访问中有缺页 10 次; FIFO 页 0 页 1 页 2 页 3 缺页 x x x 1 1 2 2 1 3 3 2 1 4 4 3 2 1 x 1 4 3 2 1 √ 2 4 3 2 1 √ 5 5 4 3 2 x 1 1 5 4 3 x 2 2 1 5 4 x 3 3 2 1 5 x 4 4 3 2 1 x 5 5 4 3 2 x ? Belady 现象的 原因 : FIFO 算法的 置换特征 与进 程 访问内存的动态特征 是 矛盾 的,即被置换的页 面并不是进程不会访问的。 习题 1 .某进程执行时的页面走向为 1 2 3 4 1 2 5 1 2 3 4 5 ,分别画出其分配物理块为 3 的最佳置换算 法的置换图。 2 .某进程执行时的页面走向为 1 2 3 4 1 2 5 1 2 3 4 5 ,分别画出其分配物理块为 3 和 4 的 FIFO 算 法的置换图。 3 .在请求分页管理系统中,一个作业要依次访问 如下页面: 3 4 2 1 4 3 1 4 3 1 4 5 ,采用 LRU 置换算法求出访问过程中发生的缺页中断的次数 及缺页率。设分给作业的存储块数为 3. 4 .在请求分页管理系统中,一个作业要依次访问 如下页面: 2 3 2 1 5 2 4 5 3 2 5 2 ,设分给作 业的存储块数为 3 。若用最佳置换算法,先进先 出, LRU 置换算法求出访问过程中发生的缺页次 数及缺页率。 ? 请求分页存储管理方式中,假定系统为某进程分 配了 4 个页框,页面的引用顺序为: 6 、 1 、 2 、 0 、 3 、 0 、 4 、 2 、 3 、 0 、 3 、 2 、 6 、 0 ,采用 FIFO 置 换算法产生多少次页面置换?缺页率是多少? (2) 页面置换次数为 3 次 (3) 缺页率为: 7/14=50% ? 请求分页存储管理方式中,假设分配给某进程的 页框数为 3 ,若程序的页面引用顺序为: 0 、 2 、 3 、 4 、 1 、 2 、 5 、 0 、 2 、 3 、 2 、 5 ,采用最佳置换算 法产生多少次页面置换?缺页率是多少? (2) 页面置换次数为 4 次 (3) 缺页率为: 7/12=58% 3.6.2 避免死锁 二、银行家算法 避免死锁算法中最有代表性的算法是 Dijkstra E.W 于 1968 年提出的银行家算法: 该算法需要检查申请者对资源的最大需求量,如 果系统现存的各类资源可以满足申请者的请求, 就满足申请者的请求。 这样申请者就可很快完成其计算,然后释放它占 用的资源,从而保证了系统中的所有进程都能完 成,所以可避免死锁的发生。 ? 1 .数据结构 3.6.3 利用银行家算法避免死 锁 – 可利用资源向量 available 其初值是系统中该类资源的最大可用数目,其值将随 着该类资源的分配与回收而动态改变。 available[j]=k: 系统现有 Rj 类资源 k 个; – 最大需求矩阵 Max 是一个 n × m 的矩阵,定义了系统中的 n 个进程中的 每一个进程对 m 类资源的最大需求量。 max[i,j]=k: 进程 i 需要 Rj 的最大数 k 个; 3.6.3 利用银行家算法避免死 锁 – 分配矩阵 Allocation 是一个 n × m 的矩阵,定义了系统中每一类资源 的数量。 allocation[i,j]=k: 进程 i 已得到 Rj 类 资源 k 个; – 需求矩阵 Need 是一个 n × m 的矩阵,用以表示每一个进程尚需 的各类资源数。 need[i,j]=k: 进程 i 还需 Rj 类资 源 k 个,方能完成任务。 – 有: need[i,j]= max[i,j] - allocation[i,j] – request i 进程 i 请求资源数 ? 2 . 银行家算法 3.6.3 利用银行家算法避免死 锁 N N reqi=needi 当进程 Pi 向系统提出申请类资源 请求时,系统按下列步骤检查: ① 若 Request i [j]Need[i,j], 出错 处理。 否则,转向下一步。 ② 若 Request i [j]Available[i,j] 出错处理。 否则 , 转向下一步。 error Y reqi=avail i N block Y ③ 系统试着把资源分给进程 Pi ,并修改下列数值。 Avail[j]=Avail[j]-Req i [j] ; 3.6.3 利用银行家算法避免死 锁 avail=avail-reqi alloci=alloci+reqi needi=needi-reqi Allo[i,j] = Allo[i,j]+ Req i [j]; Nee

文档评论(0)

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

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

1亿VIP精品文档

相关文档