1、前提
- 进程是并发执行的,进程间存在着相互制约关系
- 并发的进程对系统共享资源进行竞争
- 进程通信,过程中相互发送的信号称为消息或事件
2、两种相互制约形式
- 间接相互制约关系(互斥) :进程排他性地访问共享资源
- 直接相互制约关系(同步) :进程间的合作,比如管道通信
3、访问过程
- 进入区:尝试进入临界区,成功则加锁(lock)
- 临界区:访问共享资源
- 退出区:解锁(unlock) ,唤醒其它阻塞进程
- 剩余区:其它代码
4、访问原则
- 空闲让进:临界区空闲,允许一个进程进入
- 忙则等待:临界区已有进程,其它进程等待(阻塞状态)
- 有限等待:处于等待的进程,等待时间有限
- 让权等待:等待时应让出CPU执行权,防止“忙等待”
1、软件实现方法
- 单标志法:违背“空闲让进”
- 双标志法先检查
- 双标志法后检查
- 皮特森算法(Peterson's Algorithm)
2、硬件实现方法
- 中断屏蔽
-
TSL指令
-
Swap指令