Chapter 12. IPC with shared memory

12.1 Critical regions in programming languages

12.2 Monitors

12.3 Synchronization at the granularity of operations

12.4 Summary

Throughout this chapter processes are assumed to be executing in a shared address space and therefore are able to share data.

When discussing the limitations of semaphores (Section 11.6), the difficulties in programming low-level synchronization primitives correctly was highlighted. In this chapter we investigate different ways in which support can be given to the programmer. In particular, we describe how the low-level operations, described in Chapter 11, can be made available through a high-level language. That is, the compiler of a high-level language can enforce restrictions on ...

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.