Scheduling


We became interested in scheduling as real-time kernels promised to run hundreds of tasks without all getting jammed up in a funnel, but adding just one extra task was like those games where blocks are taken out of a balancing tower and come crashing into a heap of rubble. At least rubble provides evidence for a post-mortem examination. Real-time systems fail silently when there is the most opportune moment for maximum damage.

Our research narrowed into tracing with some tools written to take a simple task-set as CSV, generate some C code to create each task plus schedule it, work out the utilisation, create the hyper-period and optimum scheduling frame size, then measure the execution times. We never did complete the cycle from specification to verification, but we did learn a lot. Much of the documentation needs to be split up into articles rather than a large collection of chapters. This will be placed onto the “to do list”. Of interest might be the patents that were examined for tracing to produce the equivalent of a “software logic analyzer”. Some of them expire shortly.