Keil Logo

Task Management

Each RTX task is always in exactly one state, which tells the disposition of the task.

State Description
RUNNING The task that is currently running is in the RUNNING state. Only one task at a time can be in this state. The os_tsk_self() returns the Task ID (TID) of the currently executing task.
READY Tasks which are ready to run are in the READY state. Once the running task has completed processing, RTX selects the next ready task with the highest priority and starts it.
WAIT_DLY Tasks which are waiting for a delay to expire are in the WAIT_DLY State. Once the delay has expired, the task is switched to the READY state. The os_dly_wait() function is used to place a task in the WAIT_DLY state.
WAIT_ITV Tasks which are waiting for an interval to expire are in the WAIT_ITV State. Once the interval delay has expired, the task is switched back to the READY State. The os_itv_wait() function is used to place a task in the WAIT_IVL State.
WAIT_OR Tasks which are waiting for at least one event flag are in the WAIT_OR State. When the event occurs, the task is switched to the READY state. The os_evt_wait_or() function is used to place a task in the WAIT_OR state.
WAIT_AND Tasks which are waiting for all the set events to occur are in the WAIT_AND state. When all event flags are set, the task is switched to the READY state. The os_evt_wait_and() function is used to place a task in the WAIT_AND state.
WAIT_SEM Tasks which are waiting for a semaphore are in the WAIT_SEM state. When the token is obtained from the semaphore, the task is switched to the READY state. The os_sem_wait() function is used to place a task in the WAIT_SEM state.
WAIT_MUT Tasks which are waiting for a free mutex are in the WAIT_MUT state. When a mutex is released, the task acquire the mutex and switch to the READY state. The os_mut_wait() function is used to place a task in the WAIT_MUT state.
WAIT_MBX Tasks which are waiting for a mailbox message are in the WAIT_MBX state. Once the message has arrived, the task is switched to the READY state. The os_mbx_wait() function is used to place a task in the WAIT_MBX state.
Tasks waiting to send a message when the mailbox is full are also put into the WAIT_MBX state. When the message is read out from the mailbox, the task is switched to the READY state. In this case the os_mbx_send() function is used to place a task in the WAIT_MBX state.
INACTIVE Tasks which have not been started or tasks which have been deleted are in the INACTIVE state. The os_tsk_delete() function places a task that has been started (with os_tsk_create()) into the INACTIVE state.
  Arm logo
Important information

This site uses cookies to store information on your computer. By continuing to use our site, you consent to our cookies.

Change Settings

Privacy Policy Update

Arm’s Privacy Policy has been updated. By continuing to use our site, you consent to Arm’s Privacy Policy. Please review our Privacy Policy to learn more about our collection, use and transfers
of your data.