进程同步机制有很多,主要有PV操作和信号量,管程,以及消息传递等。
由于PV操作的使用分散在各个进程之中,不利于对临界资源的统一管理,还有PV操作的使用需要小心,若顺序不对,或忘一个没写,很容易陷入死锁,所以,管程就能解决上面问题。
管程的基本思路是:将分散在各个进程中的临界区集中起来进行统一控制和管理,并且将系统中的共享资源用数据结构抽象的描述出来,然后对临界区的访问通过管程进行统一管理
管程:就是由若干个数据结构、变量,以及方法(函数)所组织成的一种特殊的结构。
管程有以下特性:
①互斥性,任何时刻只能最多一个进程进入管程活动,其他想进入管程必须等待。
②安全性,管程中的局部变量只能由管程的方法或函数来访问,其他进程或管程是不能够对该局部变量进行直接访问
③共享性,管程中的特定的方法或函数可以被其他管程或进程访问,这样的方法或函数应该有特殊说明。
管程的一般结构: