ANALYTIC METHODS FOR REAL-TIME COMPUTING
John Lehoczky

DEPARTMENT OF STATISTICS

CARNEGIE MELLON UNIVERSITY

PITTSBURGH, PA 15213

JPL@STAT.CMU.EDU

Real-time computer systems are systems which process tasks or applications which have explicit, often stringent, timing requirements. Historically, these systems were an important, but narrow, class of computer systems consisting mainly of military systems, air traffic control and certain embedded systems. While many industrial and commercial systems (such as process control) have stringent timing requirements, resource sharing is not an issue, so it is only a matter of supplying adequate processing power. To date, real-time systems problems have not attract substantial interest from the computer science community. Consequently, real-time system design has suffered from the absence of analytic methods, engineering principles and software tools to design and integrate these systems. This necessitated the use of ad hoc designs and exhaustive testing to determine if a system would meet the task timing requirements. Any change in requirements would result in a great deal of additional testing. This process led to hand crafted systems which were very difficult to modify. Consequently, large real-time systems would slowly become outdated, unable to incorporate the latest technological innovations.

The last decade has brought major developments in the area of analytic methods for designing real-time systems. There is now a large collection of methods and tools available to design predictable real-time systems which have known, deterministic workloads. Thus, it is now possible to use analytic methods to determine if task timing requirements will be met, and if not, how to modify the system to meet those requirements. Moreover, the analytic methods are being combined with other dimensions of system performance such as fault-tolerance. The research done by the real-time systems community is being transitioned to major military, civilian and industrial computer systems. In spite of this, the problem of designing and integrating evolvable real-time systems remains a vital, but difficult, challenge for the real-time community along with the integration of those systems.

The situation today is one of phenomenal opportunity for real-time systems research. Computer and telecommunications technology has brought about a new range of applications to the consumer market, many of which involve both stringent timing requirements and significant resource sharing, so that speed and bandwidth alone are not enough to ensure adequate performance at high levels of utilization. The real-time community must rise to the challenge to help understand how to make these systems predictable at high levels of utilization and resource sharing, and to help define the hardware and software standards that will be developed in the future.

The challenge is that nearly all of the analytic methods that have been developed over the last decade do not apply to this new class of problems. The current methods require nearly deterministic behavior, yet the actual environment will be one which is highly dynamic with stochastic tasks. New definitions of real-time performance and predictability related to QOS must be created, and a new collection of analytic methods, engineering design principles and tools must be developed which allow tasks themselves to have stochastic characteristics and task sets to behave in a much more dynamic fashion.

Given the enormity of the task, the real-time system community must come together and develop a research agenda that will first define, then address these new challenges and opportunities. It will not be easy to unify this somewhat fragmented community, it will be harder to gain the ear of the commercial computer and network developers who need clear evidence that real-time systems research is relevant to their problems and it will be extremely difficult to overcome the research challenges. However, failure to do so will relegate real-time systems research to a minor niche area in computer science. Fortunately, new approaches are beginning to be explored and new methods are being developed which hold the promise of producing analytic methods which will help to develop predictable real-time systems that operate in this highly stochastic environment. Still a great deal of research remains to be done.