- 1、本文档共92页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
* m—资源类数,n——进程数目 * * 日常中,简单地杀死进程或粗暴地重启系统。 * 软件算法过于复杂,采用另一种解决方法——原语方法 互斥原语满足临界区的所有要求 * 软件算法过于复杂,采用另一种解决方法——原语方法 互斥原语满足临界区的所有要求 * 软件算法过于复杂,采用另一种解决方法——原语方法 互斥原语满足临界区的所有要求 * 算法6和算法7 * 算法6和算法7 * 软件算法过于复杂,采用另一种解决方法——原语方法 互斥原语满足临界区的所有要求 * 就绪进程从哪儿开始运行? * 要不要对缓冲区(临界资源)进行互斥操作? * 两个P操作调换次序? * 同步P操作应该放在互斥P操作前? 因为进行同步P操作的进程可能被阻塞,但它没有进入临界区。 以防止死锁。 * 同步P操作应该放在互斥P操作前? 因为进行同步P操作的进程可能被阻塞,但它没有进入临界区。 以防止死锁。 * 唤醒一个等待进程? * 可能发生死锁 * 限制了并发性 * * POSIX IPC 不同 * IPC信号量操作码 0 设置初值或释放资源 =0 实现路障同步(barrier) 0 申请资源 * * * * * * * * * * * * * * * 死 锁 分 析 例子1:交通死锁 让路! 让路! 让路! 让路! 死 锁 分 析 例子2:进程竞争外部设备的死锁例子 进程A 进程B ①申请输入设备 ①申请输出设备 ②申请输出设备 ②申请输入设备 ③释放输入设备 ③释放输出设备 ④释放输出设备 ④释放输入设备 如果执行次序为:进程A①→进程B①..., 则发生死锁。 输入设备 输出设备 B A 占有 占有 等待 等待 A在干什么? B在干什么? 死 锁 分 析 例子3:进程竞争Spooling空间的死锁例子 A B C D E L M N O P Q F G H I J K A A B B C C D D F G H I L L M M N N O O F G H I 输出井 进程B 进 程 C 满啦! 不够! 不够! 不够! 进程A 死 锁 分 析 例子4:哲学家就餐问题中的死锁 第i个哲学家: for(;;) { think; P(chopstick[i]); P(chopstick[(i+1)mod 5]); eat; V(chopstick[i]); V(chopstick[(i+1)mod 5]); }; 当所有哲学家同时拿起左边(右边)的筷子,发生死锁! 死 锁 分 析 资源系统中的死锁定义 在一个进程集合中,若每个进程都在等待某些事件(例如:释放资源)的发生,而这些事件又必须由这个进程集合中的某些进程来产生,就称该进程集合处于死锁状态。 在发生进程等待或阻塞的情况下,都有可能发生死锁。 死 锁 分 析 资源系统出现死锁的四个必要条件 互斥占用:必须存在需要互斥使用的资源 占有等待:一定有占有资源而又等待其它资源的进程 非剥夺:系统中进程占有的资源未主动释放时不可以剥夺 循环等待:进程集合{P0, P1, ……, Pn},Pi等待Pi+1,Pn等待P0 死 锁 分 析 死锁发生的必要条件:“互斥占用、占有等待、非剥夺、循环等待” P0 P1 P2 Pn · · · · P 发生了死锁的循环等待链 P0 P1 P2 Pn · · · · P 不发生死锁的循环等待链 因为P释放的资源能够满足P1 死 锁 分 析 死锁处理方法 死锁预防 死锁避免 死锁检测 死锁恢复 无死锁系统 允许并排除死锁 死 锁 预 防 破坏产生死锁的四个必要条件之一 逻辑公式: D→C1∧C2∧C3∧C4 ? D←? C1∨? C2∨? C3∨? C4 破坏互斥占用条件 通常行不通 临界区必须互斥执行 尽量使更多资源都能共享使用(分时或分空间),减少死锁的发生 。 破坏占有等待条件 预先分配或静态分配资源。 严重降低资源的利用率 进程在申请资源之前释放其已占有的所有资源 有的资源是必需的,不能随意释放的。 给编程带来很大的不便 死 锁 预 防 破坏非剥夺条件 分配给进程的资源允许被收回,进行重新分配。 处理机分配:时间片轮转、进程调度 内存分配:页面替换 可剥夺的资源分配方法比较复杂,而且开销很大。 保存进程使用资源的中间状态 实现合适的剥夺策略 死 锁 预 防 破坏循环等待条件 采用资源顺序分配方法: 给每类资源编号,进程只能按序号由小到大的顺序申请资源。 例子:设备的序号用一个函数F表示:F(S)=1,F(D)=3,F(T)=4。进程P的设备申请流程如下: ①申请扫描设备S ②申请磁带设备T
您可能关注的文档
- 新编材料力学课件作者张少实主编第13章节第13章节.ppt
- 新编材料力学课件作者张少实主编第14章节第14章节.ppt
- 微机原理 汇编语言与接口技术课件作者韩晓茹章节11微型计算机总线技术.ppt
- 新编材料力学课件作者张少实主编第15章节第15章节.ppt
- 新编机械设计基础机构分析与应用课件作者张淑敏项目四传动机构的分析与应用4-4应用轮系.ppt
- 择业宝典课件作者陈伟娜模块一专题一项目三职业能力倾向.ppt
- 微机原理及接口技术课件作者胡蔷第2章节微处理器.ppt
- 政府与非营利组织会计课件作者侯立新1_第十八章节事业单位资产的核算.ppt
- 新编机械设计基础机构分析与应用课件作者张淑敏项目四传动机构的分析与应用4-5-问题延伸联轴器和离合器认识.ppt
- 微机原理及接口技术课件作者胡蔷第5章节总线.ppt
文档评论(0)