生产围棋工人不小心把相等数量黑子和白子混在一块.ppt
《生产围棋工人不小心把相等数量黑子和白子混在一块.ppt》由会员分享,可在线阅读,更多相关《生产围棋工人不小心把相等数量黑子和白子混在一块.ppt(48页珍藏版)》请在三一办公上搜索。
1、生产围棋的工人不小心把相等数量的黑子和白子混在一块,该系统由两个并发执行的进程组成,系统功能如下:(1)进程A专门拣黑子,进程B专门拣白子;(2)每个进程每次只拣一个子,当一个进程在拣子时不允许另一个进程去拣子(3)当一个进程拣一个子后,必让另一个进程拣一个子试用同步原语管理进程,使其能正确实现上述功能。(假定系统启动时先让进程A拣子),P111 5.19若将读者离开与读者进入分别看成一个进程,试用同步原语描述进程间关系。读者进入进程 读者离开进程进入 注销登记 离开,一条小河上有一座独木桥,现河东河西都有人要过桥,同一方向的可连续过桥;某方向有人过桥时另一方向的人须等待。如果把每个过桥者看作
2、一个进程,为保证安全,用信号量协调他们之间的关系。,第七章 死锁(Deadlock),1、死锁问题的提出2、死锁的必要条件3、死锁的预防4、死锁的避免和银行家算法5、死锁的检测6、死锁的恢复,7.1 死锁问题的提出,死锁是指计算机系统和进程所处的一种状态。常定义为:在系统中的一组进程,由于竞争系统资源或由于彼此通信而永远阻塞,我们称这些进程处于死锁状态。,死锁的现象,A进程 B进程wait(s1)wait(s2)wait(s2)wait(s1)signal(s2)signal(s1)signal(s1)signal(s2),死锁的原因,资源不足,竞争资源进程推进路径不当,申请不同类型资源产生死
3、锁,P1:申请打印机申请扫描仪使用释放打印机释放扫描仪,P2:申请扫描仪申请打印机使用释放打印机释放扫描仪,申请同类资源产生死锁(如内存),设有资源R,R有m个分配单位,由n个进程P1,P2,Pn(n m)共享。假设每个进程对R的申请和释放符合下列原则:*一次只能申请一个单位*满足总申请后才能使用*使用完后一次性释放,m=2,n=3资源分配不当导致死锁产生,7.2 死锁的必要条件,资源的分类死锁的必要条件,一、资源的分类,可抢占资源、不可抢占资源共享资源、独享资源可再次使用的永久资源、消耗性的临时资源,二、死锁的必要条件,互斥条件:一个资源每次只能给一个进程使用不可抢占条件:资源申请者不能强行
4、从资源占有者手中 夺取资源,资源只能由占有者自愿释放部分分配条件:一个进程在申请新资源的同时保持对原 有资源的占有循环等待条件:存在一个进程等待队列 P1,P2,Pn,其中P1等待P2占有的资源,P2等待P3占有 的资源,Pn等待P1占有的资源,形成 一个进程等待环路,7.3 死锁的预防,在系统设计时确定资源分配算法,保证不发生死锁。具体的做法是破坏产生死锁的四个必要条件之一预防死锁是一种较可取 的方法,但资源的利用率较低。,1、破坏互斥条件,互斥是正确使用非共享资源的唯一手段。故不能通过取消互斥来预防死锁。,2、破坏不可抢占条件,适用于状态容易保护,稍后又容易恢复的资源。如CPU,内存。,3
5、、破坏部分分配条件,采用预先静态分配法:每个进程执行前,一次分配其所有资源允许进程仅当自己未占有资源时才申请资源。,4、破坏循环等待条件,有序资源分配为使“循环等待”条件不满足,我们把所有资源按类型进行排队,并赋予不同的编号。申请 按序号递增次序进行,每个进程,释放 按序号递减次序进行,优点:较前几种,改善资源的利用率。缺点:进程实际需求和资源顺序不一致 会造成资源浪费。,7.4 死锁的避免和银行家算法,死锁避免安全状态和不安全状态银行家算法数据结构银行家算法,一、死锁避免定义,在系统运行过程中,对进程发出的每一个系统能够满足的资源申请进行动态检查,并根据检查结果决定是否分配资源,若分配后系统
6、可能发生死锁,则不予分配,否则予以分配,例 单资源的银行家算法,假定某银行家有一笔资金可供一批顾客借用,并假定:每个顾客预知他的最大借款总额,且不超过银行家拥有的可用资金总和。每次借款以一万元为单位。每当顾客提出借口请求,银行家可立即给予,或让顾客等一段时间。只有当顾客达到他的预定最大借款额时,他才在有限时间依次归还。,安全状态:如果在某时刻,银行有可能使它当时的所有的顾客在以后有限时间内完成全部成交,则此刻的状态是安全。不安全状态:永远不具有成交的可能,则为不安全。,C 2 P 4(4)Q 2(1)R 2(7),C:现金总额,P,Q,R:顾客,C 4 P 4(4)R 2(7),C 8 R 2
7、(7),C 10,安全状态,C 1 P 4(4)Q 2(1)R 3(6),C 3 P 4(4)R 3(6),不安全状态,二、安全状态和不安全状态,安全状态:指系统能按某种进程顺序如 为每个进程分配资源直至最大需求。不安全状态:在系统中不存在这样的序列。,三、银行家算法数据结构,Available:一个长度为m的向量,表示每类资源的可用数目。如果Availablej=k,表明Rj类资源有k个。Max:一个mn矩阵,定义每个进程的最大资源需求数,如果Maxi,j=k,表示进程i需要Rj类资源有k个。Allocation:一个mn矩阵,定义当前分配给每个进程每类资源的数目。如果Allocation
8、i,j=k,则表示进程I获得:Rj类资源有k个Need:一个mn矩阵,表示每个进程还需多少资源。如果 Needi,j=k,表示进程I还需要Rj类资源有k个。表示进程I需要Rj类资源有k个,四、银行家算法,设:Requesti是进程Pi的请求向量当Pi发出资源请求后,系统按如下步骤进行检查:1、如果Requesti Needi 则go to 2,否则认为出错。2、如果Requesti Available 则go to 3,否则表示无足够资源,Pi等待。3、系统进行试探分配,并求该相应数据结构数据 Available:=Available-Requesti Allocationi:=Allocat
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 生产 围棋 工人 小心 相等 数量 黑子 白子 一块

链接地址:https://www.31ppt.com/p-5875782.html