Driver programming

Drivers can use POSIX-style threads of execution within the kernel for interrupt handling. LynxOS® treats these threads like normal users threads with software priorities not interrupt priorities. The driver interrupt handler does a minimum of work and signals the kernel thread that interrupt-related data is available.

LynxOS® implements priority tracking. Kernel threads begin their existence with a very low priority as created by a driver. When a user thread opens the device, the kernel thread promotes its own priority and inherits the priority of the user thread opening the device. If another user thread of higher priority opens the device, the kernel thread bumps its priority up to match the other thread; when I/O is complete the kernel thread returns to the next pending threads's priority level, or to its starting level. Kernel threads may use 1/2 priority steps and priority tracking so they execute before the user task they serve, but after higher priority user tasks.