69. The RTVMM of claim 1 wherein the implementing step comprises the steps: creating a normally-sleeping thread called a thread dispatcher; causing the thread dispatcher to be awakened if an interrupt arrives from an alarm timer that has determined that a specified time period has expired, the thread dispatcher then suspending execution of the currently-executing thread; causing the thread dispatcher to be awakened if an interrupt arrives indicating the necessity of preempting the currently-executing thread so that a sporadic task can be executed; causing the thread dispatcher to be awakened if the currently-executing thread blocks on an I/O request, the thread dispatcher then suspending execution of the currently-executing thread.
69. The RTVMM of claim 1 wherein the implementing step comprises the steps: creating a normally-sleeping thread called a thread dispatcher; causing the thread dispatcher to be awakened if an interrupt arrives from an alarm timer that has determined that a specified time period has expired, the thread dispatcher then suspending execution of the currently-executing thread; causing the thread dispatcher to be awakened if an interrupt arrives indicating the necessity of preempting the currently-executing thread so that a sporadic task can be executed; causing the thread dispatcher to be awakened if the currently-executing thread blocks on an I/O request, the thread dispatcher then suspending execution of the currently-executing thread. 70. The RTVMM of claim 69 wherein the implementing step comprises the step: creating a watchdog thread that sends an interrupt to the thread dispatcher when a thread that is scheduled for execution blocks.