О pid процесса

У меня есть несколько глупый вопрос, если у меня есть ряд процессов, которые созданы... это не обязательно какое-то наследование, pid процессов должен быть числом непрерывным или случайным pids?

Ответ 1

Это определяется операционной системой.

В общем, они обычно последовательно назначаются ОС. Однако это поведение не является основанием для принятия решений, поскольку в большинстве спецификаций операционной системы указано, что распределение идентификаторов процессов не является детерминированным (т.е. Оно может быть случайным и может изменяться в будущей версии и т.д.).

Ответ 2

В Linux pids обычно распределяются последовательно по общесистемной основе, но они будут периодически обматываться, и могут быть "пробелы", вызванные другими несвязанными процессами. В крайнем случае у вас может быть "зазор", достаточно широкий, чтобы вызвать эту обертку. Поэтому не принимайте никаких конкретных заказов - вместо этого явно отслеживайте PID вашего родительского или дочернего процесса.

Ответ 3

Здесь, как проверить, что делает ваша система:

for i in $(seq 20); do ps; done | grep ps

ПИД-команды "ps" - это последовательные процессы или как можно ближе друг к другу, так как любой другой вызывающий абонент может разумно ожидать, что он сможет появиться.

Мой терминал cygwin в Windows выделяет их случайным образом, мой веб-узел выделяет их последовательно (со случайными промежутками, которые предположительно для процессов, выполняемых другими пользователями или серверами).

Некоторые считают, что последовательное распределение ПИД-регулятора является небольшой проблемой безопасности, поскольку оно может утечки информации между пользователями многопользовательской системы.

Ответ 4

В AIX вы часто увидите более крупные (например, 7-значные) PID, и они не обязательно распределяются полупоследовательно (хотя я тестировал цикличность с шагом 2, на машине был еще один пользователь, поэтому это может не означать многого).

Новый вход на машине AIX 5.3:

$ ps
     PID    TTY  TIME CMD
 1060910 pts/27  0:00 -ksh
 1155224 pts/27  0:00 ps
$

Ответ 5

Зависит от вашей платформы, но вы не должны зависеть от какого-либо конкретного порядка для вашего pid.

В Windows pid обычно выделяются все чаще, но по мере выхода процессов pid может быть переработана, и вы увидите случаи, когда более новый процесс имеет более низкий pid, чем более старый процесс. Кроме того, pid выходит из того же пространства имен, что и tid, поэтому вы не увидите увеличения pid на 4 при запуске новых процессов.

Ответ 6

С вашей точки зрения они будут случайными. Система управляет этими числами и назначает их по мере создания процессов. Быстрый просмотр PID в настоящее время на моей системе показывает, что все они делятся на 4...

Ответ 7

Если вы создаете эти дочерние элементы, вы будете знать pid, pid зависит от планировщика ОС, вас это не волнует.