(六)互斥机制
2017-10-15 本文已影响20人
BubbleM
进程互斥
(竞争关系)由于各进程要求使用共享资源(变量、文件等),而这些资源需要排他性使用。各进程之间竞争使用这些资源,这一关系称为进程互斥。
临界资源critical resource:
系统中某些资源一次只允许一个进程使用,称这样的资源为临界资源或互斥资源或共享资源。
临界区(互斥区)critical section(region):
各个进程中对某个临界资源(共享变量)实施操作的程序片段。
实现进程互斥的方案:
- 软件方案:
- Dekker解法
- Peterson解法
- 硬件方案:
- 屏蔽中断
- TSL(XCHG)指令
忙等待busy waiting:
进程在得到临界区访问权之前,持续测试而不做其他事情。
优先级反转(倒置):
基于优先级的抢占式的调度可能会导致优先级反转。
进程同步synchronization
(协作关系)指系统中多个进程中发生的事件存在某种时序关系,需要相互合作,共同完成一项任务。
信号量及PV操作
- 信号量
一个特殊的变量,用于进程间传递信息的一个整数值。定义如下:
struc semaphore{
int count;
queueType queue;
}
对信号量只能实施3种操作:初始化,p,v(p、v分别是荷兰语的test(proberen)和incerment(verhogen))
