1.管程的定义
代表共享资源的数据结构,以及由对该数据结构实施操作的一组过程所组成的资源管理程序,共同构成了一个OS的资源管理模块。
2.管程的特性
(1)模块化:包含了面向对象的思想。
(2)抽象数据类型
(3)信息掩藏:封装在了一个对象内部,隐藏了实现细节。
3.管程与进程的不同点
①虽然二者都定义了数据结构,但进程定义的是私有数据结构--PCB,
管程定义的是公共数据结构,如消息队列等;
②二者都存在针对各自数据结构的操作,但进程是由顺序程序执行有关操作的,
而管程则主要进行同步操作和初始化操作;
③设进程目的在于实现系统的并发性,而管程的设置则是为了解决共享资源的互斥使用问题;
④通过调用管程中的过程来对共享数据结构进行操作,该过程就像通常的子程序被调用,因而管程为被动工作方式,进程则为主动工作方式:
⑤进程之间能并发执行,而管程则不能与其调用者并发。
⑥进程具有动态性,由创建而诞生,由撤销而消亡,而管程则是OS中的一个资源管理模块,仅供进程调用。
4.临界区
人们把每个进程中访问临界资源的那段代码称为临界区。
临界区是对某一临界资源而言的,对于不同的临界资源是不互斥的。