ABSTRACT

Digital computers are the primary means of implementing feedback control for physical systems. Realtime software is the medium in which these solutions are expressed. Computers are sequential devices, and, as such, can act only as sampled-data controllers, with time discretized. The fundamental characteristics of the real-time software, as distinct from “regular” software, are that the control algorithms must be run at their scheduled sample intervals and that associated software components, which interact with the sensors and actuators, can have critical time-window constraints. Implementing software in a layered, or hierarchical, manner makes far more maintainable, more readable, and more reliable software. To the extent that the layers are truly independent, this modularity allows changes to be made at any layer without any software changes needed at other layers. Software portability, the ease with which software written in one environment can be used in another, is a major factor in overall development costs, time to market, maintainability, and upgradability.