2008-11-18 20 views
14

Ich habe über das debuggerstepperboundary Attribut gelesen und eine Site sagt, dass es in einem Kontextwechsel nützlich ist.Was ist ein Kontextwechsel?

Was genau ist ein Kontextwechsel? Ich nehme an, es ist ein Wechsel von einem Thread zu einem anderen oder in Ausführung oder Sicherheitskontext? Allerdings sind das keine besonders gebildeten Vermutungen, also frage ich hier.

+0

Ihre Frage ist interessant, beachten Sie bitte weitere Tags (Betriebssysteme, Kern, Prozesse ...) und Entfernen des C# Tag von ihm hinzufügen. –

Antwort

7

Kontextwechsel ist das Umschalten der CPU von einem Prozess/Thread zu einem anderen Prozess/Thread.

Menschen verwenden manchmal den Begriff Kontextwechsel außerhalb der spezifischen Computerwelt, um zu reflektieren, was sie in ihrem eigenen Leben tun. "Wenn ich diese Frage beantworten werde, muss ich den Kontext wechseln, um von A zu denken und an B zu denken."

Wikipedia

4

Es bezieht sich normalerweise auf das Wechseln zwischen Threads oder Prozessen. Wikipedia hat eine genauere Beschreibung.

1

Es ist der Prozess des Umschaltens zwischen Prozessen auf einer CPU.

17

Ein Kontextwechsel (manchmal auch als Prozessschalter oder Taskschalter bezeichnet) ist das Umschalten der CPU (Zentraleinheit) von einem Prozess oder Thread zu einem anderen.

Context Switching kann etwas detaillierter beschrieben werden, da der Kernel (dh der Kern des Betriebssystems) die folgenden Aktivitäten in Bezug auf Prozesse (einschließlich Threads) auf der CPU ausführt: (1) den Fortschritt einer anhalten Verarbeiten und Speichern des CPU-Zustands (dh des Kontexts) für diesen Prozess irgendwo im Speicher, (2) Abrufen des Kontexts des nächsten Prozesses aus dem Speicher und Wiederherstellen in den Registern der CPU und (3) Zurückkehren zu dem durch das Programm angegebenen Ort Zähler (dh Zurückkehren zu der Codezeile, bei der der Prozess unterbrochen wurde), um den Prozess wieder aufzunehmen.

Ein Kontextwechsel wird manchmal als Kernel beschrieben, der die Ausführung eines Prozesses auf der CPU aussetzt und die Ausführung eines anderen Prozesses, der zuvor unterbrochen wurde, wieder aufnimmt. Obwohl diese Formulierung zur Klärung des Konzepts beitragen kann, kann sie an sich verwirrend sein, da ein Prozess definitionsgemäß eine ausführende Instanz eines Programms ist. Daher könnte die Formulierung, die das Fortschreiten eines Prozesses unterbricht, vorzuziehen sein.