管程是一种高级的同步机制(操作系统)

Posted 每天告诉自己要努力

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了管程是一种高级的同步机制(操作系统)相关的知识,希望对你有一定的参考价值。

为什么引入管程?
因为信号量机制存在的问题:编写程序困难、容易出错,因此引入管程解决这个问题,不再需要复杂的PV操作。

管程跟PV操作一样也是用来实现进程的互斥和同步的。为什么要实现进程的互斥同步呢?因为进程之间可能会共享某些资源,为了实现进程对资源的互斥或共享的访问。

管程是一种特殊的软件模块,有这些部分组成:
1.局部于管程的共享数据结构说明。(例如生产者消费者模型里面的缓冲区就可以用这种数据结构来说明)
2.对该数据结构进行操作的一组过程(过程其实就是函数)
3.管程内的数据结构要进行初始化
4.管程有一个名字

管程有一点像类,是一种“封装”思想,C++三大特性之一。
把进程同步、互斥等细节隐藏在管程内部定义的函数,对外提供简单的函数调用接口

管程的基本特征:
1.局部于管程的数据只能被局部于管程的过程所访问。
2.一个进程只有通过调用管程内的过程才能进入管程访问共享数据。
3.每次仅允许一个进程在管程内执行某个内部过程。

以上是关于管程是一种高级的同步机制(操作系统)的主要内容,如果未能解决你的问题,请参考以下文章

信号量与管程

10、同步互斥机制3(进程通信)(操作系统笔记)

(王道408考研操作系统)第二章进程管理-第三节11:管程(Monitor)及条件变量

协程 | Retorfit + 协程机制 + MVVM

从没听说过的并发的名词-管程

操作系统-进程进程通信机制