📌 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 ведут к краху всей системы
- Зависим от архитектуры (разное расположение полей)