ABSTRACT

This chapter complements the previous one by presenting message passing, an IPC mechanism that does not implicitly assume the availability of shared memory for data transfer. Message passing primitives do provide inter-task data exchange besides synchronization, but the details of how it takes place are left to the underlying implementation and are transparent to their users.

In principle, this approach paves the way to a unified IPC technique that is applicable to a whole range of system architectures, from relatively simple concentrated systems with a single processor, in which the availability of shared memory can be taken for granted, to large distributed systems whose nodes are connected by a real-time network and shared memory is not generally available.

As is done in the rest of the book, after presenting the mechanisms from the theoretical point of view, we describe how programmers can use them in RTEMS. Although this chapter focuses on message passing as an IPC mechanism among tasks residing on a tightly coupled set of cores or processors, the theoretical concepts presented here also apply and serve as a general introduction to Chapters 10 and 11, which discuss network-based communication in detail.