logo

Kontextwechsel im Betriebssystem (Betriebssystem)

Der Kontextwechsel ist eine Technik oder Methode, mit der das Betriebssystem einen Prozess von einem Zustand in einen anderen wechselt, um seine Funktion mithilfe von CPUs im System auszuführen. Beim Umschalten der Leistung im System speichert es den Status des alten laufenden Prozesses in Form von Registern und weist die CPU einem neuen Prozess zur Ausführung seiner Aufgaben zu. Während ein neuer Prozess im System ausgeführt wird, muss der vorherige Prozess in einer Bereitschaftswarteschlange warten. Die Ausführung des alten Prozesses beginnt an der Stelle, an der ein anderer Prozess sie gestoppt hat. Es definiert die Eigenschaften eines Multitasking-Betriebssystems, bei dem mehrere Prozesse dieselbe CPU nutzen, um mehrere Aufgaben auszuführen, ohne dass zusätzliche Prozessoren im System erforderlich sind.

Die Notwendigkeit eines Kontextwechsels

Ein Kontextwechsel hilft dabei, eine einzelne CPU für alle Prozesse gemeinsam zu nutzen, um deren Ausführung abzuschließen und den Aufgabenstatus des Systems zu speichern. Wenn der Prozess im System neu geladen wird, beginnt die Ausführung des Prozesses an derselben Stelle, an der ein Konflikt vorliegt.

Im Folgenden sind die Gründe aufgeführt, die die Notwendigkeit eines Kontextwechsels im Betriebssystem beschreiben.

  1. Das Umschalten von einem Prozess auf einen anderen Prozess erfolgt nicht direkt im System. Eine Kontextumschaltung hilft dem Betriebssystem, das zwischen den mehreren Prozessen wechselt, die Ressourcen der CPU zu nutzen, um seine Aufgaben zu erledigen und seinen Kontext zu speichern. Wir können die Bearbeitung des Prozesses später an gleicher Stelle wieder aufnehmen. Wenn wir die Daten oder den Kontext des aktuell ausgeführten Prozesses nicht speichern, können die gespeicherten Daten beim Wechsel zwischen Prozessen verloren gehen.
  2. Wenn ein Prozess mit hoher Priorität in die Bereitschaftswarteschlange fällt, wird der aktuell laufende Prozess von einem Prozess mit hoher Priorität heruntergefahren oder angehalten, um seine Aufgaben im System abzuschließen.
  3. Wenn ein laufender Prozess E/A-Ressourcen im System benötigt, wird der aktuelle Prozess von einem anderen Prozess zur Nutzung der CPUs umgeschaltet. Und wenn die E/A-Anforderung erfüllt ist, geht der alte Prozess in einen Bereitschaftszustand über, um auf seine Ausführung in der CPU zu warten. Beim Kontextwechsel wird der Status des Prozesses gespeichert, um seine Aufgaben in einem Betriebssystem fortzusetzen. Andernfalls muss der Prozess seine Ausführung auf der Anfangsebene neu starten.
  4. Wenn während der Ausführung eines Prozesses im Betriebssystem Unterbrechungen auftreten, wird der Prozessstatus mithilfe der Kontextumschaltung in Registern gespeichert. Nach Behebung der Interrupts wechselt der Prozess von einem Wartezustand in einen Bereitschaftszustand, um seine Ausführung später an derselben Stelle fortzusetzen, an der die Betriebssystemunterbrechung auftritt.
  5. Durch einen Kontextwechsel kann eine einzelne CPU mehrere Prozessanforderungen gleichzeitig bearbeiten, ohne dass zusätzliche Prozessoren erforderlich sind.

Beispiel für Kontextwechsel

Angenommen, mehrere Prozesse sind in einem Prozesssteuerungsblock (PCB) gespeichert. Ein Prozess befindet sich im Ausführungsstatus, um seine Aufgabe mithilfe von CPUs auszuführen. Während der Prozess ausgeführt wird, kommt ein anderer Prozess in die Bereitschaftswarteschlange, der eine hohe Priorität für die Erledigung seiner Aufgabe unter CPU-Auslastung hat. Hier haben wir einen Kontextwechsel verwendet, der den aktuellen Prozess mit dem neuen Prozess vertauscht, bei dem die CPU ihre Aufgaben abschließen muss. Beim Wechseln des Prozesses speichert ein Kontextwechsel den Status des alten Prozesses in Registern. Wenn der Prozess neu in die CPU geladen wird, startet er die Ausführung des Prozesses, wenn der neue Prozess den alten Prozess stoppt. Wenn wir den Status des Prozesses nicht speichern, müssen wir seine Ausführung auf der Anfangsebene starten. Auf diese Weise hilft der Kontextwechsel dem Betriebssystem, zwischen den Prozessen zu wechseln, den Prozess zu speichern oder neu zu laden, wenn er seine Aufgaben ausführen muss.

