操作系统——管程

管程(monitor)机制

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

管程的组成

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

管程的特点

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

管程如何实现同步?

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

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

2、操作的同步控制:

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

管程的优点

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

管程的缺点

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

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 1. 基础知识 1.1、 基本概念、 功能 冯诺伊曼体系结构1、计算机处理的数据和指令一律用二进制数表示2、顺序执...
    yunpiao阅读 5,814评论 1 22
  • 操作系统概论 操作系统的概念 操作系统是指控制和管理计算机的软硬件资源,并合理的组织调度计算机的工作和资源的分配,...
    野狗子嗷嗷嗷阅读 12,489评论 3 34
  • 1.内存的页面置换算法 (1)最佳置换算法(OPT)(理想置换算法):从主存中移出永远不再需要的页面;如无这样的...
    杰伦哎呦哎呦阅读 3,607评论 1 9
  • 感谢你,给我一场别开生面的惊喜。 那昏暗小巷里逃离后的欣喜,记录着那朵被身影煽动的小草呼吸。在阴森的密林,枝干...
    食野望都阅读 272评论 0 2
  • 快开学了,天也转凉了,该出来走走了。 早早看好了上海攻略,并确定了这个地方,就等着日历快快翻到8月25日那一天。 ...
    一朵白兰阅读 575评论 2 8

友情链接更多精彩内容