操作系统之进程管理:16、管程

思维导图

操作系统之进程管理:16、管程

为什么引入管程?

操作系统之进程管理:16、管程

例如上图中,互斥与同步顺序出错就会产生死锁

什么是管程?

操作系统之进程管理:16、管程

剖析一下上面的定义发现:
其实他对管程的定义和类的定义非常的相似
一组过程:就相当于类中的一组操作函数
共享数据结构说明和初始化:就相当于类中的变量声明与初始化
管程的名字:相当于类中的类名

在来看一下,引入管程是因为在对进程实现互斥、同步操作时,P、V操作太过复杂,极易出错。我们需要实现一种简单的机制:通过调用一组过程(函数)直接实现进程的互斥、同步操作。而不在乎进程互斥、同步操作的具体实现。这样,我们只需要对函数进行简单调用就可以实现进程互斥、同步。(封装思想)

管程的特点

操作系统之进程管理:16、管程

用管程解决生产者-消费者问题

操作系统之进程管理:16、管程

Java 中类似于管程的机制

操作系统之进程管理:16、管程