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