I recently worked on two closely related OS reseach projects. The first involved using the APIC timer available in most modern processors to enable extremely accurate timers within the Linux kernel. Unlike the standard PIT timer, the APIC timer can be set with very low overhead, making it suitable as a "one-shot" timer. Instead of interrupting the system once every ten milliseconds or so to check if any timers have expired, our system generates an interrupt almost exactly when the timer expires (usually within a few microseconds).
This mechanism is discussed in the following paper:
Firm Timers Kernel download
Unfortunately, the Linux kernel frequently disables interrupts for long periods of time and/or fails to return to user space for a long time. There are several patches, however, which address this behavior. Andrew Morton's low latency patch inserts periodic checks during certain long kernel execution paths. If a high priority process is waiting, the kernel can defer its lengthy operation until later. Robert Love's preemtible kernel patch uses spinlocks that are usually only used in SMP cases to determine if the kernel can be pre-empted by a task that is higher priority than the task the kernel is currently executing on behalf of.
We measured timer latency performance on a standard Linux kernel with our APIC timer mechanism, then with Low Latency, Preemption, and a combination of the two: