Chapter 13 IPC and System Structure
Objectives
To bring the reader back to a high level view of IPC within system structure after the detailed study of shared memory based interactions of the previous two chapters. To introduce IPC when there is no shared data. To contrast IPC with and without shared data and to show that the same problems can be solved in both contexts, given suitable concurrency facilities.
Points to emphasise
- IPC both with and without shared memory is needed in systems.
- The concurrency features we studied in Chapters 9 and 10 were hiding the low level mechanisms from the programmer and combining concurrency and modularity. An abstract operation on an object can be made atomic in the presence of concurrency.
- The new problem to address is how to solve problems without shared memory. We can pass data around from process to process or we can set up processes to manage data. Note here that we have come to active objects again but from a different direction.
- Some servers can be considered as object managers. A server typically runs in a separate address space and takes requests in the form of messages.
- The duality pointed out in Section 12.8 requires the existence of a number of concurrency features such as dynamic process creation in the shared memory approach and the ability of the server to select which messages it is prepared to service in the no-shared-memory approach.
Possible difficulties
This material should not be too difficult. It is setting up a context for Chapters 13 and 15 instead of diving straight into the detail.
Teaching hints
- An OS that runs in part of a process’s address space and is executed procedurally (such as UNIX) gives a good example of both shared memory IPC (within the OS) and no-shared-memory IPC between user level processes.
- A file server is an example of an active manager of many objects of the same type. A server will invoke an operation on a specified file object on receiving a request from an authorised client. The server occupies a separate address space from the client. The request takes the form of a message.
- There are many examples of the various forms of high level IPC given in Figure 12.7. Mentioning them could indicate their relevance to system design.
- The duality of a monitor and a server could be covered in detail, as in (Lauer and Needham, 1978).