5 Stimmen

Muss es einen Moduswechsel geben, damit etwas als Kontextwechsel bezeichnet werden kann?

Muss es einen Moduswechsel geben, z. B. vom Benutzer- zum Kernelmodus, damit die Aktion als Kontextwechsel bezeichnet werden kann?

7voto

makes Punkte 6258

Nein. Nicht alle Prozessoren haben überhaupt Berechtigungsstufen .

Ein Kontextwechsel bedeutet normalerweise die Wiederherstellung eines Ausführungszustands aus einem Prozesssteuerungsblock . Allerdings ist der Begriff der Kontext ist implementierungsabhängig. Von Wikipedia :

Was den Kontext ausmacht, wird durch den Prozessor und das Betriebssystem bestimmt.
...
Wenn in einem Betriebssystem ein Übergang zwischen Benutzermodus und Kernelmodus erforderlich ist, wird ein Kontextwechsel nicht erforderlich; ein Moduswechsel ist an sich kein Kontextwechsel. Allerdings, je nach Betriebssystem kann zu diesem Zeitpunkt auch ein Kontextwechsel stattfinden .

7voto

Der Kontextwechsel erfolgt nur im Kernel-Modus. Wenn der Kontextwechsel zwischen zwei Prozessen im Benutzermodus stattfindet, muss die erste CPU in den Kernelmodus wechseln, den Kontextwechsel durchführen, wieder in den Benutzermodus zurückkehren und so weiter. Es muss also ein Moduswechsel mit einem Kontextwechsel verbunden sein.

2voto

Harman Punkte 1571

Moduswechsel - Wenn ein einzelner Prozessmodus von der Benutzerebene auf die Kernel-Ebene oder umgekehrt umgeschaltet wird. Dies geschieht durch die Systemaufrufe. Wenn ein Prozess den Systemaufruf aufruft, wechselt der Prozessmodus in den Kernelmodus und der Kernel beginnt, im Namen des Benutzerprozesses zu handeln. Und sobald der Systemaufruf zurückkommt, wechselt der Prozessmodus vom Kernelmodus in den Benutzermodus. "Modus" ist eine Eigenschaft, die mit dem Prozess verbunden ist. Ein Moduswechsel ist also ein Wechsel des Modus eines einzelnen Prozesses.

Kontextwechsel - Dies ist der Fall, wenn der aktuelle Zustand des laufenden Prozesses an einem anderen Ort gespeichert wird und ein neuer Prozess zur Ausführung ausgewählt wird, dessen bereits gespeicherter Zustand in die CPU-Register geladen wird. Und nun beginnt der neue Prozess zu laufen. Diese ganze "Kontextwechsel"-Prozedur wird vom "Process Scheduler" durchgeführt.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X