Comments on any material here are welcome to
Gautam H. Thaker,
Lockheed Martin Advanced Technology Labs, Camden, NJ.
Periodic scheduling test:
Our overall goal is to schedule a process to periodically wake up
and perform some function. We need very high degree of
predictability in this scheduling. We would like a tight bound on
actual durations between wake ups. We can tolerate a bound that
spans from 1/n of desired period to "n" times the desired period
where "n" can be perhaps as large as 5. And this bound needs to
hold under potentially large overload of other lower priority,
non real-time, processes. These other non real-time processes
may be compute intensive, or disk intensive, or network intensive.
Our ideal periodically scheduled program would look like:
gettimeofday(); /* measure delta time since last sleep */
nanosleep(1000000); /* sleep for 1 msec */
Nanosleep() is a POSIX standard interface.
However, our preliminary tests showed that nanosleep() under KURT
was less predictable than a periodic KURT process. Thus, for these
results the periodic test process is a KURT periodic process.
The table below summarizes the results we have todate and provides
a link to specific results.