- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
ch6进程间的制约关系(阅读)
第6章 进程间的制约关系 6.1 进程间的制约关系 6.2 信号量与P、V操作 6.2.1 信号量与P、V操作的定义 6.2.2 用P、V操作实现互斥 为临界资源设置一个互斥信号量mutex(MUTual Exclusion),其初值为1;在每个进程中将临界区代码置于P(mutex)和V(mutex)原语之间 必须成对使用P和V原语:遗漏P原语则不能保证互斥访问,遗漏V原语则不能在使用临界资源之后将其释放(给其他等待的进程);P、V原语不能次序错误、重复或遗漏 用P.V操作解决GET与COPY的同步问题 生产者-消费者问题 问题描述:若干进程通过有限的共享缓冲区交换数据。其中,生产者进程不断写入,而消费者进程不断读出; Question: 若每个哲学家同时拿起各自左边的筷子? 6.3 死锁、高级进程通信 6.3.1 死锁与产生死锁的必要条件 6.3.2 死锁的预防 6.3.3 死锁的避免 银行家算法 银行家拥有一笔周转资金 客户要求分期贷款,如果客户能够得到各期贷款,就一定能够归还贷款,否则就一定不能归还贷款 银行家应谨慎的贷款,防止出现坏帐 用银行家算法避免死锁 操作系统 (银行家) 操作系统管理的资源 (周转资金) 进程 (要求贷款的客户) 单项资源的银行家算法 银行家算法例 如果系统中共有五个进程和A、B、C三类资源; A类资源共有10个,B类资源共有5个,C类资源共有7个。 在时刻T0,系统目前资源分配情况如下: process Allocation Claim Need=Cki-Aki A B C A B C P0 0 1 0 7 5 3 7 4 3 P1 2 0 0 3 2 2 1 2 2 P2 3 0 2 9 0 2 6 0 0 P3 2 1 1 2 2 2 0 1 1 P4 0 0 2 4 3 3 4 3 1 Available :3 3 2 6.3.4 死锁的检测并恢复 6.3.5 高级进程通信 第i(0≤i≤4)个哲学家的“思考-就餐-思考”过程可以描述为: philosopher(i) { while(TRUE) { think(); P(seat); P(chopstick[i]); P(chopstick[(i+1) mod 5)]; eat(); V(chopstick[i]); V(chopstick[(i+1) mod 5)]; V(seat); } } 资源分配图 1. A R B S D C T U 死锁的定义 2. 所谓“死锁”,即指系统中若存在一组进程,它们中的每一个都占用了某种资源而又都在等待其中另一个所占用的资源,这种等待永远不会结束。这就是死锁,或说这一组进程处于死锁状态。 互斥条件 循环等待条件 部分分配(占用并等待)条件 产生死锁的四个必要条件 非剥夺条件 1. 死锁预防的含义 所谓“死锁的预防”,是指破坏产生死锁四个必要条件中的一条或几条,以使系统不会产生死锁。 2. 破坏“部分分配(占用并等待)条件” 3. 破坏“非剥夺条件” 4. 破坏“循环等待条件” B A i A i j B j 1. 死锁避免的含义 指允许系统存在产生死锁的条件,但在接到一个进程的资源请求时,总是根据当时资源的使用情况,按照一定的算法去模拟分配,探测分配的结果。只有在探测结果表明绝对不会出现死锁时,才真正接受进程的这次资源请求。 2. 安全状态和不安全状态 若能在有限时间内,保证所有进程得到自己需要的全部资源,那么称系统此时处于“安全状态”;否则称系统处于“不安全状态”。很明显,在系统处于安全状态时,绝对不会发生死锁;在系统处于不安全状态时,系统有可能发生死锁。 4个客户每个都有一个贷款额度 多项资源的银行家算法 总的资源E、已分配资源P、剩余资源A 1. 利用资源分配图检测死锁 r A s C D F w u G t B E v 环路 2. 死锁的恢复 删除环中的若干进程,释放占用的资源,使其他进程能继
文档评论(0)