12.3. Synchronization at the granularity of operations

In Chapter 11 we programmed a cyclic buffer between many producers and many consumers. In the solution, producers first checked whether a slot was free, and consumers whether an item was available; then exclusive access to the buffer was ensured among producers or among consumers. One producer and one consumer could access different parts of the buffer at the same time.

The development from critical regions to conditional critical regions and then to monitors combined concurrency control and encapsulation. In order to carry out an operation on a shared object a process first calls a monitor procedure, which may involve a delay, waiting to enter the monitor. Once inside the monitor the process ...

Get Operating Systems: Concurrent and Distributed Software Design now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.