Was bewirkt, dass die CPU-Auslastung plötzlich ansteigt, wenn ein Programm geschlossen wird.

1283
bharat1097

Ich verwende das Process Explorer-Dienstprogramm, um die CPU-Auslastung anzuzeigen. Meine CPU läuft zum größten Teil bei <5%. Wenn ich jedoch ein Programm starte (z. B. Word, Excel usw.), steigt die CPU-Auslastung (aus naheliegenden Gründen), und dann sinkt die CPU-Auslastung wieder auf etwa 5-6%. Aber wenn ich das Programm schließe, warum steigt die CPU-Auslastung wieder an? (Nach einer Weile kommt es wieder runter.)

-1
Viele Programme führen eine Bereinigung durch, wenn Sie sie schließen, z. B. das Löschen temporärer Dateien, das Speichern von Einstellungen usw. DavidPostill vor 7 Jahren 1
* "Aber wenn ich ein Programm starte ... steigt die CPU-Auslastung (aus offensichtlichen Gründen)" * - Darauf achten, was die "offensichtlichen Gründe" für Sie sind? Ich vermute, Ihre Liste ist zu kurz. sawdust vor 7 Jahren 0

1 Antwort auf die Frage

2
TOOGAM

Antwort eines Programms:

Zunächst einmal gibt es verschiedene Möglichkeiten, ein Programm zu schließen. Betrachten Sie beispielsweise Notepad.

  • Wenn Sie Notepad starten und sofort sagen, dass es geschlossen werden soll, wird es geschlossen.
  • Wenn Sie Notepad starten, geben Sie etwas ein, speichern Sie und sagen Sie ihm, dass es geschlossen werden soll. Dann wird es geschlossen.
  • Wenn Sie Notepad starten, etwas eingeben und es zum Schließen sagen, wird ein Dialogfeld angezeigt, in dem Sie gefragt werden, ob Sie zuerst speichern möchten.
    • Wenn Sie "Ja" wählen, speichert Notepad die Datei und schließt dann.
    • Wenn Sie "Nein" wählen, speichert Notepad die Datei nicht und schließt dann den Editor. Wenn Sie nicht antworten, wartet der Editor auf eine Antwort.
    • Wenn Sie "Abbrechen" wählen, wird Notepad das Dialogfeld schließen und Notepad bleibt geöffnet. Notepad kann also das Schließen ablehnen, auch wenn ihm gesagt wird, dass es geschlossen werden soll.

Der in Microsoft Windows integrierte Rechner wird jedoch gerade geschlossen. Es werden zuerst keine Fragen gestellt.

Wenn Sie also einem Programm sagen, dass es geschlossen werden soll, oder wenn Sie dem Betriebssystem mitteilen, dass es ein Programm schließen soll, kann das Programm entscheiden, auf die Anforderung auf unterschiedliche Weise zu antworten. Es liegt am Programm.

Sie können ein Programm jedoch möglicherweise zwangsweise beenden. Im Grunde gibt das keine Möglichkeit, das Programm zu schließen. Als Beispiel:

  • Das Ausführen taskkill /fi "imagename eq notepad.exe"von CMD.EXE (der Eingabeaufforderung) fordert Sie höflich auf, alle Notepad-Kopien zu schließen
  • Beim Ausführen taskkill /f /fi "imagename eq notepad.exe"von CMD.EXE (der Eingabeaufforderung) werden alle Notepad-Kopien zwangsweise beendet

Erinnerung

Wenn ein Programm gestartet wird oder mehr Speicher benötigt, teilt es dem Betriebssystem mit, dass es Speicher benötigt. Der Speichermanager, der Teil des Betriebssystems ist, nimmt einen Teil des verfügbaren Speichers des Computers und reserviert ihn für das Programm.

Wenn ein Programm beendet wird, muss der Speichermanager diesen Speicher aufheben. Mit anderen Worten, der Speichermanager muss die Marker finden, die auf verschiedene Teile des Speichers zeigen, und diese Marker so ändern, dass der Speicher als verfügbar markiert und nicht belegt ist.

Beachten Sie, dass ein Teil des "Speichers" anstelle des RAM als "virtueller Speicher" auf einer Festplatte gespeichert werden kann. Bei modernen Betriebssystemen kann sich der Computer dazu entscheiden, auch wenn dem Programm nicht mehr genügend RAM zur Verfügung steht, wenn der Computer der Meinung ist, dass der auf die Festplatte geschriebene Speicher für eine Weile inaktiv bleibt und der verfügbare RAM besser genutzt werden könnte Zu einem anderen Zweck führt der Computer beispielsweise schneller zum Betrieb eines Festplattencaches.

Sobald der Speicher dieses Programms freigegeben ist, kann der Computer zusätzliche Änderungen vornehmen, um diesen Speicher vorteilhaft zu nutzen, wodurch die Ausführung der Programme unterstützt wird.

Ein Beispiel:

