Як нумеруються процеси в UNIX?


17

Я не можу знайти жодного шаблону, коли я дивлюсь на нумерацію PID в таблиці процесів ( ps -a), оскільки PID - це не наступні числа, а іноді між цими числами існують великі "прогалини". Це тому, що можуть бути якісь процеси, які працюють за короткий час, і вони резервують деякі PID? Чи існує деякий діапазон, після якого нумерація процесів скидається?

Я використовую Mac OS X, але, мабуть, відповідь має стосуватися UNIX взагалі.

Відповіді:


18

Так, в обох випадках.

Багато процесів недовговічні. Вони отримують PID, запускають, закінчують, і PID зникає з таблиці процесів.

Процеси іноді живуть лише частку секунди!

Часто, коли програми запускаються, вони виконують численні команди в рамках перевірки системи та ініціалізації свого середовища.

Максимальне число PID залежить від системи та інколи може бути налаштоване. В основному, якщо ви знаєте, що у вас буде величезна кількість процесів, вам може знадобитися збільшити кількість, але в нових операційних системах я вважаю, що максимальна кількість, як правило, досить велика для більшості будь-якого навантаження.

PID - це записи в таблицю процесів, і чим більше у вас є більше пам'яті, яку займає таблиця процесів.

Погляньте на це пов’язане питання: /server/279178/what-is-the-range-of-a-pid-on-linux-and-solaris

Також зауважте, що з цим пов'язана "максимальна кількість процесів на користувача", що є заходом для захисту від зловмисного користувача, що навмисно створює багато процесів, щоб зависати всю таблицю процесів.


7

Також можливо налаштувати деякі сучасні ядра для призначення випадкових PID нових процесів для підвищення безпеки. Принаймні Linux і FreeBSD можуть це робити з налаштуванням sysctl, а OpenBSD робить це завжди. У цих випадках ви можете сказати все менше про схеми нумерації.


Чи знаєте ви, що для цього існує вартість продуктивності?
Брюс Едігер

@Bruce: перший запропонований патч мав найгірший показник роботи O (infty) через наївну рандомізацію. Але я думаю, що у них вийшло щось безпечне та корисне. Я не знайшов нічого дуже актуального в цій темі ... не те, що раніше я вважаю. :)
unperson325680

5
Випадкові PID звучать як безпека через незрозумілість для мене.
Йохан

Ось що це, здебільшого ...
unperson325680

Окрім індивідуальних ініціатив, Linux раніше пропонував це лише через патч безпечності , команда Linux ядра завжди відмовлялася його застосовувати ( наприклад, тут ) і навіть команда grsecurity остаточно відмовилася від неї наприкінці 2006 року .
WhiteWinterWolf
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.