Erläuterung zum Prozess-Explorer-CPU-Nutzungsmuster

878
bharat1097

Das Process Explorer-Dienstprogramm zeigt an, dass meine CPU mit etwa 5% Kapazität läuft. Warum steigt die CPU-Auslastung plötzlich an, wenn ich eine Anwendung starte, und dann einige Sekunden nach dem Öffnen der Anwendung wieder zur normalen Nutzung (5-8%) zurückkehrt.

-1

1 Antwort auf die Frage

2
TOOGAM

  • Das Betriebssystem muss das Programm auf der Festplatte finden
  • Das Betriebssystem muss einen Prozess erstellen
    • Sie erwähnen "Process Explorer", also gehe ich von Microsoft Windows aus. Wenn Sie jemals etwas über SVCHost.EXE nachlesen, ist dieser "Dienst" im Grunde eine technische Problemumgehung, wenn mehrere Softwarekomponenten denselben Prozess verwenden sollen. Dies kann bei der Fehlerbehebung zu Unklarheiten führen. Auf der positiven Seite kann dies einige Geschwindigkeitsvorteile mit sich bringen, da für das Erstellen eines Prozesses ein gewisser Aufwand anfällt.
    • Um einen Prozess zu erstellen, müssen Sie zuvor verfügbaren Speicher reservieren. Wenn Sie nach verfügbarem Speicher suchen, müssen Sie möglicherweise einige Änderungen vornehmen, beispielsweise den in der Seitendatei gespeicherten Speicher
    • Dem Prozess muss eine PID (eindeutige "Prozesskennung") zugewiesen werden
  • Das Betriebssystem muss die Anweisungen des Programms in den Speicher geladen haben
  • Der Scheduler muss dem Programm etwas CPU-Zeit zuweisen
    • In Multi-Tasking-Betriebssystemen, auf denen mehrere Programme ausgeführt werden, müssen Ressourcen gemeinsam genutzt werden. Damit ein Programm eine Ressource verwenden kann, z. B. zu einem Zeitpunkt, zu dem eine CPU etwas tut, was das Programm wünscht, muss es eine Art Freigabemechanismus geben.
  • Wenn das Programm etwas auf dem Bildschirm anzeigt, muss das Fenster gezeichnet werden. Das bedeutet, dass das Programm dem "Fenstermanager" mitteilen muss, dass es ein Fenster benötigt. Das Programm muss dem "Fenstermanager" mitteilen, wie das Fenster aussehen soll.
    • Zeigt das Programm beispielsweise eine Titelleiste an? Wenn ja, wie lautet der Titel des Programms? Moderne Versionen von Microsoft Windows zeigen in der Regel oben links ein programmspezifisches Symbol. Wie sieht das Icon des Programms aus? Hat das Programm eine Schaltfläche zum Minimieren? Müssen Bildlaufleisten angezeigt werden? Was muss noch am Fenster gezeichnet werden?
  • Dieses Fenster geht normalerweise in den Vordergrund. Wenn ein anderes Programm im Vordergrund war, muss dieses Programm im Hintergrund platziert werden. Das Programm, das in den Hintergrund gestellt wird, wird darüber informiert.
  • Dann muss der "Fenstermanager" das neu geschaffene Fenster über alles andere zeichnen, was durch das neue Fenster verdeckt werden muss.
    • Der Begriff "Fenstermanager" wird möglicherweise häufiger auf Plattformen vom Typ Unix verwendet, auf denen mehrere "Fenstermanager" -Optionen zur Auswahl stehen. Das ist vielleicht nicht der perfekteste Begriff für Microsoft Windows, aber ich bin sicher, dass das gleiche Grundkonzept geschieht.
  • Sichtbare Programme werden neben dem Fenster normalerweise auch auf einem Symbol in der Taskleiste dargestellt, sodass auch gezeichnet werden muss.
  • Was auch immer das Programm tatsächlich tut, wird einige Zeit dauern. Viele Programme fordern eine Benutzereingabe an, müssen jedoch etwas tun, bevor die Eingabe gezeichnet wird.
  • Warum wurde das Programm gestartet? Einige Sache muss haben beantragt, dass das Programm in Betrieb genommen. Diese Sache, "Elternprozess" genannt, wird informiert. Wenn Sie beispielsweise im Startmenü an einer Eingabeaufforderung "Ausführen" einen Befehl eingegeben haben, sollte diese Eingabeaufforderung darüber informiert werden, dass das Programm gestartet wurde, sodass die Eingabeaufforderung wissen kann, dass sie möglicherweise geschlossen wird.
  • Wirklich, es gibt noch ein paar andere Dinge, die getan werden müssen
    • Um eine Idee zu erhalten
      WMIC PROCESS LIST /FORMAT:LIST >> output.txt
      , springen Sie zu einer Eingabeaufforderung und geben Sie Folgendes ein : Öffnen Sie dann die Datei output.txt. Zwischen den Leerzeilen befinden sich einige Daten, die das Betriebssystem für jedes neue Programm, das gestartet wird, aufzeichnet. Auf meinem Windows 10-Computer zeigt dieser Befehl 40 verschiedene Werte für jeden Prozess (jede Instanz jedes aktiven Programms) an.

Wiederum (ähnlich wie bei den anderen aktuellen Fragen zum Schließen von Programmen ) können die genauen Details je nach verwendetem Betriebssystem variieren (oder sogar genauer, z. B. über die Patchebene des Betriebssystems). Die vollständige Liste würde die Beschreibung vieler interner Details des Betriebssystems beinhalten. Lesen ganzer Bücher (wie Windows Internals, Teil 1 : Systemarchitektur, Prozesse, Threads, Speicherverwaltung und mehr / Seventh Edition)(ein Buch mit vier Autoren) würde nur einige Aspekte des Geschehens diskutieren. Außerdem können sich die Details ändern, wenn Windows aktualisiert wird. Daher soll diese Antwort nur einige der Aufgaben sehr umfassend beschreiben, nur um zu zeigen, dass es beim Start eines Programms eine Reihe von Dingen gibt.

und kehren Sie einige Sekunden nach dem Öffnen der Anwendung zur normalen Verwendung (5-8%) zurück

Um den zweiten Teil Ihrer Frage zu beantworten: Nachdem ein Programm gestartet wurde, sind einige dieser "Initialisierungsaufgaben" abgeschlossen. Ob die CPU-Auslastung abnimmt oder nicht, hängt davon ab, welches Programm Sie ausführen. Viele Programme werden jedoch nur sehr wenig arbeiten, bis ein Benutzer dem Programm mitteilt, etwas zu tun. Das Warten auf Eingaben beansprucht nicht viel CPU-Zeit, daher sinkt die CPU-Auslastung, bis das Programm wieder aktiver werden muss.