Quality RTOS & Embedded Software

 Real time embedded FreeRTOS RSS feed 
Quick Start Supported MCUs PDF Books Trace Tools Ecosystem


Context switches & granularity

Posted by tns1 on October 3, 2008
Assuming scheduler started and tasks are being used with pre-emption on:

It looks like the scheduler is only called a couple of different ways. The first is by the timer tick, which imposes the base scheduler granularity of when a task can be made to run.
The second is by calling taskYIELD/portYIELD, which could possibly cause another task to run a bit sooner that it normally would (it doesn't have to wait for the next timer tick), but only if it were already made ready by other system events (messages, irqs, mutexes, etc).

Said another way, the highest priority ready task will always begin running at the time of a timer tick, possibly sooner if there has been a call to taskYIELD/portYIELD.

Does this sound right, or is there something missing?

RE: Context switches & granularity

Posted by Richard on October 3, 2008
Calls to taskYIELD() can also occur within API functions that either cause a task to block, unblock, suspend, unsuspend, as well as API functions that cause a priority to be changed.


RE: Context switches & granularity

Posted by tns1 on October 3, 2008
I think I see now. taskYIELD is used anyplace the priorities might be changed, so it should make the system more responsive to events in general.

[ Back to the top ]    [ About FreeRTOS ]    [ Privacy ]    [ Sitemap ]    [ ]

Copyright (C) Amazon Web Services, Inc. or its affiliates. All rights reserved.

Latest News

FreeRTOS v10.2.0 is available for immediate download. MIT licensed, and including RISC-V and ARMv8-M (Cortex-M33) demos.

NXP tweet showing LPC5500 (ARMv8-M Cortex-M33) running FreeRTOS.

View a recording of the "OTA Update Security and Reliability" webinar, presented by TI and AWS.


FreeRTOS and other embedded software careers at AWS.

FreeRTOS Partners

ARM Connected RTOS partner for all ARM microcontroller cores

Cadence Tensilica Cortes

Espressif ESP32

IAR Partner

Microchip Premier RTOS Partner

RTOS partner of NXP for all NXP ARM microcontrollers





STMicro RTOS partner supporting ARM7, ARM Cortex-M3, ARM Cortex-M4 and ARM Cortex-M0

Texas Instruments MCU Developer Network RTOS partner for ARM and MSP430 microcontrollers

OpenRTOS and SafeRTOS

Xilinx Microblaze and Zynq partner