2、3_2_进程互斥的软件实现方法.pdf





《2、3_2_进程互斥的软件实现方法.pdf》由会员分享,可在线阅读,更多相关《2、3_2_进程互斥的软件实现方法.pdf(7页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、2019/5/16王道考研/1本节内容进程互斥的软件实现方法王道考研/CSKAOYAN.COM王道考研/CSKAOYAN.COM知知识识总总览览学习提示:1. 理解各个算法的思想、原理2. 结合上小节学习的“实现互斥的四个逻辑部分”,重点理解各算法在进入区、退出区都做了什么3. 分析各算法存在的缺陷(结合“实现互斥要遵循的四个原则”进行分析)2019/5/16王道考研/2王道考研/CSKAOYAN.COM如如果果没没有有注注意意进进程程互互斥斥?进程A:其他代码;使用打印机;其他代码;进程B:其他代码;使用打印机;其他代码;如何实现进程互斥?进程A、进程B在系统中并发地运行先调度A上处理机运行
2、当A在使用打印机的过程中,分配给它的时间片用完了,接下来操作系统调度B让它上处理机运行进程B也在使用打印机结局:A、B 的打印内容混在一起了王道考研/CSKAOYAN.COM单单标标志志法法算法思想:两个进程在访问完临界区后会把使用临界区的权限转交给另一个进程。也就是说每个进程进入临界区的权限只能被另一个进程赋予turn 的初值为 0,即刚开始只允许 0 号进程进入临界区。若 P1 先上处理机运行,则会一直卡在 。直到 P1 的时间片用完,发生调度,切换 P0 上处理机运行。代码 不会卡住 P0,P0 可以正常访问临界区,在 P0 访问临界区期间即时切换回 P1,P1依然会卡在 。只有 P0
3、在退出区将 turn 改为 1 后,P1才能进入临界区。因此,该算法可以实现“同一时刻最多只允许一个进程访问临界区”turn 变量背后的逻辑:表达“谦让”2019/5/16王道考研/3王道考研/CSKAOYAN.COM单单标标志志法法turn 变量背后的逻辑:表达“谦让”马桶是否轮到自己用?(检查)访问临界资源,啦啦啦下次让老渣用(表达谦让)做其他事情是否轮到自己用?(检查)访问临界资源,拉拉拉下次让小渣用(表达谦让)做其他事情只能按 P0 P1 P0 P1 这样轮流访问。这种必须“轮流访问”带来的问题是,如果此时允许进入临界区的进程是 P0,而 P0 一直不访问临界区,那么虽然此时临界区空闲
4、,但是并不允许 P1 访问。因此,单标志法存在的主要问题是:违背“空闲让进”原则。王道考研/CSKAOYAN.COM双双标标志志先先检检查查法法算法思想:设置一个布尔型数组 flag,数组中各个元素用来标记各进程想进入临界区的意愿,比如“flag0 = ture”意味着 0 号进程 P0 现在想要进入临界区。每个进程在进入临界区之前先检查当前有没有别的进程想进入临界区,如果没有,则把自身对应的标志 flagi 设为 true,之后开始访问临界区。理解背后的含义:“表达意愿”马桶老渣是否想用(检查)我小渣要用(表达意愿,上锁)访问临界资源,啦啦啦小渣不用了(解锁)小渣是否想用(检查)我老渣要用(
5、表达意愿,上锁)访问临界资源,拉拉拉老渣不用了(解锁)进入区2019/5/16王道考研/4王道考研/CSKAOYAN.COM双双标标志志先先检检查查法法算法思想:设置一个布尔型数组 flag,数组中各个元素用来标记各进程想进入临界区的意愿,比如“flag0 = ture”意味着 0 号进程 P0 现在想要进入临界区。每个进程在进入临界区之前先检查当前有没有别的进程想进入临界区,如果没有,则把自身对应的标志 flagi 设为 true,之后开始访问临界区。若按照 .的顺序执行,P0 和 P1 将会同时访问临界区。因此,双标志先检查法的主要问题是:违反“忙则等待”原则。原因在于,进入区的“检查”和
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- _2_ 进程 软件 实现 方法

限制150内