Como o Linux determina o próximo PID?

Como o Linux determina o próximo PID que ele usará para um processo? O objetivo desta pergunta é entender melhor o kernel do Linux. Não tenha medo de publicar o código fonte do kernel. Se os PIDs são alocados sequencialmente, como o Linux preenche as lacunas? O que acontece quando chega ao fim?

Por exemplo, se eu executar um script PHP a partir do Apache que faça um<?php print(getmypid());?> o mesmo PID será impresso por alguns minutos enquanto pressiona a atualização. Esse período é uma função de quantos pedidos o apache está recebendo. Mesmo se houver apenas um cliente, o PID eventualmente mudará.

Quando o PID mudar, será um número próximo, mas quão perto? O número não parece ser inteiramente seqüencial. Se eu fizer umaps aux | grep apache Eu recebo um número razoável de processos:

Como o Linux escolhe esse próximo número? Os PIDs anteriores ainda estão em execução, bem como o PID mais recente impresso. Como o apache escolhe reutilizar esses PIDs?

questionAnswers(4)

yourAnswerToTheQuestion