Sobes.tech
Junior

Was ist Kontextwechsel?

sobes.tech KI

Antwort von AI

Der Kontextwechsel (Context Switching) ist der Prozess, bei dem der Zustand eines Prozesses (oder Threads) vom Betriebssystem gespeichert und der Zustand eines anderen Prozesses (oder Threads) wiederhergestellt wird. Dies ermöglicht mehreren Prozessen, sich einen einzigen Prozessor zu teilen.

Der Algorithmus umfasst die folgenden Schritte:

  1. Speichern des aktuellen Kontexts: Die Register des Prozessors, der Befehlszähler (PC), der Stapelstatus und andere Informationen des aktuellen Prozesses werden in seinem Descriptor (PCB - Process Control Block) gespeichert.
  2. Auswahl des nächsten Prozesses: Der Scheduler des Betriebssystems wählt den nächsten Prozess zur Ausführung aus.
  3. Wiederherstellung des Kontexts: Der gespeicherte Zustand des ausgewählten Prozesses wird aus seinem PCB in die Prozessorregister geladen.

Die Overhead-Kosten für den Kontextwechsel umfassen:

  • Die Zeit, die für das Speichern und Wiederherstellen des Zustands aufgewendet wird.
  • Effizienzverluste durch Cache-Misses, da der Cache, der mit Daten eines Prozesses gefüllt ist, für einen anderen Prozess irrelevant wird.
  • Kosten für die Ausführung der Scheduler-Anweisungen.

Beispiel:

Angenommen, wir haben zwei Prozesse, A und B, die auf einem CPU-Kern laufen.

// Anfangs läuft Prozess A
// Prozess A nutzt die CPU-Ressourcen

// Es tritt ein Ereignis auf, das einen Wechsel erfordert, z.B. das Ablauf des Quantum-Zeitraums von Prozess A
// Der Zustand von Prozess A (Register, PC) wird gespeichert
// Das Betriebssystem wählt Prozess B zur Ausführung aus
// Der Zustand von Prozess B wird geladen
// Prozess B beginnt mit der Ausführung

Der Kontextwechsel ist ein grundlegender Mechanismus der Multitasking in Betriebssystemen, der die Illusion paralleler Ausführung mehrerer Prozesse auf einem einzigen physischen Prozessor schafft.