为保证多个进程有条不紊的运行,在多道程序系统中,加入进程同步机制。
单处理机系统的进程同步问题:
-
- 硬件同步机制
- 信号量同步机制
- 管程机制
- 进程同步的基本概念:
- 两种形式的制约关系
- 间接相互制约关系:比如打印机资源,要互斥的访问
- 直接相互制约关系:未完成某个任务,多个进程为了完成任务而合作,例如共享缓冲区
- 临界资源
- 访问临界资源应该互斥的访问
- 消费者生产者问题
- 临界区:不论硬件资源还是软件资源,多个进程必须互斥的对它进行访问,每个进程中访问临界资源的那段代码称为临界区
- 同步机制应遵循的规则
- 空闲让进
- 忙则等待
- 优先等待
- 让权等待
- 两种形式的制约关系
- 硬件同步机制
- 关中断
- test-and-set指令实现互斥
- 利用swap指令实现互斥
- 信号量机制
- 整形信号量:
- wait机制,当s<=0时,不断测试,该机制为遵循让权等待,而是陷入忙等状态
-
记录型信号量
-
AND型信号量
-
信号量机制
-
-
信号量的应用
-
利用信号量实现进程互斥
-
利用信号量实现前趋关系
-
-
管程机制
- 利用共享的数据抽象类型表示共享资源,并对共享数据类型定义一组操作
- 管程组成
- 管程名称
- 局部于管理的共享数据结构说明
- 对该数据结构上进行操作的一组过程
- 对局部于管程的共享数据设置初始值的语句
- 整形信号量: