¿Cómo determina Linux el próximo PID?

¿Cómo determina Linux el próximo PID que usará para un proceso? El propósito de esta pregunta es comprender mejor el kernel de Linux. No tenga miedo de publicar el código fuente del kernel. Si los PID se asignan secuencialmente, ¿cómo llena Linux los vacíos? ¿Qué sucede cuando llega al final?

Por ejemplo, si ejecuto un script PHP desde Apache que hace un<?php print(getmypid());?> se imprimirá el mismo PID durante unos minutos mientras se presiona actualizar. Este período de tiempo es una función de cuántas solicitudes está recibiendo Apache. Incluso si solo hay un cliente, el PID eventualmente cambiará.

Cuando cambie el PID, será un número cercano, pero ¿qué tan cerca? El número no parece ser completamente secuencial. Si hago unps aux | grep apache Obtengo un buen número de procesos:

¿Cómo elige Linux este próximo número? Los pocos PID anteriores todavía se están ejecutando, así como el PID más reciente que se imprimió. ¿Cómo elige Apache reutilizar estos PID?

Respuestas a la pregunta(4)

Su respuesta a la pregunta