ChorusOS 4.0 Introduction

Inter-process communication

The ChorusOS operating system provides Inter Process Communication (IPC), allowing threads to communicate and synchronize, even when they do not share the same memory space.

Communication is achieved by the exchange of messages through ports, and IPC supports port migration, whereby the messages sent to a given port can be transferred to a new process in a way that is transparent to the application.

The ChorusOS operating system also includes a mailbox (MIPC) mechanism that provides a shared communication environment for actors within an application.

IPC

The IPC feature provides powerful asynchronous and synchronous communication services.

The IPC feature exports the following basic communication abstractions:

The IPC feature allows threads to communicate and synchronize when they do not share memory, for example when they do not run on the same node.

For more details, see IPC(5FEA).

For information on how to configure IPC for local, Ethernet, and VME use, see Appendix A, Configuring IPC.

IPC_REMOTE

When the IPC_REMOTE feature is set, IPC services are provided in a distributed, location-transparent way, allowing applications distributed across the different nodes, or sites, of a network to communicate as if they were co-located on the same node.

For information on how to configure IPC for local, Ethernet, and VME use, see Appendix A, Configuring IPC.

IPC_REMOTE_COMM

If you set IPC_REMOTE, you can specify the communication method by setting the IPC_REMOTE_COMM feature. By default, this is set to EXT for external networking protocols. You can also set it to VME, and have the communication managed by the kernel directly.

For information on how to configure IPC for local, Ethernet, and VME use, see Appendix A, Configuring IPC.

MIPC

The optional MIPC feature is designed to allow an application composed of one or multiple actors to create a shared communication environment (or message space) within which these actors can exchange messages in a very efficient way. In particular, supervisor and user actors of a same application can exchange messages with the MIPC service. Furthermore, these messages can be initially allocated and sent by interrupt handlers in order to be processed later in the context of threads.

See Chapter 8, Inter-actor Communication for more information about using message spaces.

For more details of the MIPC feature, see MIPC(5FEA).

POSIX_MQ

The POSIX_MQ feature is a compatible implementation of the POSIX 1 real-time message queue API. For general information on this feature, see intro(2POSIX), and the POSIX standard (IEEE Std 1003.1b-1993).

For more details, see POSIX_MQ(5FEA).

POSIX_SHM

The POSIX_SHM feature is a compatible implementation of the POSIX 1 real-time shared memory objects API. For general information on this feature, see intro(2POSIX), and the POSIX standard (IEEE Std 1003.1b-1993).

For more details, seePOSIX_SHM(5FEA).