EUROSmp supports multiple microcontrollers on a single hardware platform or in a network. The object-oriented design of the operating system enables the transparent use of all system services, without regard to the distribution and number of system objects and microcontrollers.
The following multiprocessing modes are available under EUROSmp:
• Tightly Coupled Multiprocessing
In this arrangement, several microcontrollers enable parallel execution of multiple processes or tasks. This operating mode is characterized by maximum flexibility. It ensures a balanced load for the microcontrollers.
Both code and data must be stored in a global memory area to which all microcontrollers have access.
The power of the tightly coupled computer may be increased by adding microcontrollers. However, there is a penalty because the bus load increases due to use of the bus for accessing the global data. This leads in turn to a reduction of the system throughput. The gains and losses must be analyzed carefully when adding microcontrollers.
• Loosely Coupled Multiprocessing
Loosely coupled multiprocessing systems avoid the bus-usage drawbacks of tightly coupled systems. They use several autonomous microprocessors; information is exchanged via a shared memory or a network system. This configuration has a significant advantage in that each portion of the overall task is allocated to a specific functional unit. A message-passing mechanism is a simple and direct way to exchange data.
In loosely coupled multiprocessor systems it is generally not feasible to balance the workload for the microprocessors. However, with careful design and careful distribution of the tasks, this shortcoming can be mitigated.
• Mixed Multiprocessing
The mixed multiprocessing feature was introduced in order to avoid the drawbacks caused by tightly coupled configurations, while retaining the flexibility of loosely coupled multipro-cessing. The realization of this operating mode is possible only because of the object-oriented design of the operating system.
The basic idea of the mixed approach is to use the system objects to avoid excessive bus usage while at the same time avoiding starvation of some microprocessors because of the excessive use of some other microprocessors. This is done by careful deployment of the various objects. For example, only objects that are involved in high-level activities should be placed in global memory, so that they can be executed by all microprocessors. In contrast, tasks and drivers that control peripheral devices will be placed in a local memory area. This guarantees faster execution because the global bus is not used.
Under the EUROS mixed multiprocessing system, the management of system objects and the use of system services are both completely transparent to the application. This is an important consequence of the object-oriented design and implementation of the system.