基本概念
1.临界资源
一次只能给一个进程使用的资源称之为临界资源。许多物理设备属于临界资源,比如打印机。临界资源的访问必须互斥的进行,在每个进程中,访问临界资源的那段代码称为临界区。为了保证临界资源的正确使用,可以将临界资源的访问过程分为四个部分:
- 进入区:进程在进入去检查是否可以进入临界区,如果可以就设置正在访问临界区的标志
- 临界区:进程中访问临界资源的代码
- 退出区:将正在访问临界区的标志清除
- 剩余区:代码的其他部分
2.同步
同步又称直接制约关系,指的是为了完成任务而建立联系的两个或者多个进程,在某些位置上为了协调而相互等待、传递信息产生的制约关系。比如计算进程A等待输入进程B的输入信息而阻塞挂起,等到进程B输入信息后才被唤醒。
3.互斥
互斥又称为间接制约关系。当一个进程进入临界区使用临界资源的时候,另外一个进程必须等待。
为了进制两个进程同时进入林觉去,同步机制必须遵守以下原则:
- 空闲让进:临界区空闲可以允许一个请求进入临界区的进程立即进入
- 忙则等待:已有进程进入临界区的时候,其他进程只能等待
- 有限等待:等待的进程必须在有限的时间内进入临界区,避免进程饥饿
- 让权等待:进程不能进入临界区的时候,应释放处理器,防止进程忙等