Abstract

With the progress in the research and development of open-architecture control systems, traditionally-monolithic controllers need to be modularized. Modularization is necessary in order to take advantage of newly available hardware and software components and to reduce controller development and maintenance costs. The resulting modular controllers rely more on the underlying support services, such as the POSIX timer and operating system scheduler. The behavior of an underlying real-time operating system can have a significant impact on an open and modular controller. In this paper, we investigate such an impact by empirically evaluating the performance of our prototype modular controllers in the University of Michigan Open-Architecture Controller testbed. A modular software architecture allows for flexibility in running real-time control applications. For example, a controller may consist of several cooperative periodic real-time tasks, each of which runs as a separate computer process and controls a particular machine axis. However, we observe that real-time operating systems exhibit significant unpredictability. In particular, the timing uniformity of tasks suffers when multiple tasks run as separate computer processes. This indicates a need for approaches to improve controller performance. One strategy we propose is to minimize operating system activities, e.g., by disabling unnecessary peripheral devices. However, we find that some major sources of unpredictability are essential system software modules. Another strategy is to combine tasks with similar periods into a composite task. We conducted experiments to measure performance before and after restructuring software and found that combining tasks with similar periods is a more desirable approach.

This content is only available via PDF.
You do not currently have access to this content.