Difference between revisions of "Task Switching"
Line 9: | Line 9: | ||
<b>1.Running</b>: The task which is executing currently is said to be in running state. It owns the CPU. | <b>1.Running</b>: The task which is executing currently is said to be in running state. It owns the CPU. | ||
− | <b>2.Ready</b>: The task which is neither suspended nor blocked but still not executing will be ready state. | + | <b>2.Ready</b>: The task which is neither suspended nor blocked but still not executing will be in ready state. It's not in running state because either a high priority or equal priority task is executing. |
− | <b>3.Blocked</b>: A task will go in blocked state whenever | + | <b>3.Blocked</b>: A task will go in blocked state whenever it is waiting for an event to happen. The event can be completing a delay period or availability of a resource. The blocked tasks are not available for scheduling. |
− | <b>4.Suspended</b>: When vTaskSuspend() is called, the task goes in suspended state. | + | <b>4.Suspended</b>: When vTaskSuspend() is called, the task goes in suspended state. It can be resumed by calling xTaskResume(). The suspended tasks are also not available for scheduling. |
Revision as of 16:23, 27 June 2016
In this tutorial we will be looking all the possible freeRtos configuration.
Task States
In the FreeRTOS a task can be in either of four different states viz., Running, Ready, Blocked and Suspended as shown in below image.
1.Running: The task which is executing currently is said to be in running state. It owns the CPU.
2.Ready: The task which is neither suspended nor blocked but still not executing will be in ready state. It's not in running state because either a high priority or equal priority task is executing.
3.Blocked: A task will go in blocked state whenever it is waiting for an event to happen. The event can be completing a delay period or availability of a resource. The blocked tasks are not available for scheduling.
4.Suspended: When vTaskSuspend() is called, the task goes in suspended state. It can be resumed by calling xTaskResume(). The suspended tasks are also not available for scheduling.