Системный планировщик использует таблицу процессов, описанную в заголовочном
файле
/usr/include/linux/sched.h
Внутри структуры struct task_struct находятся все сведения
о состоянии процесса. Они достаточно хорошо прокомментированы. Основными
являются следующие сведения:
Идентификация процесса четко устанавливает, какие права имеет
процесс. Права определяются, исходя из эффективных или реальных номеров
пользователя и номеров групп. Здесь также содержится идентификатор
процесса (PID).
Приоритет процесса определяет взаимный порядок выполнения
процессов. Каждый процесс имеет в своем распоряжении определенное
время для выполнения. Если это время превышено, он должен прервать
работу, перейти в состояние неготовности и ждать, пока до него дойдет
очередь в следующий раз. По приоритету процесса ядро может решить,
какой процесс будет запущен следующим.
Учетные сведения (accounting) - сведения о запросах на выделение
виртуальной памяти. Эта информация нужна, если процесс хочет получить
доступ к определенной области памяти, которая еще не загружена. При
этом аппаратура сообщает об отсутствии страницы, после чего ядро занимается
догружением этой страницы в память.
Контрольный терминал - каждый процесс, кроме процессов-демонов,
нуждается в контрольном терминале, в который выводятся сообщения стандартного
ввода/вывода и ошибки.