美文网首页
操作系统——管程

操作系统——管程

作者: Qinglys | 来源:发表于2018-11-05 21:45 被阅读0次

管程(monitor)机制

    将共享变量及对共享变量能够进行的所有操作集中在一个模块中。(把信号量及其操作原语“封装”在一个对象内部)

管程的组成

1、一组局部变量
2、对局部变量操作的一组过程
3、对局部变量进行初始化的语句。

管程的特点

1、任何进程只能通过调用管程提供的过程入口才能进入管程访问共享数据;
2、任何时刻,仅允许一个进程在管程中执行某个内部过程。

管程如何实现同步?

1、对共享变量互斥操作:

    管程的特点直接实现了该要求,进程一次一个进入管程调用内部过程操作共享变量。
    管程的互斥访问完全由编译程序在编译时自动添上,无须程序员关心,能保证正确。

2、操作的同步控制:

    靠条件变量的操作管理实现。
    进入管程但不能获取资源操作的过程将阻塞,并在满足条件时被唤醒执行。

管程的优点

1、保证进程互斥地访问共享变量,并方便地阻塞和唤醒进程。管程可以以函数库的形式实现。相比之下,管程比信号量好控制。
2、管程可增强模块的独立性:系统按资源管理的观点分解成若干模块,用数据表示抽象系统资源,使同步操作相对集中,从而增加了模块的相对独立性
3、引入管程可提高代码的可读性,便于修改和维护,正确性易于保证:采用集中式同步机制。一个操作系统或并发程序由若干个这样的模块所构成,一个模块通常较短,模块之间关系清晰。

管程的缺点

    大多数常用的编程语言中没有实现管程,如果某种语言本身不支持管程,那么加入管程是很困难的。
    虽然大多数编程语言也没有实现信号量,但可将P、V操作作为一个独立的子例程或操作系统的管理程序调用加入。

相关文章

  • 操作系统——管程

    管程(monitor)机制 将共享变量及对共享变量能够进行的所有操作集中在一个模块中。(把信号量及其操作原语“封装...

  • Java中的管程模型

    操作系统使用信号量解决并发问题,Java选择使用管程(Monitor)解决并发问题。信号量和管程是等价的,可以使用...

  • 管程-------线程根源

    管程和信号量是等价的,操作系统原理告诉我们,信号量可以解决所有的并发问题,但是Java语言采用的是管程这样一个概念...

  • Monitors

    monitor Condition variable 管程 管程的定义管程是对共享数据的访问进行控制的特殊的一段程...

  • Java并发之嵌套管程锁死(Nested Monitor Loc

    嵌套管程死锁是如何发生的 具体的嵌套管程死锁的例子 嵌套管程死锁 vs 死锁 嵌套管程锁死类似于死锁, 下面是一个...

  • Semaphore 信号量

    Semaphore (信号量)是由计算机科学家Dijkstra在1965年提出的,广泛应用不同的操作系统,在管程提...

  • 操作系统:信号量与管程

    第10章:信号量与管程 信号量信号量使用互斥访问条件同步管程经典同步问题哲学家就餐问题读者-写者问题 10.1 信...

  • 管程

    管程 信号量机制存在的问题 编写困难,容易出错 管程 定义 特殊的软件模块 组成 局部于管程的共享数据结构说明 对...

  • 管程

    管程:指的是管理共享变量以及对共享变量的操作过程,让他们支持并发。 Java在1.5之前仅仅提供了synchron...

  • 管程

    管程,指的是管理共享变量以及对共享变量的操作过程,让他们支持并发。翻译为 Java 领域的语言,就是管理类的成员变...

网友评论

      本文标题:操作系统——管程

      本文链接:https://www.haomeiwen.com/subject/fptoaftx.html