Comment Linux détermine-t-il le prochain PID qu'il utilisera pour un processus ? Le but de cette question est de mieux comprendre le noyau Linux. N'ayez pas peur de poster le code source du noyau. Si les PIDs sont alloués séquentiellement, comment Linux remplit-il les vides ? Que se passe-t-il quand il arrive à la fin ?
Par exemple, si je lance un script PHP depuis Apache qui fait un <?php print(getmypid());?>
le même PID sera imprimé pendant quelques minutes en appuyant sur rafraîchir. Cette période de temps est fonction du nombre de requêtes qu'apache reçoit. Même s'il n'y a qu'un seul client, le PID finira par changer.
Lorsque le PID change, ce sera un chiffre proche, mais proche comment ? Le numéro ne semble pas être entièrement séquentiel. Si je fais un ps aux | grep apache
Je reçois un bon nombre de processus :
Comment Linux choisit-il ce prochain numéro ? Les quelques PID précédents sont toujours en cours, ainsi que le PID le plus récent qui a été imprimé. Comment Apache choisit-il de réutiliser ces PID ?