Task control block (TCB)
La struttura dati in cui un RTOS conserva tutto ciò che deve sapere su un task finché questo non è in esecuzione.
Ogni task di un sistema operativo real-time ha il proprio TCB: stack pointer salvato, priorità, stato (pronto, bloccato, sospeso), ciò che eventualmente attende e di solito un nome, per rendere sopportabile il debug. In pratica lo scheduler fa poco più che spostare TCB tra liste.
A un cambio di contesto i registri della CPU vengono salvati nello stack del task uscente, lo stack pointer viene memorizzato nel suo TCB e quello del task successivo viene caricato dal suo. Per questo pxTopOfStack è il primo campo del TCB di FreeRTOS: il codice assembly lo trova all'offset zero senza sapere altro del layout. L'equivalente nei sistemi operativi generici è il process control block, decisamente più voluminoso.