Bloque de control de tarea (TCB)
La estructura de datos donde un RTOS guarda todo lo que necesita saber de una tarea mientras esta no se ejecuta.
Cada tarea de un sistema operativo de tiempo real tiene su TCB: puntero de pila guardado, prioridad, estado (lista, bloqueada, suspendida), lo que esté esperando y normalmente un nombre para que la depuración sea soportable. En la práctica, el planificador apenas hace otra cosa que mover TCB de una lista a otra.
En un cambio de contexto, los registros de la CPU se apilan en la pila de la tarea saliente, el puntero de pila se guarda en su TCB y se carga el de la siguiente tarea desde el suyo. Por eso pxTopOfStack es el primer campo del TCB de FreeRTOS: el código ensamblador lo encuentra en el desplazamiento cero sin saber nada más de la estructura. El equivalente en un sistema operativo de propósito general es el bloque de control de proceso, bastante más voluminoso.