📌 Task Control Block TCB

Task Control Block (TCB) — структура данных, которая содержит полную информацию о задаче (потоке или процессе), необходимую для её управления, планирования и переключения контекста CPU.

🧠 Как работает

Scheduler использует TCB для отслеживания состояния каждой задачи. При переключении контекста ядро сохраняет и восстанавливает данные из TCB. Эта структура обычно размещается в ядровой памяти и ссылается из таблиц задач.

Основные поля TCB:

  • Идентификаторы: PID, TID
  • Регистры: PC, SP, Registers, FPU/XMM состояния
  • Состояние: Running, Ready, Blocked, Sleeping
  • Приоритеты: статический, динамический
  • Память: указатели на Stack, Heap, Page Table
  • Список блокировок: Mutex, Semaphore и пр.
  • Время исполнения: учёт квантов, профилирование
  • Ссылки: родительская/дочерние задачи, ресурсы, дескрипторы

Пример в Linux Kernel: структура task_struct.

⚙️ Где применяется

Компонент ОСНазначение
SchedulerВыбор и переключение задач
KernelУчёт ресурсов, системные вызовы, сигналы
RTOSХранение минимального состояния для задач
Multicore CPUРаспределение TCB между ядрами

✅ Преимущества

  • Централизованное управление задачей
  • Быстрое переключение контекста
  • Расширяемость под любые политики планирования

❌ Недостатки

  • Требует памяти и управления её размещением
  • Ошибки в TCB ведут к краху всей системы
  • Зависим от архитектуры (разное расположение полей)