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)的例子,如有限长度队列的读写等经典问题。