О пид процесса - PullRequest
       49

О пид процесса

0 голосов
/ 05 мая 2009

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

Ответы [ 7 ]

7 голосов
/ 05 мая 2009

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

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

4 голосов
/ 05 мая 2009

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

2 голосов
/ 05 мая 2009

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

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

PID команд "ps" являются последовательными процессами или настолько близки к последовательным, насколько разумно может ожидать любой другой вызывающий объект.

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

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

1 голос
/ 05 мая 2009

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

Новый вход в систему на компьютере с AIX 5.3:

$ ps
     PID    TTY  TIME CMD
 1060910 pts/27  0:00 -ksh
 1155224 pts/27  0:00 ps
$
0 голосов
/ 05 мая 2009

Если вы создаете тех потомков, вы знаете pid, pid зависит от планировщика ОС, вам все равно.

0 голосов
/ 05 мая 2009

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

0 голосов
/ 05 мая 2009

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

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

...