Графа состояния и планирования в top/htop отражает текущее положение процесса в модели планировщика ядра. Эти поля описывают, как процесс рассматривается планировщиком: исполняется ли он сейчас, может ли быть вытеснен, каков его относительный приоритет и по какой политике он обслуживается.

Данные берутся из структур ядра (прежде всего task_struct) и соответствующих полей планировщика.

Краткое пояснение к полям:

  • S (state) - текущее состояние процесса. Основные значения:
    R - выполняется или готов к выполнению (run queue)
    S - спящий, ожидает событие (interruptible sleep)
    D - непрерываемое ожидание (обычно I/O)
    T - остановлен (signal/trace)
    Z - зомби (завершён, но не считан родителем)
    Также могут встречаться I (idle kernel thread) и другие специфические состояния.

  • PRI (priority) — динамический приоритет, который видит планировщик. Для обычных процессов он вычисляется на основе статического приоритета и значения nice. Для realtime-задач отображает их реальный приоритет. Меньшее числовое значение означает более высокий приоритет исполнения.

  • NI (nice) — пользовательская корректировка приоритета в диапазоне от -20 до +19. Меньшее значение даёт процессу большее преимущество при планировании (в рамках обычной политики CFS). Изменяется через nice или renice.

  • RT priority — приоритет для процессов с политиками реального времени. Диапазон обычно 1–99. Используется только для SCHED_FIFO и SCHED_RR. Такие задачи имеют приоритет над обычными (SCHED_OTHER) процессами.

  • scheduler policy — политика планирования процесса. Основные варианты:
    SCHED_OTHER — стандартная политика CFS для обычных процессов
    SCHED_BATCH — для пакетных задач без интерактивных требований
    SCHED_IDLE — минимальный приоритет, выполнение при простое системы
    SCHED_FIFO — realtime, без квантования времени
    SCHED_RR — realtime с квантованием
    SCHED_DEADLINE — дедлайновое планирование (EDF-модель)

Практически эти поля используются для диагностики starvation, анализа поведения realtime-процессов, отладки проблем с I/O-блокировками (состояние D) и проверки корректности настройки приоритетов и политик планирования.