Verwendet Windows 7 Prozess-IDs erneut?
Der Grund, warum ich diese Frage stelle, ist meine Erfahrung, dass Windows XP und Linux niemals Prozess-IDs über 20–30 KB generieren. Mein Windows 7-Computer erreicht jedoch innerhalb weniger Stunden nach einem Neustart IDs von etwa 5 bis 10.000. Dies ist meine normale Erfahrung aus der Vergangenheit. Am nächsten Morgen überprüfe ich und einige Prozesse sind 250k oder höher, was nicht der Fall ist.
Ich habe die Sicherheitsüberwachungsfunktion aktiviert, um die Erstellung und Beendigung von Prozessen zu protokollieren. Nichts erzeugt Hunderte oder Tausende oder Prozesse. Nur 513 dieser Ereignisse werden für einen Zeitraum von 24 Stunden registriert, und es scheint, dass Hunderttausende von Prozess-IDs verwendet wurden.
Ich habe versucht, nach meiner Frage zu suchen, und eine der zuvor gestellten Fragen wies auf einen wunderbaren Blog von Mark Russinovich hin . Aber dieser Artikel, obwohl sehr interessant zu lesen, hat mich verwirrt.
quelle
Antworten:
Aus meinen Tests geht hervor, dass Sie eine falsche Annahme haben: PID-Nummern werden nicht in sequentieller Reihenfolge ausgegeben. Dies ist sehr einfach zu beweisen, führen Sie den folgenden Befehl über die Befehlszeile aus. Es sollte 3 Kopien des Notizblocks öffnen.
Auf meinem Computer sind hier die PIDs der 3 Kopien, die alle gleichzeitig geöffnet wurden.
Wie Sie sehen können, springt die PID viel herum. Wenn Sie sie einzeln öffnen, werden Sie auch feststellen, dass die nächste PID nicht immer größer als die vorherige ist. Zum Beispiel habe ich eine 4. Kopie des Notizblocks geöffnet und diese bekommen
Es sieht also so aus, als würde Windows 7 jedes Mal, wenn ein Prozess gestartet wird, eine zufällige nicht verwendete PID auswählen, sodass eine PID möglicherweise während der Ausführung von Windows ohne Neustart wiederverwendet wird.
Ich habe ein einfaches Powershell-Skript geschrieben (erfordert Version 2 oder neuer, siehe Bearbeitungsverlauf für diese Antwort für eine C # -Version), um es sicher zu beweisen
Es dauerte immer zehn Mal, bis das Programm ausgeführt
134
und147
der Editor gestartet wurde, damit dieselbe PID wiederverwendet werden konnte. (Warum ist diese Zahl so klein? GO-GO-Gadget- Geburtstagsproblem !)quelle
Ich habe eine Stunde lang einen Test durchgeführt und in dieser Zeit wurden 302 Prozesse beendet. Von diesen hatten 70 eine gemeinsame PID, daher würde ich sagen, dass die PID häufig wiederverwendet wird.
quelle