Как Linux определяет следующий PID, который он будет использовать для процесса? Цель этого вопроса - лучше понять ядро Linux. Не бойтесь опубликовать исходный код ядра. Если PID распределяются последовательно, как Linux заполняет пробелы? Что происходит, когда оно заканчивается?
Например, если я запускаю PHP script из Apache, который выполняет <?php print(getmypid());?>
, то тот же PID будет распечатан в течение нескольких минут при обновлении. Этот период времени является функцией количества запросов, которые получает apache. Даже если есть только один клиент, PID в конечном итоге изменится.
Когда PID изменится, это будет близкое число, но как близко? Число не выглядит полностью последовательным. Если я выполняю ps aux | grep apache
, я получаю много процессов:
Как Linux выбирает следующий номер? Предыдущие несколько PID все еще запущены, а также самый последний PID, который был напечатан. Как apache выбирает повторное использование этих PID?