UID (User ID) — это идентификатор пользователя, создавшего данный процесс, точнее, копия значения UID родительского процесса. Менять атрибуты процесса могут только его создатель (владелец) и пользователь root.
UID представляет собой 32-битное целое число, но в целях совместимости рекомендуется, чтобы оно не превышало максимально 16-битного целого числа со знаком (32767).
EUID (Effective User ID) — это «эффективный», или текущий, пользовательский идентификатор процесса, предназначенный для того, чтобы определить, к каким ресурсам и файлам у процесса есть право доступа в данный момент. У большинства процессов значения UID и EUID одинаковы.
UID и EUID позволяют разграничить понятия персонификации и прав доступа. Значение EU1D можно устанавливать и сбрасывать, чтобы предоставлять процессу дополнительные полномочия или убирать их.
GID (Group ID) — это идентификатор группы, к которой принадлежит владелец процесса.
Эффективный (или текущий), идентификатор группы (Effective Group ID, EGID) связан с атрибутом GID гак же, как значение EUID — с UID.
Порядок выполнения процессов определяется специальным системным процессом — планировщиком заданий.
Обычно в Linux-системах выполнение того ли иного процесса определяется приоритетом и обратной к нему величиной — фактором уступчивости.
Приоритет процесса определяет, какую долю времени ЦП получает программа. Ядро применяет динамический алгоритм вычисления приоритетов, учитывающий, сколько времени ЦП уже использовал процесс и сколько времени он ожидает своей очереди.
Фактор уступчивости — это число, по которому ядро определяет свою политику в отношении процессов, конкурирующих за право доступа к центральному процессору. Чем выше фактор уступчивости, тем ниже приоритет процесса, и наоборот. Низкое или отрицательное значение означает использование высокого приоритета: процесс ведет себя не слишком уступчиво. Диапазон допустимых значений — от -20 до +19. По умолчанию равен 0.
Если пользователь не предпринимает специальных мер, то дочерний процесс наследует приоритет своего родительского процесса. Владелец процесса может увеличить фактор уступчивости, но не может уменьшить его, даже чтобы вернуться к стандартному значению. Это не позволяет процессам с низким приоритетом порождать высокоприоритетных потомков. Суперпользователь может устанавливать произвольные значения фактора уступчивости.
Фактор уступчивости можно установить при создании процесса. Это делается с помощью команды nice. Команда renice позволяет изменять приоритет выполняемого процесса.