p12ab

Abstract. Real-time embedded systems in general require a reliability that is orders of magnitude higher than what is presently obtainable with state of the art C programs. The reason for the poor reliability of present day software is the unavailability of a formalism to design sequential C programs.

The use of the CSP channel concept not only provides a formal base for inherently concurrent real-time embedded system design it also adds a parallel dimension to object oriented programming that is easily understood by programmers.

The CSP channels as implemented in Java replaces the hazardous use of multi threaded programming with an unambiguous design concept that is easy to reason about. Multi threaded programming is completely removed from the programmer who is merely required to program small sequential tasks that communicate with each other via these CSP channels. The channel concept that has been implemented in Java deals with single- and multi processor environments and also takes care of the real-time priority scheduling requirements. For this, the notion of priority and scheduling have been carefully examined and as a result it was reasoned that both priority and scheduling code should be attached to the communicating channels rather than to the processes. Moreover in the proposed system, the notion of scheduling is no longer connected to the operating system but has become part of the application instead. One has to get used to the idea that many schedulers may be running in different parts of the program. The software implementation of the Java class may be obtained through: http://www.rt.el.utwente.nl/javapp.