Showing posts with label VxWorks. Show all posts
Showing posts with label VxWorks. Show all posts

Wednesday, 6 August 2014

[OS] VxWorks Task Scheduling

VxWorks

 
Ready/Exec
the task that is ready to run and not waiting for any resource other than CPU.
Pended
the task that is blocked and waiting for availability of resources. For example, semTake() will block the task if the semaphore is not available, and semGive() will take it back to Ready state.
Delayed
the task that is waiting for an amount of time to pass. For example, taskDelay() will take the task to this state. After the timeout is expired, it becomes Ready state.
Pended & Delayed
the task that is blocked and waiting for availability of resources with a timeout.
Suspended
the task that is unavailable to execution. It’s primarily used for debugging. It will not affect task state, but only task execution. For example, taskSuspend() of a task in Ready will lead to this state, and taskResume() will resume this task to Ready.
Delayed & Suspended
the task that is both delayed and suspended. If the task is resumed, its state will be delayed. For example, taskSuspend() of a task in Delayed will lead to this state, and taskResume() will resume this task to Delayed.
Pended & Suspended
the task that is both pended and suspended. If the task is resumed, its state will be pended. For example, taskSuspend() of a task in Pended will lead to this state, and taskResume() will resume this task to Pended.
Pended & Delayed & Suspended
the task that is pended, delayed and suspended. If the task is resumed, its state will be pended & delayed. For example, taskSuspend() of a task in Pended and Delayed will lead to this state, and taskResume() will resume this task to Pended and Delayed.