zoukankan      html  css  js  c++  java
  • paper :《Monitors: An Operating System Structuring Concept》(1974)

    OS领域的经典Paper!

    Monitor的概念充分体现了现代程序设计的思想,在当时的年代背景下,写出如此优雅的代码,可以不朽~~

    1. 本文讲述了一种用于实现操作系统的基础结构:Monitor 该结构将需要共享的资源(data)和访问资源的代码(interface)组合起来,对外提供访问函数,数据不可见,通过访问函数来保护数据。每个访问函数都具在一个临界区中。这种手法被后人广泛使用~~

    2. 为了实现Monitor,给出了一种配套使用的机制:Condition 对就是多线程设计中常见的Condition,这个东东就是从这里来的。唯一与现在的Condition不通的地方在于:本文要求wait被signal唤醒后,一定是可以获得资源的,而我们现在的应用中,这个唤醒仅仅是一个提示,必须再次判断一下(这是出于实现效率,请参考paper : 《Synchronization Primitives for a Multiprocessor: A Formal Specification》(1987))。本文进一步证明了Condition与Semaphore之间是等价的,可以相互模拟,而且看起来Condition会更加简洁一些。这也似乎也被后人所印证:在实际的应用中,使用Mutex和Condition就可以处理绝大多数的问题。

    3. 本文还给出了一组应用Monitor(Condition)的例子,如有限长度队列的读写等经典问题。

     

  • 相关阅读:
    Ubuntu查看端口占用情况
    在jupyter中添加新的环境
    C++指针
    C++排序:冒泡排序,简单选择排序,直接插入排序,希尔排序,堆排序,归并排序,快速排序
    查找一:C++静态查找
    C++链式队列
    C++顺序循环队列
    C++链式栈
    C++顺序栈
    C++双向循环链表
  • 原文地址:https://www.cnblogs.com/ohscar/p/3109612.html
Copyright © 2011-2022 走看看