第三章节 处理机调度和死锁.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第三章节 处理机调度和死锁

处理机调度 进程数目处理机数目 动态分配 由处理机调度程序完成 作业提交?处理机调度?获得处理机,执行 3.1.3 中级调度(中程调度) 使那些暂时不能运行的进程不再占用宝贵的内存资源,将它们调至外存上去等待,把此时的进程状态称为就绪驻外存状态或挂起状态。 当这些进程重又具备运行条件且内存又稍有空闲时,由中级调度来决定把外存上的那些又具备运行条件的就绪进程重新调入内存,并修改其状态为就绪状态,挂在就绪队列上等待进程调度。 中级调度实际上就是存储器管理中的对换功能 3.2.1 调度队列模型 一、仅有进程调度的调度队列模型 3.5 产生死锁的原因和必要条件 所谓死锁(deadlock),是指多个进程在运行过程中因争夺资源而造成的一种僵局,当进程处在这种僵持状态时,若无外力作用,它们都将无法再向前推进。 二、进程推进顺序不当引起死锁 进程推进顺序合法 进程推进顺序非法 资源分配图 进程 有4个实例的某类资源 Pi 申请的一个实例 Rj Pi 持有Rj的一个实例 Example 死锁 ! 死锁 ? Basic Facts 图中没有环 ? 没有死锁. 图中有环 ? 每个资源类型只有一个实例, 那么一定死锁. 每个资源类型只有多个实例, 那么可能死锁. 安全 / 不安全 死锁 系统在安全状态 ? 不会死锁. 系统在不安全状态 ? 可能死锁. 避免 ? 保证系统不会进入不安全状态. 银行家算法之例 五个进程{P0,P1,P2,P3,P4},三种资源{A,B,C},数量分别为10、5、7,在T0时刻的资源分配情况: 银行家算法之例 五个进程{P0,P1,P2,P3,P4},三种资源{A,B,C},数量分别为10、5、7,在T0时刻的资源分配情况: (1)T0时刻的安全性 利用安全性算法对T0时刻的资源分配情况进行分析,可得下表所示的T0时刻的安全性分析,从中得知,T0时刻存在着一个安全序列{P1,P3,P4,P2,P0},故系统是安全的: (2) P1请求资源 P1发出请求向量Request(1,0,2),系统按银行家算法进行检查: (1)Request1(1,0,2)≤Need(1,2,2) (2)Request1(1,0,2)≤Available(3,3,2) (3)系统先假定可为P1分配资源,并修改Available,Allocation和Need向量,由此形成的资源变化情况如图 (4)我们再利用安全性检查此时系统是否安全。 由所进行的安全性检查得知,可以找到一个安全序列{P1,P3,P4,P2,P0}。因此,系统是安全的,可以立即将P1所申请的资源分配给它。 (3)P4请求资源 P4发出请求向量Request(3,3,0),系统按银行家算法进行检查: (1)Request4(3,3,0)≤Need4(4,3,1)。 (2)Request4(3,3,0)Available(2,3,0),让P4等待。 (4) P0请求资源 P0发出请求向量Request0(0,2,0),系统按银行家算法进行检查: (1)Request0(0,2,0)≤Need0(7,4,3)); (2)Request0(0,2,0)≤Available(2,3,0), (3)进行安全性检查 可用资源Available{2,1,0}已不能满足任何进程的需要,故系统进入不安全状态,此时系统不分配资源。 3.7?死锁的检测和解除 3.7.1、 死锁的检测 系统必须须提供检测和解除死锁的手段: (1)保存有关资源的请求和分配信息; (2)提供算法以利用这些信息来检测系统是否进入死锁。 1、资源分配图(Resource Ailocation Graph) 系统死锁可利用资源分配图来描述。G=(N,E): (1)N分为两个互斥的子集,进程结点P=(P1,P2,…,Pn),资源结点R={r1,r2,…,rn},N=P∪R。 (2)E中的边e∈E,都连接着P中的一个结点和R中的一个结点,e={pi,rj}是资源请求边,由进程pi指向资源rj,它表示进程pi请求一个单位的rj资源。 3.7.1?死锁的检测 2、死锁定理 简化资源分配图来检测系统处于S状态时,是否为死锁状态。简化方法如下: (1)在资源分配图中,找出一个既不阻塞又非独立的进程结点pi。在顺利情况下,pi可获得所需资源而继续执行,直至运行完毕,再释放其所占有的全部资源。这相当于消去pi所有的请求边和分配边,使之成为孤立的结点。 3.7.1?死锁的检测 2、死锁定理 S为死锁状态的充分条件是:当且仅当状态S的资源分配图是不可完全简化的。 可完全简化? 3、死锁检测中的数据结构 死锁检测中的数据结构,类似于银行家算法

文档评论(0)

qiwqpu54 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档