Download Comparative Study on Real Time Enhanced Linux

Transcript
46
CHAPTER 2. KERNEL SPACE API
executing on
pthread_wait_np - suspend the execution of the calling thread
until the next period (for periodic tasks).
pthread_delete_np - delete the thread in a rt-asfe way from
non-rt context (providing a timeout mechanism).
pthread_attr_setfp_np - mark the created thread as using or not
using the FPU
pthread_setfp_np - mark the thread as using or not using the FPU
pthread_make_periodic_np - set timing parameters for periodic
threads execution
pthread_suspend_np - suspend the execution of the calling thread.
pthread_wakeup_np - wake up the thread
To build periodic threads without utilizing POSIX timers and signals the np
extensions to the API can be used , currently these are somewhat more effective
due to the implementation details than the ‘pure POSIX‘ solutions for periodic
task execution, this should though only be relevant for low-end systems (X86
below 133MHz).
Never the less we recomend using the POSIX style API for portability and
consistancy of semantics, even at the price of some performance loss.
2.3.7
Backwars/Forwards Compatibility
Note that ‘pure-POSIX‘ is posible in RTLinux/GPL and the API development is
focused towards improving POSIX compatibility and completness. RTLinux has
provided backwards compatibility in the past all the way back to the V1 API
(non-POSIX) but this compatibility is at the price of reduced performance. This
reduction of performance is due to the backwards compatibility being provided
via wrappers to the V3 API - so backwards compatibility is not using the original
implementation. To utilize the full performance and stay compatible to future
releases of RTLinux/GPL pure-POSIX is advocated.
We recomend not using the V1 API unless actually running on V1.X RTLinux
systems. For projects utilizing the current API, POSIX should be the guiding
coding standard.
2.4
RTLinux/Pro
The RTLinux/Pro API for the first release (Dev-Kit 1.0) is identical to the
RTLinux/GPL V3.1 API, at which time the splitt between RTLinux/GPL and
RTLinux/Pro occured.