![Warum Prozesswechsel unsere Computererfahrung nicht diskontinuierlich machen](https://rvso.com/image/1416705/Warum%20Prozesswechsel%20unsere%20Computererfahrung%20nicht%20diskontinuierlich%20machen.png)
Wir sind uns alle bewusst, dass die CPU zwischen laufenden Prozessen wechselt, aber wie kommt es, dass es nie zu Unterbrechungen kommt, während die CPU umschaltet und wir Anwendungen verwenden?
Ich würde sagen, das liegt an der enormen Geschwindigkeit, mit der zwischen den Prozessen gewechselt wird, aber ich frage mich, wie viele Prozesse die Leistung einer CPU tatsächlich so stark beeinträchtigen würden, dass Menschen bei einer einzigen Anwendung Unterbrechungen (oder Unterbrechungen) feststellen würden, und wie sich dies auf modernen Betriebssystemen äußern würde.
Antwort1
Ich würde sagen, das liegt an der enormen Geschwindigkeit der Wechsel zwischen Prozessen
Sie haben Recht. Aber die Operationen, die der Mikroprozessor ausführt, werden immer noch in diskreten Schritten und nicht kontinuierlich ausgeführt. Jeder Taktzyklus veranlasst die CPU, den Inhalt des Speichers abzurufen, auf den der Programmzähler zeigt. Im nächsten Taktzyklus dekodiert sie die Anweisung und so weiter. Wenn Sie schnell genug werden (um es zu bemerken), können Sie feststellen, dass die Musik, von der Sie denken, dass sie kontinuierlich ist, tatsächlich eine Zeit lang abgespielt wird, dann aufhört, dann wieder abgespielt wird und so weiter.
Das schnelle und komplexe BiestDer Kurzzeitplaner (CPU-Planer), der den Umschaltvorgang rasend schnell macht, heißt Kurzzeitplaner. Er muss schnell sein, weil er alle paar Millisekunden aufgerufen wird und (aus Sicht des Benutzers) keine nützliche Arbeit leistet. Obwohl es zwischen verschiedenen Implementierungen leichte Unterschiede geben kann, verwalten fast alle Planer Prioritätswarteschlangen für verschiedene Prozessklassen wie aktive Prozesse, Hintergrundprozesse usw.
Selbst wenn also Tausende Prozesse auf einem Computer laufen würden, würden nur wenige davon direkt mit dem Benutzer interagieren. Scheduler berücksichtigen diese Informationen beim Wechseln von Prozessen. Denn ein Update-Prüfprozess kann warten, Echtzeit-Musikstreaming jedoch nicht.
Aber ich bin neugierig, wie viele Prozesse die Leistung einer CPU wirklich so stark beeinträchtigen würden, dass Menschen eine Unterbrechung erleben würden.
Es gibt keine magische Zahl und es gibt so viele andere Faktoren, die die Leistung beeinflussen (Speichergeschwindigkeit, Größe usw.). Ich denke, Ihnen wird der Speicher ausgehen, bevor die Scheduler-Leistung zum Problem wird. Eine Sache, die sich als Ausbrüche äußern kann, ist, wenn eine Interrupt-Routine mit hoher Priorität aufgerufen und über einen langen Zeitraum ausgeführt wird.
Lustige Tatsache: – Um das Benutzererlebnis auf einem System zu verbessern (ich habe es vergessen), wies Steve Jobs die Apple-Ingenieure an, der Mausunterbrechung die höchste Priorität zuzuweisen, damit der Zeiger beim Bewegen nicht verzögert wird.