系统中的各种硬件资源和软件资源,均可用数据结构抽象地描述其资源特性,即用少量信息和对资源所执行的操作来表征该资源,而忽略了它们的内部结构和实现细节。管程是由一组数据以及定义在这组数据之上的对这组数据的操作组成的软件模块,这组操作能初始化并改变管程中的数据和同步进程。
1) 局部于管程的共享结构数据说明。
2) 对该数据结构进行操作的一组过程。
3) 对局部于管程的共享数据设置初始值的语句。
1) 局部于管程的数据只能被局部于管程内的过程所访问。
2) 一个进程只有通过调用管程内的过程才能进入管程访问共享数据。
3) 每次仅允许一个进程在管程内执行某个内部过程。
由于管程是一个语言成分,所以管程的互斥访问完全由编译程序在编译时自动添加,无需程序员关注,而且保证正确。