Kontextwechsel
Ein Kontextwechsel ist der Wechsel der CPU-Ausführung von einem Prozess oder Thread zu einem anderen.
Dabei wird der aktuelle Ausführungszustand gespeichert und ein anderer Zustand geladen.
Gespeichert werden u.a.
- Befehlszähler / Program Counter
- Registerwerte
- Stack-Zeiger
- Prozess- oder Threadzustand
- ggf. Informationen zum virtuellen Adressraum
Ablauf grob
- Laufender Prozess A wird unterbrochen.
- Register und Befehlszähler von A werden gespeichert.
- A erhält einen neuen Prozesszustand, z.B. Bereit oder Blockiert.
- Prozess B wird ausgewählt.
- Kontext von B wird geladen.
- B läuft an seiner gespeicherten Stelle weiter.
Prozesswechsel vs. Threadwechsel
- Prozesswechsel: oft teurer, weil ggf. auch der virtuelle Adressraum gewechselt wird.
- Threadwechsel innerhalb desselben Prozesses: meist günstiger, weil der Adressraum gleich bleibt.