Wie ermittelt Linux die nächste PID?

Wie bestimmt Linux die nächste PID, die es für einen Prozess verwendet? Der Zweck dieser Frage ist es, den Linux-Kernel besser zu verstehen. Hab keine Angst, Kernel-Quellcode zu posten. Wenn PIDs nacheinander vergeben werden, wie füllt Linux die Lücken? Was passiert, wenn es zu Ende geht?

Zum Beispiel, wenn ich ein PHP-Skript von Apache aus starte, das ein @ ausfüh<?php print(getmypid());?> Die gleiche PID wird einige Minuten lang ausgedruckt, während Sie auf "Aktualisieren" klicken. Dieser Zeitraum hängt davon ab, wie viele Anfragen Apache erhält. Selbst wenn es nur einen Client gibt, ändert sich die PID schließlich.

Wenn sich die PID ändert, wird es eine nahe Zahl sein, aber wie nahe? Die Nummer scheint nicht vollständig fortlaufend zu sein. Wenn ich ein @ macps aux | grep apache Ich bekomme eine ganze Reihe von Prozessen:

Wie wählt Linux diese nächste Nummer? Die vorherigen PIDs sowie die zuletzt gedruckte PID werden noch ausgeführt. Wie wählt Apache die Wiederverwendung dieser PIDs?