1.管程的组成: 一组局部变量;对局部变量操作的一组过程;对局部变量进行初始化的语句。
2.管程的特点:n任何进程只能通过调用管程提供的过程入口才能进入管程访问共享数据;
任何时刻,仅允许一个进程在管程中执行某个内部过程。
3.条件变量:局部于管程的变量有两种,普通变量和条件变量。
管程的优点:保证进程互斥地访问共享变量,并方便地阻塞和唤醒进程。管程可以以函数库的形式实现。相比之下,管程比信号量好控制。
管程可增强模块的独立性:系统按资源管理的观点分解成若干模块,用数据表示抽象系统资源,使同步操作相对集中,从而增加了模块的相对独立性;
引入管程可提高代码的可读性,便于修改和维护,正确性易于保证:采用集中式同步机制。一个操作系统或并发程序由若干个这样的模块所构成,一个模块通常较短,模块之间关系清晰。
管程的缺点:大多数常用的编程语言中没有实现管程,如果某种语言本身不支持管程,那么加入管程是很困难的。
虽然大多数编程语言也没有实现信号量,但可将P、V操作作为一个独立的子例程或操作系统的管理程序调用加入。