wz第二章进程管理 - read

上传人:小** 文档编号:89362139 上传时间:2019-05-24 格式:PPT 页数:21 大小:1.27MB
返回 下载 相关 举报
wz第二章进程管理 - read_第1页
第1页 / 共21页
wz第二章进程管理 - read_第2页
第2页 / 共21页
wz第二章进程管理 - read_第3页
第3页 / 共21页
wz第二章进程管理 - read_第4页
第4页 / 共21页
wz第二章进程管理 - read_第5页
第5页 / 共21页
点击查看更多>>
资源描述

《wz第二章进程管理 - read》由会员分享,可在线阅读,更多相关《wz第二章进程管理 - read(21页珍藏版)》请在金锄头文库上搜索。

1、进程间的相互作用,进程间的联系 进程的同步机制 信号量及P.V操作 (解决进程同步互斥问题),进程间的联系,相交进程与无关进程 相交进程:指多个并发进程在逻辑上有某种联系 无关进程(不相交进程): 在逻辑上无任何联系的进程,直接作用和间接作用,直接作用: 进程间的相互联系是有意识的安排的,直接作用只发生在相交进程间 间接作用: 进程间要通过某种中介发生联系,是无意识安排的,可发生在相交进程之间,也可发生在无关进程之间,进程的同步(直接作用),进程的同步: 指系统中多个进程中发生的事件存在某种时序关系,需要相互合作,共同完成一项任务。具体说,一个进程运行到某一点时要求另一伙伴进程为它提供消息,在

2、未获得消息之前,该进程处于等待状态,获得消息后被唤醒进入就绪态,例: 司机 P1 售票员 P2 while (true) while (true) 启动车辆; 关门; 正常运行; 售票; 到站停车; 开门; ,由于各进程要求共享资源,而有些资源需要互斥使用,因此各进程间竞争使用这些资源,进程的这种关系为进程的互斥。 临界资源: 系统中某些资源一次只允许一个进程使用,称这样的资源为 临界资源 或 互斥资源 或 共享变量。,进程的互斥(间接作用),临界区(互斥区),一个程序片段的集合,这些程序片段分散在不同的进程中,对某个共享的数据结构(共享资源)进行操作 在进程中涉及到临界资源的程序段叫临界区

3、多个进程的临界区称为相关临界区,临界区(互斥区)原理,a = a -1 print (a),a= a +1 print (a),P1,进程的互斥 (间接作用),临界区(互斥区)举例,使用互斥区的原则:,有空让进:当无进程在互斥区时,任何有权使用互 斥区的进程可进入 无空等待:不允许两个以上的进程同时进入互斥区 多中择一:当没有进程在临界区,而同时有多个进 程要求进入临界区,只能让其中之一进 入临界区,其他进程必须等待 有限等待:任何进入互斥区的要求应在有限的时间 内得到满足 让权等待:处于等待状态的进程应放弃占用CPU, 以使其他进程有机会得到CPU的使用权,使用互斥区的原则,前提:任何进程无

4、权停止其它进程的运行 进程之间相对运行速度无硬性规定 进程互斥的解决有两种做法: 由竞争各方平等协商 引入进程管理者,由管理者来协调竞争各方对互斥资源的使用 具体方法: 硬件(当一个进程进入临界区,就屏蔽所有中 断,但成本高) 软件(用编程解决,但常常忙等待 ),进程互斥的软件方法,通过平等协商方式实现进程互斥的最初方法是软件方法 其基本思路是在进入区检查和设置一些标志,如果已有进程在临界区,则在进入区通过循环检查进行等待;在退出区修改标志 其中的主要问题是设置什么标志和如何检查标志,free: 表示临界区标志 true: 有进程在临界区 false:无进程在临界区(初值) while (fr

5、ee); free = true; 临界区 free = false;,软件解法 (1),turn: true P进入临界区 false Q进入临界区 P: while (not turn); Q: while (turn); 临界区 临界区 turn = false; turn = true;,软件解法 (2),pturn,qturn: 初值为false P进入临界区的条件: pturn not qturn Q进入临界区的条件: not pturn qturn P Q . pturn = true; qturn = true; while (qturn); while (pturn); 临界

6、区 临界区 pturn = false; qturn = false; . .,软件解法(3),软件解法(4) : Dekker算法,P71-P74,软件解法的缺点: 1. 忙等待 2. 实现过于复杂,需要高的编程技巧,硬件解法 (1),“测试并设置”指令 boolean TS (boolean *lock) boolean old; old = *lock; *lock = true; ,while TS(,key = true; do SWAP(,硬件解法 (2),“交换”指令 void SWAP(int *a, int *b) int temp; temp = *a; *a = *b; *b = temp; ,硬件解法 (3),“开关中断”指令 进入临界区前执行: 执行“关中断”指令 离开临界区后执行: 执行“开中断”指令,

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 商业/管理/HR > 管理学资料

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号