[理学]操作系统第3章.ppt

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

思考题 思考题 练习:有三类资源A(17)、B(5)、C(20)。有5个进程P1—P5。T0时刻系统状态如下: 问(1) T0时刻是否为安全状态,给出安全系列。 (2) T0时刻,P2: Request(0,3,4),能否分配,为什么? (3) 在(2)的基础上P4:Request(2,0,1),能否分配,为什么? (4) 在(3)的基础上P1:Request(0,2,0),能否分配,为什么? 解:(1) T0时刻的出安全系列 (2) P2: Request(0,3,4) 因( Available =2 3 3) Request(0,3,4) 所以不能分配 (3) P4:Request(2,0,1) (4) P1:Request(0,2,0) 思考题 1、一台计算机共8台磁带机,由N个进程共享,每个进程最多要3台,问N为多少时不会有死锁,为什么? 2、有R1(2)、R2(1)两类资源和两个进程P1、P2,两个进程均以申请R1?申请R2?申请R1?释放R1?释放R2?释放R1顺序使用资源,求可能达到的死锁点,并画出此时的资源分配图。 解 当两个进程都执行完第1步后,无论哪个进程执行完第2步,以后,这两个进程再申请资源时就会死锁。 2. 进程推进顺序不当引起死锁 1) 进程推进顺序合法 2) 进程推进顺序非法 图 3-15 进程推进顺序对死锁的影响 3.5.2 产生死锁的必要条件 互斥条件 (2) 请求和保持条件 (3) 不剥夺条件 (4) 环路等待条件 3.5.3 处理死锁的基本方法 预防死锁:破坏产生死锁的四个必要条件中的一个或几个条件 (注:互斥条件不能破坏) (2) 避免死锁:在资源的动态分配过程中,用某种方法去防止系统进入不安全状态。 (3) 检测死锁。 (4) 解除死锁:撤消或挂起一些进程 3.6 预防死锁的方法 3.6.1 预防死锁 1. 摒弃“请求和保持”条件 2. 摒弃“不剥夺”条件 3. 摒弃“环路等待”条件 3.6.2 系统安全状态 1. 安全状态 在避免死锁的方法中,允许进程动态地申请资源,但系统在进行资源分配之前,应先计算此次资源分配的安全性。若此次分配不会导致系统进入不安全状态,则将资源分配给进程; 否则,令进程等待。 所谓安全状态,是指系统能按某种进程顺序(P1, P2, …,Pn)(称〈P1, P2, …, Pn〉序列为安全序列),来为每个进程Pi分配其所需资源,直至满足每个进程对资源的最大需求,使每个进程都可顺利地完成。如果系统无法找到这样一个安全序列,则称系统处于不安全状态。 2. 安全状态之例 假定系统中有三个进程P1、 P2和P3,共有12台磁带机。进程P1总共要求10台磁带机,P2和P3分别要求4台和9台。假设在T0时刻,进程P1、P2和P3已分别获得5台、2台和2台磁带机,尚有3台空闲未分配,如下表所示: 3 5 2 2 10 4 9 P1 P2 P3 可 用 已 分 配 最 大 需 求 进 程 3. 由安全状态向不安全状态的转换 如果不按照安全序列分配资源,则系统可能会由安全状态进入不安全状态。例如,在T0时刻以后,P3又请求1台磁带机,若此时系统把剩余3台中的1台分配给P3,则系统便进入不安全状态。因为,此时也无法再找到一个安全序列, 例如,把其余的2台分配给P2,这样,在P2完成后只能释放出4台,既不能满足P1尚需5台的要求,也不能满足P3尚需6台的要求,致使它们都无法推进到完成,彼此都在等待对方释放资源,即陷入僵局,结果导致死锁。 3.6.3 利用银行家算法避免死锁 1. 银行家算法中的数据结构 (1) 可利用资源向量Available。这是一个含有m个元素的数组,其中的每一个元素代表一类可利用的资源数目,其初始值是系统中所配置的该类全部可用资源的数目,其数值随该类资源的分配和回收而动态地改变。如果Available[j]=K,则表示系统中现有Rj类资源K个。 (2) 最大需求矩阵Max。这是一个n×m的矩阵,它定义了系统中n个进程中的每一个进程对m类资源的最大需求。如果Max[i,j]=K,则表示进程i需要Rj类资源的最大数目为K。 (3) 分配矩阵Allocation。这也是一个n×m的矩阵,它定义了系统中每一类资源当前已分配给每一进程的资源数。如果Allocation[i,j]=K,则表示进程i当前已分得Rj类资源的数目为K。 (4) 需求矩阵Need。这也是一个n×m

文档评论(0)

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

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

1亿VIP精品文档

相关文档