Distributed real-time systems are difficult to develop. External events occur independently of internal control, and the real-time system must be designed to accommodate them correctly. Two problems emerging from this are the logical correctness and the timing correctness of the system software: not only must it process the real-time events correctly, but the program timing must prevent the task of processing from interfering with the task of monitoring.
The authors are developing the ARTS distributed real-time operating system. This paper describes some interesting aspects of ARTS: a graphical display for monitoring the behavior of system processes (which is not particularly innovative in itself), programming language extensions that express real-time constraints, and real-time debugging capability. The language extensions have an object-oriented flavor, stressing the notion of time encapsulation, which is similar to ordinary data encapsulation; they treat the issue of real-time constraints much better than Ada, for example.
A fundamental problem with real-time debugging is invasiveness--collecting debugging information at runtime will disturb the time sequencing and thus change the behavior of the program. The authors’ solution is to monitor the system at all times, regardless of whether it is being debugged, so real-time behavior is preserved. The monitoring events themselves are managed by the real-time scheduler, which prevents interference with system activities.
Both these ideas are quite clever; the authors’ approach to noninvasive debugging is original. The paper contains a few typos and misnamed references, but the ideas make it more than adequate for the SIGPLAN/SIGOPS Proceedings. I would advise interested readers to contact the authors for papers that provide a more complete treatment of this work.