重新整理操作系统概念系类——管程

前言

为什么产生管程这个东西呢?

以前我该系列中,提及到有信号量这个概念,但是呢,信号量有个问题那就是编写代码复杂容易出问题。

而且信号量写的不好,还可能出现死锁问题。

比如说p1先请求s1,然后请求s2;p2先请求s2然后请求s1。

然后p1请求到s1,p2请求到52,然后这两个就都无法执行了,这种问题还是很容易发生的。

那么有没有什么能解决这个问题呢?

这就是管程。

正文

管程的组成:

1.局部于管程的共享数据结构说明。

2.对该数据结构进行一组操作的一组过程。

3.对局部于管程的共享数据设置初始化的语句。

4.管程有一个名字。

管程的特征:

1.局部于管程的数据只能被局部于管程的过程访问。

2.一个进程只有通过调用管程内的过程还能进入管程访问共享数据。

3.每次仅允许一个进程在管程内进行某个内部过程。

管程对于生产消费问题

重新整理操作系统概念系类——管程_第1张图片

重新整理操作系统概念系类——管程_第2张图片

c# 管程机制

可以去看一下我的代码:

https://www.cnblogs.com/aoximin/p/13224393.html

重新整理操作系统概念系类——管程_第3张图片

你可能感兴趣的:(重新整理操作系统概念系类——管程)