Планирование и приоритет - раздел в таблице процессов top/htop, отражающий параметры, влияющие на порядок и условия выполнения процесса планировщиком ядра Linux. Значения формируются на основе данных /proc/[pid]/stat, /proc/[pid]/sched и системных вызовов sched_*.
PR (priority) - текущий динамический приоритет процесса, используемый планировщиком.
- Для обычных задач (CFS) отображается как число, зависящее от
nice. - Для задач реального времени соответствует диапазону RT-приоритетов.
- Меньшее числовое значение означает более высокий приоритет выполнения.
- Может изменяться ядром динамически (для CFS — на основе виртуального времени выполнения).
NI (nice value) - пользовательский коэффициент «вежливости», влияющий на относительную долю CPU.
- Диапазон: от -20 (наивысший приоритет) до +19 (наименьший).
- По умолчанию: 0.
- Влияет только на процессы класса CFS.
- Изменяется через
niceилиrenice. - Не гарантирует жёсткий приоритет, а лишь смещает относительный вес процесса в планировщике.
RT priority - статический приоритет задач реального времени.
- Диапазон: 1–99.
- Используется для классов
SCHED_FIFOиSCHED_RR. - Процессы с RT-приоритетом всегда выполняются раньше задач CFS.
- Более высокое число означает более высокий приоритет.
- Неправильная настройка может привести к starvation обычных задач.
CLS (scheduling class) - класс планирования, определяющий алгоритм распределения CPU.
Основные классы:
SCHED_OTHER(CFS) - стандартный класс. Использует Completely Fair Scheduler, распределяющий CPU пропорционально весам (зависимым отnice).SCHED_FIFO- real-time, без квантования. Процесс выполняется, пока не освободит CPU или не будет вытеснен задачей с более высоким RT-приоритетом.SCHED_RR- real-time с квантованием. Аналог FIFO, но с фиксированным тайм-слайсом.SCHED_BATCH- для фоновых вычислений, минимизирует влияние на интерактивные задачи.SCHED_IDLE- минимальный приоритет, используется только при полном отсутствии других задач.SCHED_DEADLINE- дедлайновый планировщик на основе параметров runtime/period/deadline (не всегда отображается вtop).
Эти параметры используются для управления CPU-bound нагрузкой, настройки поведения сервисов с требованиями к задержкам, изоляции фоновых задач и анализа проблем starvation или инверсии приоритетов.