Como dice Wikipedia ,
En Unix, las ID de proceso generalmente se asignan de forma secuencial, comenzando en 0 y aumentando hasta un valor máximo que varía de un sistema a otro. Una vez que se alcanza este límite, la asignación se reinicia en cero y nuevamente aumenta. Sin embargo, para este y los pases posteriores, se omiten los PID que aún se asignan a los procesos.
así que es realmente una política muy simple para "generación", simplemente incremente un contador y "reciclaje", simplemente ajuste el número a un valor máximo y siga incrementándolo hasta que encuentre un número que se asignó a un proceso que ha finalizado y tiene sido eliminado de la tabla de procesos.
Algunas implementaciones de Unix, como AIX, usan una política que es menos simple; consulte, por ejemplo, estas preguntas frecuentes .