Kontextwechsel löst aus

Im Folgenden sind die drei Arten von Kontextwechsel-Triggern aufgeführt.

  1. Unterbricht
  2. Multitasking
  3. Kernel/Benutzer-Schalter

Unterbricht : Eine CPU fordert das Lesen von Daten von einer Festplatte an. Wenn Interrupts auftreten, schaltet die automatische Kontextumschaltung einen Teil der Hardware um, der weniger Zeit für die Verarbeitung der Interrupts benötigt.

Multitasking : Ein Kontextwechsel ist die Eigenschaft von Multitasking, die es ermöglicht, den Prozess von der CPU zu wechseln, sodass ein anderer Prozess ausgeführt werden kann. Beim Wechsel des Prozesses wird der alte Zustand gespeichert, um die Ausführung des Prozesses an der gleichen Stelle im System fortzusetzen.

Kernel-/Benutzerwechsel : Wird in den Betriebssystemen verwendet, wenn zwischen dem Benutzermodus und dem Kernel-/Benutzermodus umgeschaltet wird.

Was ist die Leiterplatte?

Ein PCB (Process Control Block) ist eine Datenstruktur, die im Betriebssystem zum Speichern aller datenbezogenen Informationen zum Prozess verwendet wird. Wenn beispielsweise ein Prozess im Betriebssystem erstellt wird, werden die Informationen des Prozesses aktualisiert, die Informationen des Prozesses gewechselt und der Prozess auf der Leiterplatte beendet.

Schritte zum Kontextwechsel

Der Kontextwechsel der Prozesse umfasst mehrere Schritte. Das folgende Diagramm stellt den Kontextwechsel zweier Prozesse, P1 zu P2, dar, wenn ein Interrupt, E/A-Anforderungen oder ein prioritätsbasierter Prozess in der Bereitschaftswarteschlange von PCB auftritt.

Was ist die Kontextumschaltung im Betriebssystem?

Wie wir im Diagramm sehen können, läuft zunächst der Prozess P1 auf der CPU, um seine Aufgabe auszuführen, und gleichzeitig befindet sich ein anderer Prozess, P2, im Bereitschaftszustand. Wenn ein Fehler oder eine Unterbrechung aufgetreten ist oder der Prozess eine Ein-/Ausgabe erfordert, wechselt der P1-Prozess seinen Zustand vom laufenden in den Wartezustand. Bevor der Zustand des Prozesses P1 geändert wird, speichert die Kontextumschaltung den Kontext des Prozesses P1 in Form von Registern und den Programmzähler dazu PCB1 . Danach lädt es den Zustand des P2-Prozesses aus dem Bereitschaftszustand des PCB2 in den laufenden Zustand.

Beim Umschalten von Prozess P1 auf Prozess 2 werden folgende Schritte durchgeführt:

  1. Zunächst muss bei der Kontextumschaltung der Zustand des Prozesses P1 in Form des Programmzählers und der Register auf der PCB (Programmzählerblock) gespeichert werden, die sich im laufenden Zustand befindet.
  2. Aktualisieren Sie nun PCB1 auf Prozess P1 und verschieben Sie den Prozess in die entsprechende Warteschlange, z. B. die Bereitschaftswarteschlange, die E/A-Warteschlange und die Warteschlange.
  3. Danach gelangt ein anderer Prozess in den laufenden Zustand, oder wir können aus dem Bereitschaftszustand einen neuen Prozess auswählen, der ausgeführt werden soll, oder der Prozess hat eine hohe Priorität, um seine Aufgabe auszuführen.
  4. Jetzt müssen wir den PCB (Process Control Block) für den ausgewählten Prozess P2 aktualisieren. Dazu gehört das Wechseln des Prozessstatus vom Status „Bereit“ in den Status „Laufend“ oder von einem anderen Status wie „Blockiert“, „Beenden“ oder „Anhalten“.
  5. Wenn die CPU den Prozess P2 bereits ausführt, müssen wir den Status des Prozesses P2 abrufen, um seine Ausführung zum gleichen Zeitpunkt fortzusetzen, an dem der Systeminterrupt auftritt.

Ebenso wird Prozess P2 von der CPU abgeschaltet, sodass Prozess P1 seine Ausführung wieder aufnehmen kann. Der P1-Prozess wird von PCB1 in den laufenden Zustand neu geladen, um seine Aufgabe an derselben Stelle fortzusetzen. Andernfalls gehen die Informationen verloren und wenn der Prozess erneut ausgeführt wird, beginnt er mit der Ausführung auf der Anfangsebene.