How should processes running on different RTOSes communicate in systems with more than one operating system? The author suggests you can manage inter-process communications with global-object networking.
The typical embedded control system consists of a number of independent dedicated functions that interact with each other to perform a task. Functions may include control elements, data acquisition elements, and sometimes a human/machine interface, all working together. In many cases, these functions have been implemented as separate compute platforms interconnected via
a communication network.
As the computing capabilities of off-the-shelf PCs have multiplied, original equipment manufacturers (OEMs) now can consolidate multiple functions onto a single platform to improve the reliability and efficiency of their systems, at the same time driving out dedicated hardware in favor of software-based implementations.
However, there are potential problems with consolidating the functions that were previously performed by separate computing platforms, and these problems can cause the system to fail if not dealt with successfully. Integrated systems mzust not remove the advantages that multiplatform systems accomplished by separating the functions.
One advantage of keeping system elements separate is determinism. Embedded systems need to respond to external stimulus in a reliable and predictable manner. Therefore, the means of communication between the application elements must be efficient, and the receiving elements must be able to rely on the data being timely and accurate.
Implementing each function as a process running under one real-time operating system (RTOS) might not be the best method. Scheduler interference between the functions results in lack of independence, which can cause processes that were previously executed with highest priority in a separate computing platform system to fail in a consolidated environment.
Virtualized operating systems have been used to achieve system consolidation, but when applied as an afterthought these methods have had limited success in supporting real-time determinism and scalability of the available processing power. Although some solutions yield successful results, they generally require customers to make compromises that limit the capabilities of their systems. Ultimately, determinism and scalability must be designed into the core of the software from its inception.