Howto implement a periodic real-time task?

Andre Puschmann andre.puschmann at imms.de
Tue Jul 21 11:03:38 CEST 2009


Hey guys,

I got a L4 real-time application that should run strictly periodic. In 
each cycle I have to communicate with at least two other L4 threads in 
different address spaces. The cycle period is in the order of 1000Hz to 
5000Hz.
As described in [1] I tried to use the CPU reservation server but the 
sample implementations did not work. Anyway, I figured out that even the 
CPU reservation server depends on the kernel timer and thus the 
granularity is 1ms (in PIT mode), which is too coarse for cycle periods 
larger then 1000Hz.
Although I like the idea to use OS primitives to keep the application as 
portable as possible (ARM port is a goal), I thought about implementing 
the periodic execution with an extra timer decoupled from the scheduling 
timer which generates an IRQ at each hit.
Any comment/suggestions/ideas about that? Any other experience with 
periodic real-time tasks on L4?


Cheers,
Andre


[1] http://os.inf.tu-dresden.de/pipermail/l4-hackers/2009/004179.html




More information about the l4-hackers mailing list