1.管程和条件变量、
引入管程原因
- 信号量机制的缺点:进程自备同步操作,P(S)和V(S)操作大量分散在各个进程中,不易管理,易发生死锁
- 管程特点:管程封装了同步操作,对进程隐蔽了同步细节,简化了同步功能的调用界面。用户编写并发程序如同编写串行程序
引入管程机制的目的
- 把分散在各进程中的临界区集中起来进行管理
- 防止进程有意或无意的违反同步操作
- 便于用高级语言来书写程序,也便于程序正确性验证
管程基本思想
- 把分散在各个进程中的临界区集中起来管理,并把共享资源用数据结构抽象地表示出来
- 建立一个“秘书”程序管理到来的访问
- “秘书”每次只让一个进程来访,后“秘书”更名为管程
借助管程
- 对共享资源的管理可以借助数据结构及其上所实施操作单若干进程来进行
- 对共享资源的申请和释放通过进程在数据结构上的操作来实现
- 代表共享资源的数据结构及并发进程在其上执行的一组过程构成了管程
什么是管程
一个管程定义了一个数据结构和能为并发进程所执行的在该数据结构上的一组操作,这组操作能同步进程和改变管程中的数据
管程的三个组成部分
- 1)局部于管程的共享变量
- 2)对数据结构进行操作的一组过程
- 3)对局部于管程的数据进行初始化的语句