An approach to the design of operating systems for multiple processor systems with shared memory is presented. It is based on the use of a commercial uniprocessor real-time kernel together with the development of a minimal global kernel, a minimal local and a remote I/O system. For a number of applications, this approach provides an optimal ratio between the cost of developing the operating system, on the one hand, and the real-time characteristics of the system, on the other hand. Predictability is supported by preallocation of low cost processors and memory, and by primitives that provide minimal queuing. A new implementation of interprocessor message passing. which provides satisfactory performance of the distributed operating system, is proposed. Also, an I/O system optimally structured for embedded real-time multiple processor systems with shared memory is suggested.