2013-12-12 2 views
3

Если программа имеет pid из P, будет ли дочерний процесс (и их дети) иметь pids, которые строго больше P?Идентификаторы процессов, назначенные последовательно в linux?

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

+1

Действительно ли это имеет значение? – HAL

+3

@HAL Это не помогает ответить на вопрос – Sash

+0

Действительно не вопрос программирования, а вопрос Linux. – m0skit0

ответ

3

От http://en.wikipedia.org/wiki/Process_identifier

идентификаторы процессов, как правило, распределяются на последовательной основе, начиная с 0 и растет до максимального значения, которое изменяется от системы к системе. Как только этот предел достигнут, распределение перезапускается на 300 и снова увеличивается. В Mac OS X и HP-UX распределение перезапускается на 100. Однако для этого и последующего пропуска пропускают любые PID, все еще назначенные процессам . Некоторые считают, что это потенциальная уязвимость в безопасности, заключающаяся в том, что она позволяет извлекать информацию об этой системе или сообщения, которые должны быть скрыто переданы между процессами. В качестве такие реализации, которые особенно обеспокоены безопасностью , могут выбирать другой метод назначения PID. [1] В некоторых системах , как MPE/iX, используется самый низкий доступный PID, иногда с усилием , чтобы свести к минимуму количество страниц ядра информации процесса в памяти.

Оригинальный ответ: https://superuser.com/questions/135007/how-are-pids-generated

1

Каждый новый процесс обеспечивает идентификатор процесса, и каждый процесс имеет уникальный идентификатор процесса. Этот идентификатор является нецелым значением. Как только процесс завершает идентификаторы процессов повторно используются. Это означает, что идентификатор завершения работы снова используется для другого процесса. Максимальный идентификатор процесса, созданный ядром, который максимальный pid равен 32768. . Это максимальное значение pid, сохраненное в/proc/sys/kernel/pid_max этот файл содержит максимальное значение pid. После превышения лимита pid он запустит, какой идентификатор процесса не используется, который назначен для процесса. Идентификатор процесса, созданный ядром для использования системного вызова fork().

Смежные вопросы