タスク制御ブロック (TCB)
RTOSが、実行中でないタスクについて必要な情報をすべて保持しておくためのデータ構造。
リアルタイムOSのタスクにはそれぞれ専用のTCBがある。保存されたスタックポインタ、優先度、状態(実行可能、ブロック、サスペンド)、待っている対象、そしてたいていはデバッグを我慢できるものにするための名前だ。実際のところ、スケジューラの仕事の大半はTCBをリスト間で移し替えることにすぎない。
コンテキストスイッチでは、CPUレジスタが切り替え元タスクのスタックに積まれ、そのスタックポインタがTCBに保存され、次のタスクのスタックポインタがそのTCBから読み込まれる。FreeRTOSのTCBでpxTopOfStackが先頭のフィールドなのはそのためで、アセンブリコードは他のレイアウトを何も知らなくてもオフセット0で見つけられる。汎用OSでこれに当たるのがプロセス制御ブロックで、はるかに大柄である。