Kontextwechsel (Kontextwechsel), in der Computerterminologie auch als Umgebungswechsel bekannt, ist eine Möglichkeit, den Zustand (Kontext) der CPU zu speichern und zu rekonstruieren. Dadurch können mehrere Prozesse den Rechenprozess einer einzelnen CPU-Ressource gemeinsam nutzen. Wenn Sie Prozesse auf der CPU austauschen möchten, müssen Sie zunächst den Status des aktuellen Prozesses speichern und dann den Status des auszuführenden Prozesses zurück in die CPU lesen.
Wann soll ausgetauscht werden?
Es gibt drei mögliche Situationen, in denen ein Kontextaustausch stattfindet, nämlich:
Multitasking
Am häufigsten kommt es vor, dass in einigen Planungsalgorithmen eine Fahrt manchmal vorübergehend die CPU verlassen muss, damit eine andere Fahrt eintreffen und auf der CPU ausgeführt werden kann. In einem präventiven Multiplexsystem wird jede Fahrt der Reihe nach für eine variable Zeitspanne ausgeführt. Diese Zeiträume werden als Zeitscheiben bezeichnet. Wenn der Prozess die CPU nicht freiwillig aufgibt (z. B. muss der Prozess bei der Durchführung von E/A-Vorgängen das Recht zur Nutzung der CPU aufgeben), generiert das System nach Ablauf der Zeitbegrenzung einen zeitgesteuerten Interrupt Das Betriebssystem plant die Ausführung anderer Prozesse. Dieser Mechanismus wird verwendet, um sicherzustellen, dass die CPU nicht durch Prozesse monopolisiert wird, die stärker auf Prozessoroperationen angewiesen sind. Wenn kein geplanter Interrupt vorliegt, wird der Prozess weiter ausgeführt, es sei denn, er gibt freiwillig die CPU auf. Bei Fahrten mit vielen E/A-Anweisungen kann es oft nicht lange dauern, bis sie die CPU verbrauchen müssen, während Fahrten, die stärker auf den Prozessor angewiesen sind, vergleichsweise weniger E/A-Vorgänge haben, die CPU aber weiterhin nutzen können , ein Phänomen bildend. Dies ist der Convoy-Effekt.
Interrupt-Verarbeitung
Beim Empfang eines Interrupts (Interrupt) muss die CPU einen Kontextwechsel durchführen.
Austausch des Benutzermodus oder des Kernelmodus
Wenn der Austausch des Benutzermodus und des Kernelmodus erfolgt, ist kein Kontextaustausch und der Benutzermodus erforderlich Kernelmodus Der Austausch selbst ist kein Kontextaustausch. Abhängig vom Betriebssystem wird zu diesem Zeitpunkt jedoch manchmal ein Kontextaustauschschritt durchgeführt.
Kontextaustausch:Spezifische Schritte
Bei einem Austausch sollte der Status der ersten Fahrt irgendwo festgehalten werden, damit beim Planen Wenn Sie zu dieser Reiseroute zurückkehren, können Sie diese erneut erstellen und den Vorgang fortsetzen.
Der sogenannte „Status des Prozesses“ umfasst hier alle von diesem Prozess verwendeten Register, insbesondere den Programmzähler sowie alle spezifischen Daten, die möglicherweise vom Betriebssystem benötigt werden. Diese Daten werden im Allgemeinen in einer Datenstruktur gespeichert, die als Prozesssteuerungsblock (PCB) bezeichnet wird.
Kontextaustausch: implementiert durch Software oder Hardware
Kontextaustausch kann unterteilt werden in hauptsächlich implementiert durch Software oder implementiert durch Hardware. Einige CPUs, wie z. B. Intel 80386 oder höherwertige Prozessoren derselben Serie, verfügen über Hardwaredesigns, die Kontextwechsel unterstützen.