网站大量收购闲置独家精品文档,联系QQ:2885784924

0第3章进程管理.ppt

  1. 1、本文档共194页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
例1: -系统有2台磁带机(T1,T2). -两个进程P1、 P2 P1 P2 request(T1); request(T2); request(T2); request(T1); use(T1,T2 ); use(T1,T2 ); release(T1,T2); release(T1,T2); 例2: 信号量 A、B,初值 1 P1 P2 P(A); P(B) P (B); P(A) … … 例3: 当每个哲学家均拿起左手的叉子时,都在等待右手叉子,陷入死锁。 一般地,可以把死锁描述为:有并发进程P1,P2,…,Pn,它们共享资源R1,R2,…,Rm(n0,m0,n=m)。其中,每个Pi(1≤i≤n)拥有资源Rj(1 ≤j ≤m),直到不再有剩余资源。同时,各Pi又在不释放Rj 的前提下要求得到Rk(k≠j,1 ≤k≤m),从而造成资源的互相占有和互相等待。在没有外力驱动的情况下,该组并发进程停止往前推进,陷入永久等待状态。 例4:哲学家就餐 3. 产生死锁的必要条件 (1) 互斥条件(Mutual exclusion)。系统中存在需互斥使用的资源。 (2) 不剥夺条件(No preemption)。系统中存在不可剥夺使用的资源。 (3) 部分分配( Hold and wait )。系统中存在已经占有一定资源,但还在等待新资源的进程。 (4) 环路条件( Circular wait )。存在进程组成的循环链,链中每一个进程已获得的资源同时被下一个进程所请求。 显然,只要使上述4个必要条件中的某一个不满足,则死锁就可以排除。 资源分配图 V 两种类型: P = {P1, P2, …, Pn}, 系统包含的所有进程集合. R = {R1, R2, …, Rm},系统包含的所有资源集合. 请求边 :Pi ? Rj 分配边 :Rj ? Pi 顶点集: V; 边集 E. Pi Pi Rj Rj Pi 资源分配图示例 含有死锁的资源分配图示例 含有环路,但没有死锁的资源分配图 基本结论: 如果资源分配图不含环路 ?没有死锁 如果资源分配图含有环路 ? -如果每类资源中包含1个资源,则死锁。 -如果每类资源中包含多个资源,则可能死锁。 3.8.2 死锁的排除方法 对死锁的研究方法一般可分为预防、避免、检测与恢复等三种。预防是采用某种策略,限制并发进程对资源的请求,从而使得死锁的必要条件在系统执行的任何时间都不满足。避免是指系统在分配资源时,根据资源的使用情况提前做出预测,从而避免死锁的发生。死锁检测与恢复是指系统设有专门的机构,当死锁发生时,该机构能够检测到死锁发生的位置和原因,并能通过外力破坏死锁发生的必要条件,从而使得并发进程从死锁状态中恢复出来。 有的系统(UNIX,Windows),对死锁采取忽略的策略,以减少系统开销。 1. 死锁预防(Deadlock Prevention) 一种方法是打破资源的互斥和不可剥夺这两个条件,例如允许进程同时访问某些资源等。这种方法不能解决访问那些不允许被同时访问的资源时所带来的死锁问题-通常是不可取的。 另一种方法则是打破资源的部分分配这个死锁产生的必要条件。预先静态分配法: 即预先分配各并发进程所需要的全部资源。如某个进程的资源得不到满足时等待。 这种方法有如下缺点: (1) 一个进程在执行之前需提出它所需要的全部资源 (2) 一个进程只有在所有要求资源都得到满足后才开始执行 (3) 资源利用率低 (4) 降低了进程的并发性 另外一种死锁的预防方法是打破死锁的环路条件。即把资源分类按顺序排列,使进程在申请、保持资源时不形成环路。 有序资源使用法: 如有m种资源,则列出R1<R2<…<Rm。若进程Pi保持了资源Ri,则它只能申请比Ri级别更高的资源Rj(Ri <Rj )。释放资源时必须是Rj先于Ri被释放,从而避免环路的产生。 例如:F(tape drive)=1 F(disk drive)=5 F(Printer)=12 如果一个进程一旦申请了磁盘驱动器,则不能再申请磁带机。 这种方法有如下缺点:限制了进程对资源的请求。 证明: 假设系统存在环路 : P1,P2 ,P3, …Pn

文档评论(0)

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

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

1亿VIP精品文档

相关文档