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. Haben Sie keine Angst, Kernel-Quellcode zu posten. Wenn PIDs sequenziell zugewiesen werden, wie füllt Linux die Lücken? Was passiert, wenn es zu Ende geht?Wie bestimmt Linux die nächste PID?
Zum Beispiel, wenn ich einen PHP-Skript von Apache ausführen, die ein <?php print(getmypid());?>
die gleichen PID tut, wird während Hit Refresh für ein paar Minuten ausgedruckt werden. Dieser Zeitraum ist eine Funktion davon, wie viele Anfragen Apache empfängt. Selbst wenn es nur einen Client gibt, wird sich die PID letztendlich ändern.
Wenn sich die PID ändert, wird es eine enge Zahl sein, aber wie nahe? Die Nummer scheint nicht vollständig sequenziell zu sein. Wenn ich eine ps aux | grep apache
bekomme ich eine ganze Reihe von Prozessen:
Wie Linux diese nächste Nummer wählen? Die vorherigen PIDs werden noch ausgeführt, ebenso wie die letzte PID, die gedruckt wurde. Wie wählt Apache diese PIDs wieder?
+1 Sie sind ein böser Arsch, also gab ich Ihnen etwas anderes ... – rook
Gibt es nay Weise, die ich die globalen und die Namespace-PIDs abbilden kann? –