Dies berührt ein wenig das Thema, ein Programm höflich zu schließen und gewaltsam abzuschließen. Ich habe oft Dutzende und Dutzende Tabs in Firefox geöffnet (oft etwas mehr als 100 Tabs). Wenn ich Firefox höflich sage, sich zu schließen, nachdem das Fenster unsichtbar ist, läuft das Programm möglicherweise noch eine Weile. Wenn ich dann versuche, Firefox erneut zu starten, kann es sein, dass ich zuerst alle anderen Instanzen schließen muss. Ich kann zum Task-Manager gehen und sehen, wie viel Speicher Firefox verwendet, der normalerweise ein Gigabyte überschreiten kann (so viel für "640 KB sollte für jeden ausreichend sein"), und ich kann nur die Menge des von diesem verwendeten Speichers beobachten Firefox sinkt eher gleichmäßig ab. Irgendwie scheint es so, als würde Firefox mit jedem Tab, den ich geöffnet hatte, etwas unternehmen und den erforderlichen Speicher Stück für Stück freigeben. Dann, nachdem die Zahl nahe an null kommt, plötzlich verschwindet Firefox einfach vollständig von meiner Liste der laufenden Programme. Zu diesem Zeitpunkt kann ich Firefox wieder öffnen. Wenn ich Firefox gewaltsam kündige, anstatt ihn höflich zu bitten, sich selbst zu schließen, brauche ich nicht so lange zu warten, bis ich Firefox recht schnell wieder starten kann. Irgendwie versucht Firefox also irgendwie selbst zu bereinigen, wenn ihm die Möglichkeit dazu gegeben wird.

Andere Aufgaben)

Wenn Sie Alt- Tabzum Wechseln von Aufgaben verwenden, können Sie die laufenden Programme sehen. Sie können auch eine Liste von Prozessen (einschließlich "Anwendungen", die keine Fenster auf dem Bildschirm anzeigen, z. B. "Dienste"), anzeigen, indem Sie den Task-Manager anzeigen oder " tasklist" über die Eingabeaufforderung ausführen. Das Betriebssystem verfolgt eindeutig die Programme. Jedes Programm hat eine PID (eine "Prozesskennung").

Das Betriebssystem muss nach dem Programm aufgeräumt werden, um sicherzustellen, dass das Programm nach dem Schließen eines Programms nicht in einer Liste der Programme angezeigt wird, die tatsächlich ausgeführt werden.

Wenn das Programm geöffnete Dateien hatte, sollten die Dateihandles freigegeben werden, so dass das Betriebssystem nicht der Meinung ist, dass das Programm die Datei noch verwendet.

Einige dieser Details beschreiben Funktionen, die von modernen Versionen von Microsoft Windows implementiert werden. Es können weitere Aufgaben vorhanden sein, die vom Betriebssystem abhängen. (Ältere Betriebssysteme wie MS-DOS, die normalerweise nicht eine Reihe von Software-Multitasking-Software-Multitasking ausgeführt haben (aber möglicherweise ein begrenztes Multitasking hatten, das den Betrieb von Treibern erlaubte) implementieren möglicherweise nicht alle oben beschriebenen Funktionen.)

Zusammenfassung:

Die obige Liste ist möglicherweise keine vollständige Liste. Eine vollständige Liste kann je nach Betriebssystem variieren. Dies zeigt jedoch, dass das Betriebssystem etwas tun muss, wenn ein Programm beendet wird. Darüber hinaus führen Programme möglicherweise ein Bereinigungsverhalten ihrer Wahl aus, und die Details dazu können je nach verwendetem Programm variieren.

* "Der" Speicher "kann als" virtueller Speicher "auf einer Festplatte gespeichert werden. * - Sie verwirren den virtuellen Speicher und einen Paging- oder Auslagerungsbereich / eine Datei / eine Partition. Das ist wahrscheinlich Microsofts Schuld. Siehe https://superuser.com/questions/748743/whats-isthe-difference-zwischen-virtual-memory-and-built-in-memory-ram/748776#748776 sawdust vor 7 Jahren 0
@sawdust Ich verwende den Begriff "virtueller Speicher" zum ersten Mal aus Auslagerungsdateien, die von MS-DOS-Software verwendet werden, bevor ich mich mit den Einstellungen einer beliebigen Windows-Implementierung beschäftigte, daher neige ich nicht dazu, über neuere Neudefinitionen nachzudenken Microsoft, wenn dieser Begriff verwendet wird. Trotzdem schätze ich Ihre Bemühungen. Wenn jedoch eine Anwendung Daten unter Verwendung von "virtuellen" Adressen, die von der Speichermanager-Komponente des Betriebssystems bereitgestellt werden, im Speicher speichert, und dann beschließt Windows, diesen virtuell adressierten Speicher in eine Seitendatei anstatt in einen physischen Arbeitsspeicher abzubilden, wie kommt es dann nicht zu der virtuelle Speicher wird "auf einer Festplatte" gespeichert? TOOGAM vor 7 Jahren 0
* "Wie ist das nicht der Fall, dass der virtuelle Speicher" auf einer Festplatte "gespeichert wird?" * - Der Inhalt des virtuellen Speichers wird gespeichert, nicht der virtuelle Speicher selbst. Es ist eine subtile Unterscheidung, aber eine notwendige Unterscheidung, die die Implementierungskonzepte beibehält. Wenn Sie den Wortlaut der Erklärung vereinfachen, können Sie doofe Ideen wie https://superuser.com/questions/1252621/is-there-a-hypervisor- verwenden, die- es- erlaubt-, den- Teil- der- der- zu verwenden. disk-as-ram sawdust vor 7 Jahren 0