- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
操作系统课件5_1
哲学家就餐问题—管程解决方法 Procedure put_down(I:0..4); Begin fork[I]:=free; signal(q[I]) End; Procedure init; Var I:0..4; Begin For I:=0 to 4 Do fork[I]:=free; End; Begin init End; * 哲学家就餐问题—管程解决方法 Var forks:dining_philosophers; I号哲学家活动: Repeat {thinking} with_two_forks:=false; Repeat forks.pick_up(I); If forks.try_pick_up((I+1)mod 5) Then with_two_forks:=true Else forks.put_down(I) Until with_two_forks; {Eating} forks.put_down(I); forks.put_down((I+1)mod 5) Until false; * 例5-1:无环路,无死锁 P={p1,p2,p3}, R={r1(1),r2(2),r3(1),r4(3)} E={(p1,r1),(p2,r3),(r1,p2),(r2,p1),(r2,p2), (r3,p3),(r4,p3)} p1 p2 p3 r1 r3 r2 r4 * 例5-2:有环路,有死锁 p1 p2 p3 r1 r3 r2 r4 增加边(p3,r2) * 例5-3:(有环路,无死锁) p1 p2 p3 p4 r1 r2 * 5.5.1 资源分配图的定义 结论: 如果资源分配图中不存在环路, 则系统中不存在死锁; 如果资源分配图中存在环路, 则系统中可能存在死锁, 也可能不存在死锁 * 5.5.2 资源分配图的约简 通过对资源分配图的约简,可判断系统是否处于死锁状态 资源分配图中的约简方法如下: (1)寻找一个非孤立且没有请求边的进程结点pi,若无算法结束; (2)去除所有pi的分配边使pi成为一个孤立结点; (3)寻找所有请求边均可满足的进程pj,将pj的请求边全部改为分配边; (4)转步骤(1). * 5.5.2 资源分配图的约简 若算法结束时,所有结点均为孤点,则称资源分配图是可以完全约简的,否则称为不可完全约简的 文献已证明,系统处于死锁状态的充分必要条件是资源分配图不可完全约简。这一结论称为死锁定理 ?定理: S为死锁状态的充分必要条件是S的资源分配图不可完全约简 * 5.6 死锁预防 对进程有关资源的活动加限制,所有进程遵循这种限制,即可保证没有死锁发生。 优点:简单,系统不需要做什么。 缺点:对进程的约束,违反约束仍可能死锁。 预防方法: 预先分配法 有序分配法 * 5.6.1 预先分配法 进程:运行前申请所需全部资源; 系统: 能够满足,全部分配, 否则,一个也不分配。 破坏“保持申请hold-and-wait”条件 缺点: 资源利用效率低; 一次提出申请困难 进程在运行前可能并不知道它所需要的全部资源 * 5.6.2 有序分配法 事先将所有资源类全排序, 赋予每一个资源类一个唯一的整数 形式化定义:设R={r1,r2,…,rm}为资源类集合, 定义一个一对一的函数f: R→N, 其中N为自然数集 规定进程必需按照资源编号由小到大的次序申请资源 * 5.6.2 有序分配法 资源集:R={r1,r2,…,rn} 函数:F:R?N 例如:R={scanner,tape,printer} F(scanner)=1; F(tape)=2; F(printer)=3; 进程pi可以申请资源rj中的实例??ri,pi占有ri, F(ri)?F(rj) r1 r2 rk rm ... ... 申请次序 * 5.6.2 有序分配法 当进程不占有任何资源时, 它可以申请某一个资源类(如ri)中的任意多个资源实例 此后它可申请另一个资源类(如rj)中的若干个实例的充要条件是:f(ri)f(rj) 如果进程需要同一资源类中的若干个资源实例, 则必需在一个申请命令中同时发出请求 一个进程可以申请某一资源类ri中资源实例的充要条件是它必须已经释放了资源类rj中的所有资源实例, 这里f(ri)≤f(r
您可能关注的文档
最近下载
- 防范非法宗教向校园渗透ppt.docx VIP
- 广东省衡水金卷2024-2025学年高一上学期11月联考英语试卷含答案.pdf VIP
- 广东省衡水金卷2024-2025学年高一上学期11月联考语文试卷含答案.pdf VIP
- DB51T 1510-2012 森林资源规划设计调查操作技术规程.pdf VIP
- VARCO-顶驱培训完整版.ppt VIP
- 广东省衡水金卷2024-2025学年高一上学期11月联考生物试卷含答案.pdf VIP
- 【新课标】6 人大代表为人民 第二课时 课件 核心素养目标.ppt VIP
- TCRHA 089-2024 成人床旁心电监测护理规程.pdf VIP
- 中医内科学研究进展知到章节答案智慧树2023年浙江中医药大学.docx VIP
- 广东省衡水金卷2024-2025学年高一上学期11月联考历史试卷.docx VIP
有哪些信誉好的足球投注网站
文档评论(0)