Frage

Ich habe eine etwas dumme Frage, wenn ich eine Reihe von Prozessen, die erstellt werden, ... das ist nicht unbedingt eine Art der Vererbung, haben die pid der Prozesse Zahlen kontinuierlich oder zufällig pids sein?

War es hilfreich?

Lösung

Dies wird durch das Betriebssystem bestimmt wird.

In der Regel werden sie in der Regel der Reihe nach von der OS zugeordnet. Allerdings ist dieses Verhalten nicht etwas zu stützen Entscheidungen auf, da die meisten Betriebssystem-Spezifikationen fest, dass die Prozess-ID Zuordnung nicht deterministisch ist (dh: es zufällig sein könnte, und könnte in einer zukünftigen Version ändern, usw.).

Andere Tipps

Unter Linux werden pids im allgemeinen sequentiell auf einer systemweiten Basis zugewiesen, aber sie werden in regelmäßigen Abständen umschlingen, und es können ‚Lücken‘ durch andere, nicht verwandte Prozesse verursacht werden. Im Extremfall, haben Sie vielleicht eine ‚Lücke‘ breit genug, um diese Umgriff zu verursachen. So übernimmt keine bestimmte Reihenfolge -. Stattdessen explizit verfolgen Sie Ihre Eltern oder Kind Prozess PIDs

Hier ist, wie zu testen, was Ihr System tut:

for i in $(seq 20); do ps; done | grep ps

Die PIDs der „ps“ Befehle aufeinanderfolgende Prozesse sind, oder so nah aufeinander folgenden als andere Anrufer könnte vernünftigerweise erwarten zu können, um laichen.

Meine Cygwin-Terminal auf Windows ordnet sie nach dem Zufall-ish, meine Web-Host ihnen (mit gelegentlichen Lücken, die durch andere Benutzer oder Server für Prozesse laufen vermutlich) sind der Reihe nach ordnet.

Einig betrachten sequentielle PID Zuweisung ein leichtes mögliches Sicherheitsproblem sein, da es Informationen zwischen den Nutzern eines Multi-User-System austreten kann.

Unter AIX, werden Sie sehen oft größer (zB 7-stellig) PIDs und sie sind nicht notwendigerweise halb sequentiell zugewiesen (obwohl ich schien in Schritten von 2 zu radeln, wenn ich getestet, es gibt einen anderen Benutzer auf der Maschine war, so kann es nicht viel bedeuten).

Frische Login auf einer AIX 5.3 Maschine:

$ ps
     PID    TTY  TIME CMD
 1060910 pts/27  0:00 -ksh
 1155224 pts/27  0:00 ps
$

Abhängig von Ihrer Plattform, aber Sie sollten nicht auf einer bestimmten Reihenfolge Ihrer PIDs abhängig sein.

Unter Windows PIDs in der Regel in zunehmender Zahl zugeordnet sind, sondern als Prozesse beenden die PIDs können recycelt werden, und Sie werden Fälle sehen, wo ein neuer Prozess eine niedrigere pid als ein älteres Verfahren hat. Auch PIDs aus dem gleichen Namensraum wie tid die kommen, so dass Sie nicht pid zunehmende um 4 sehen, wie Sie neue Prozesse starten.

Aus Ihrer Sicht werden sie zufällig sein. Das System verwaltet diese Zahlen und ordnet sich als Prozesse erstellt werden. Ein kurzer Blick auf die PID zur Zeit auf meinem System zeigt, dass sie alle teilbar sind durch 4 ...

Wenn Sie diese Childs sind Erstellen Sie die pid wissen, die pid auf dem OS-Scheduler abhängig ist, Sie über diese Dinge nicht.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top