GEM: Operating system primitives for robots and real-time control systems

To increase the speed and reliability of robots and of industrial control systems, multiple processing elements are used in their computing hardware. However, performance increases are not attained by hardware, alone. It is the hardware's operating software that must exploit the possible parallelism to gain the increases desired. Such software consists of control programs written by application programmers and operating system software offering means of task scheduling, inter-task communication, and hardware configuration control. The Generalized Executive for real-time Multiprocessor applications (GEM) is an operating system that addresses several problems arising due to the unique requirements of operating software, including: (1) GEM supports two different sizes of tasks and task scheduling, called processes and micro-processes, and offers a variety of real-time scheduling calls, and (2) GEM supports multiple models of communication.