当前位置:
文档之家› 操作系统原理第三章进程间的并发控制和死锁PPT参考课件
操作系统原理第三章进程间的并发控制和死锁PPT参考课件
信号量是一个数据结构
定义如下: struct semaphore
整型变量,其值大小 表示该资源的可用数 量
{ int value;
Pointer_PCB queue;
} 2021/3/10
13
是等待使用该资源的进程排
成队列的队列头指针
授课:XXX
对信号量S的操作只允许执行P、V操作。其 中P/V操作由原语组成,执行过程中不可分 割。
2021/3/10
3
授课:XXX
2、系统中存在若干协作进程
同步关系:通常,一个用户作业涉及一组并 发进程(输入、计算和输出进程),这些 进程须相互协作完成这项任务。
在运行过程中,这些进程可能要在某些同 步点上等待协作者发来信息后才能继续运 行。进程之间的这种制约关系叫直接制约 关系。又叫同步关系。可用“进程—进程”来 描述
第三章进程之间的并 发控制和死锁
2021/3/10
1
授课:XXX
进程通信
进程的状态是基于一定的原因和条件而变 化的,而这些原因和条件又常常是由于进 程之间的相互制约关系引起的。系统中诸 进程之所以有这种关系,是由两方面原因 引起的:
1)各并发进程对资源的共享个进入,而不能无限等待都不让进 让权等待-等待的进程必须释放CPU
2021/3/10
8
授课:XXX
二、解决进程之间互斥的方法
1、关中断
进程A
进程B
Close_INT;
Close_INT;
Critical_region();
Critical_region();
Open_INT;
Open_INT;
解决思想
在临界区中防止发生进程调度 保证临界区操作的完整性
方法分析
用户控制系统中断是非常危险的 本方法对多个CPU系统将失去作用
2021/3/10
9
授课:XXX
二、解决进程之间互斥的方法
2、lock, unlock
在原语里设置一个公共变量代表临界资源的状态。
x=
0资源可用
1资源正在使用
15
授课:XXX
1、利用信号量实现进程之间的互斥
引入一个互斥信号量,用mutex表示。对于 互斥使用的资源,其信号量的初值为1
欲进入临界区执行的进程须先对互斥信号 量mutex执行P操作若已有进程占有临界资 源,进程必须等待,直到临界资源空闲为 止;若无进程占用,可使用它
共享资源:
慢速的硬件设备,如打印机、磁带机等资源 软件资源,如共享变量、共享文件等
临界资源( critical resource ):就是一次仅 允许一个进程使用的资源。如:打印机
临界区(critical section) :就是并发执行 的进程访问临界资源的那个必须互斥执行 的程序段
2021/3/10
返回
x=1
返回继续测试
显然,采用加锁机制,由 于进程循环测试,白白浪 费了CPU的时间,降低了 系统的速度
11
授课:XXX
三、进程之间的同步
同步原因:一组进程要合作完成一项任务。
例:两个用户进程通过共享缓冲区完成其计算和打 印任务。计算进程负责将计算结果送入共享缓冲 区,打印进程从缓冲区取数据打印。当缓冲区空 时,不允许取数据,满时不允许送数据。否则, 将出现错误。
计算进程与打印进程这种制约关系,不是由于两 个进程同时访问共享缓冲区,而是由于它们访问 缓冲区时的速度不匹配造成的。
为了使进程同步,需要引入信号量机制。
2021/3/10
12
授课:XXX
四、信号量
1965年,荷兰学者Dijkstra提出的。
基本原理:两个或多个进程可以通过简单的信号进 行合作,一个进程可以被迫在某一位置停止,直 到它接收到一个特定的信号。任何复杂的合作需 求通过适当的信号结构得到满足。为此,需要使 用一个称作为信号量的特殊变量,以便通过信号 量传送信号。
使用临界资源必须做如下三步:
1、检查锁的设置
0资源可 ,关用 锁 x : 1 1资源正在 ,继使 续用 测试
2、进入临界区,访问临界区
3、释放临界资源,开锁
2021/3/10
10
授课:XXX
2021/3/10
锁机制框图
测试x=0?
x=0
Lock[x],x=1
进入临界区
退出临界区 Unlock[x],x=0
P操作原语P(S)
1)S:=S – 1
//请求一个资源
2)If S>=0, go on; if S<0, blocked
//申请不成功(资源用完), 调用阻塞原语“让权等待 ”
V操作原语V(S)
1)S:=S + 1
//释放一个资源
2)If S>0, go on; if S<=0, the first blocked process in waiting queue blocked->ready, go on
6
授课:XXX
临界资源和临界区
程序1 pcb1
Y=Y+1 output
内存共享区Y
程序2 pcb2 Y=Y+2 output
2021/3/10
7
授课:XXX
四个准则
为了正确而有效地使用临界资源,系统中 的并发进程需要遵循如下四个准则:
空闲让进-无进程在临界区就允许进入 忙则等待-有进程在临界区,则等待 有限等待-多进程要求进入临界区是,应该让某
2021/3/10
//表示在信号链表,仍有等待该资源
的进程,调用唤醒原语。
14
授课:XXX
显然,P、V操作的引入,克服了加锁操作 的忙等待现象,有效提高了系统的效率
操作系统正是利用信号量的状态对进程和 资源进行管理和控制的。
从物理意义上理解,P操作相当于申请资源 ;V操作相当于释放资源。
2021/3/10
2
授课:XXX
1、各并发进程对资源的共享
互斥关系:通过共享资源而使进程之间产
生的关系叫间接制约关系,又叫互斥关系 。可用“进程—资源—进程”来描述。
例:进程P1和P2在运行中都要使用打印机, 为了使各进程输出的完整性,打印机的使 用必须独占。一旦系统将打印机分配给进 程P1,那么进程P2必须等待,等待P1使用 完打印机并释放后,才能使用。
2021/3/10
4
授课:XXX
进程通信:是指进程的上述相互依赖关系 。进程之间的这种相互依赖又相互制约、 相互合作又相互竞争的关系,也即进程的 同步与互斥关系。互斥是同步的一个特例 。进程之间的这种关系就叫进程的低级通 信。
2021/3/10
5
授课:XXX
一、进程之间的互斥
(进程的互斥是由于共享资源而引起的)