Rescheduling: kernel calls
QNX SDP8.0Getting Started with the QNX OSDeveloperUser
If the rescheduling is caused by a thread issuing a kernel call, the rescheduling is done immediately and can be considered asynchronous to the timer and other interrupts.
For example, above we called sleep(10);
.
This C library function is eventually translated into a kernel call.
At that point, the kernel made a rescheduling decision to move your
thread from the RUNNING state, and then schedule another thread that was READY.
There are many kernel calls that cause a process to be rescheduled. Most of them are fairly obvious. Here are a few:
- timer functions (e.g., sleep())
- messaging functions (e.g., MsgSendv())
- thread primitives, (e.g., pthread_cancel(), pthread_join())
Page updated: