|Title:||Managing Hard Real Times (28 Years Later)|
|Conference:||Communicating Process Architectures 2015|
Peter H. Welch
School of Computing, University of Kent
In some quarters, received wisdom about hard real-time systems (where lateness in response means system failure) is that a currently running process must be pre-empted by a higher priority process that becomes runnable (e.g. by the assertion of a processor event pin or timeout) — otherwise worst-case response times cannot be guaranteed. Further, if a higher priority process needs to synchronise with one of lower priority, the latter must automatically inherit the priority of the former. If this does not happen, the opposite happens and the former effectively inherits the lower priority of the latter as it waits for it to be scheduled (priority inversion) — again, worst-case response times fail.
The CCSP multicore scheduler for occam-pi (part of the KRoC package) is, possibly, the fastest and most scalable (with respect to processor cores) such beast on the planet. However, its scheduling is cooperative (not pre-emptive) and it does not implement priority inheritance (and cannot do so, given the nature of CSP synchronisation, where processes do not know the identities of the other processes involved). Therefore, despite its performance, received wisdom would seem to rule it out for hard real-time applications.
This talk reviews a paper, , from the OUG-7 proceedings (1987) that discusses these ideas with respect to Transputers. One minor improvement to the reported techniques will be described. Otherwise, no change is needed for modern multicore architectures. Conclusions are that (a) pre-emptive scheduling is not required, (b) priority inheritance is a design error (dealt with by correct design, not the run-time system) and (c) the occam-pi/CCSP scheduler can be made to work even more efficiently for hard real-time systems than it presently does for soft real-time (e.g. complex system modelling).
 Peter H. Welch. Managing Hard Real-Time Demands on Transputers.
In: Traian Muntean, ed., Proceedings of OUG-7 Conference and International Workshop
on Parallel Programming of Transputer Based Machines.
LGI-IMAG, Grenoble, France: IOS Press, Netherlands. 1987.