| | |
Summary: Realtime System =
Discrete System + Clock Variables \Lambda
Rajeev Alur Thomas A. Henzinger y
AT&T Bell Laboratories Computer Science Department
600 Mountain Avenue Cornell University
Murray Hill, NJ 07974 Ithaca, NY 14853
alur@research.att.com tah@cs.cornell.edu
How can we take a programming language off the shelf and upgrade it into a
realtime programming language? Programs such as device drivers and plant
controllers must explicitly refer and react to time. For this purpose, a variety
of language constructs---including delays, timeouts, and watchdogs---has been
put forward. We advocate an alternative answer, namely, to designate certain
program variables as clock variables. The value of a clock variable changes as
time advances. Timing constraints can be expressed, then, by conditions on
clock values. A single new language construct---the guarded wait statement---
suffices to enforce the timely progress of a program.
Our presentation proceeds in two steps. First we extend untimed systems
(Section 1) with clock variables (Section 2); then we introduce the guarded wait
statement (Section 3). The usage of clock variables and the guarded wait state
ment is illustrated with realtime applications such as roundrobin (timeout
|