Was ist Kontextwechsel?
Einer der größten Fortschritte beim Entwurf und Betrieb von Zentraleinheiten (Central Processing Units, CPUs) wurde erzielt, als die Entwickler von Computerbetriebssystemen Techniken entwickelten, mit denen Benutzer Multitasks ausführen können. Multitasking in Bezug auf Computer ist die Praxis, zwei oder mehr Programme gleichzeitig auszuführen. Aus Sicht des Endbenutzers mag dies nicht kompliziert oder weit hergeholt erscheinen, aber es stellt tatsächlich einen beträchtlichen Sprung im Systemdesign dar. Beim Multitasking muss die CPU alle Vorgänge für die verschiedenen aktiven Programme unter einen Hut bringen und aufzeichnen, wo sie sich mit jedem Programm befindet, während der Benutzer zwischen ihnen hin und her wechselt. Context Switching ist der Prozess, mit dem sich die CPU Zustände für eine Vielzahl aktiver Programme merken und wiederherstellen kann, um diesen Jongliervorgang abzuschließen.
Während der Kontextumschaltung löscht die CPU das gerade bearbeitete Programm und speichert die spezifische Stelle, an der es sich in diesem Programm befand, damit es später wieder fortfahren kann. Um das in die richtige Perspektive zu rücken, ist das Wechseln des Kontexts ein bisschen so, als würde man mehrere Bücher gleichzeitig lesen, ständig zwischen ihnen hin und her wechseln und sich dabei immer die Seitenzahlen für jedes Buch merken. Die "Seitenzahl" -Information für Programme während eines Kontextwechselvorgangs wird vom Prozesssteuerungsblock (PCB) gehalten. Die Platine wird manchmal auch als "Switchframe" bezeichnet. Diese Informationen werden in der eigentlichen CPU gespeichert, bis sie erneut benötigt werden.
Die Kontextumschaltung erfolgt in drei möglichen Situationen: Interrupt-Behandlung, Multitasking und Benutzerumschaltung. Bei der Interrupt-Behandlung "unterbricht" ein anderes Programm das laufende Programm. Sobald die CPU die Unterbrechung empfängt, führt sie eine Kontextumschaltung durch, um zwischen dem laufenden Programm und dem Programm, das unmittelbare Daten anfordert, zu jonglieren. Beim Multitasking springt die CPU zwischen den Programmen hin und her, gibt jedem eine Zeitscheibe für die Verarbeitungszeit und führt eine Kontextumschaltoperation durch, um zwischen den beiden zu wechseln. Bei einigen Betriebssystemen wird eine Kontextumschaltung auch während einer Benutzerumschaltung für das Betriebssystem durchgeführt, obwohl dies nicht ausdrücklich erforderlich ist.
Entweder das Betriebssystem oder die Hardware des Computers können die Kontextumschaltung steuern. Einige moderne Betriebssysteme steuern die Kontextumschaltung über das Betriebssystem selbst und ignorieren dabei die integrierte Hardwareunterstützung für die Prozedur. Auf diese Weise kann das Betriebssystem während eines Kontextwechsels mehr Informationen speichern und so mehr Informationen über den Schalter erhalten.