文档详情

《计算机操作系统 》课件_3.7进程死锁.pptx

发布:2025-03-04约3.62千字共42页下载文档
文本预览下载声明

死锁的基本概念

预防死锁

避免死锁

死锁的检测与解除

;3.7.1死锁的基本概念;例2.竞争外部设备。设系统中有打印机、扫描仪各一台,进程A、B的申请如下:;死锁的定义:

一组进程中,每个进程都无限等待被该组进程中另一进程所占有的且永远无法释放的资源,这种现象称为进程死锁,这一组进程就称为死锁进程。;竞争资源:;扫描仪;执行顺序1:

P1:…Release(S1);Request(S3);…

P2:…Release(S2);Request(S1);…

P3:…Release(S3);Request(S2);…

执行顺序2:

P1:…Request(S3);

Release(S1);…

P2:…Request(S1);

Release(S2);…

P3:…Request(S2);

Release(S3);…;合理的推进顺序:如按曲线①、②和③不会产生“死锁”;;3.产生死锁的必要条件;4.处理死锁的基本方法;破坏占有且等待条件

静态分配资源:

在作业调度时为选中的作业分配它所需要的所有资源,当资源一旦分配给该作业后,在其整个运行期间这些资源为它独占。

缺点:1)资源利用率低;

2)进程的运行可能被推迟,甚至产生“饥饿”现象;

要求进程在没有资源时才可申请资源:

允许动态申请资源;2.破坏不可剥夺条件

进程申请资源r时,有则分配;若没有则需释放其所占有的全部资源后进入阻塞状态。

进程申请资源r时,有则分配;若没有则进一步判断是否能从其他进程那里进行剥夺;若不能剥夺则进入阻塞状态。;3.破坏循环等待条件:

采用按序分配资源策略:;安全状态定义

设系统中有n个进程,若存在一个进程序列P1,P2,…,Pn。使得进程Pi(i=1,2,…,n)以后还需要的资源可以通过系统现有空闲资源加上所有Pj(ji)已占有的资源来满足,则称此时系统处于安全状态,进程序列P1,P2,…,Pn称为安全序列,因为各进程至少可以按照安全序列中的顺序依次执行完成。

如果系统无法找到这样一个安全序列,则称系统处于不安全状态。;安全状态之例:

假设某系统共有15台磁带机和三个进程P0、P1、P2,各进程对磁带机的最大需求数量、T0时刻已经分配到的磁带机数量、还需要的磁带机数量以及系统剩余的可??磁带机数量如下表所示:;由安全状态向不安全状态的转换

如果不按照安全顺序分配资源,则系统可能由安全状态进入不安全状态。

进程最大需求量已分配可用

P01264

P152

P2103;2.银行家算法;银行家算法中的数据结构;③分配矩阵Allocation[1..n,1..m]

该矩阵表示系统中每个进程当前已分配到的每类资源数量。

Allocation[i,j]=K,表示进程i当前已分得Rj类资源的数目为K。

④需求矩阵Need[1..n,1..m]

该矩阵表示每个进程尚需的各类资源数。Need[i,j]=K,则表示进程i还需要Rj类资源K个,方能完成其任务。;当进程Pi提出资源申请Requesti[m]时,系统执行下列步骤:

⑴若Request[i]≤Need[i],转⑵;否则错误返回;

⑵若Request[i]≤Available,转⑶;否则,表示尚无足够资源,Pi须等待;

⑶系统尝试把资源分配给进程Pi,并修改以下数据结构:

Available:=

Allocation[i]:=

Need[i]:=

⑷执行安全性算法:

检查此次资源分配后,系统是否处于安全状态。若安全,则将资源分配给进程Pi,以完成本次分配;否则,将本次的试探分配作废,恢复原来的资源分配状态,让进程Pi等待。;①设置两个临时向量:

工作向量Work:表示系统可提供给进程继续运行所需的各类资源数目,它含有m个元素,在执行安全算法开始时,Work=Available;

Finish[n]:它表

显示全部
相似文档