Die CPU wechselt zwischen Prozessen mit einem Prozessplaner, der Teil des Betriebssystems ist. Der Schalter umfasst das Speichern des Status des aktuellen Prozesses und das Laden des Status des nächsten Prozesses. Dies wird oft als
Kontextschalter als bezeichnet .
Hier ist eine vereinfachte Abbildung:
`` `
+-----------------++-----------------+-----------------+
| Prozess a | <-> | Prozessplaner | <-> | Prozess b |
+-----------------++-----------------+-----------------+
^ |
| V
+-----------------------------------------+
Kontextschalter
`` `
Erläuterung:
1. Prozess A wird ausgeführt: Die CPU führt Anweisungen für den Prozess A durch. Die CPU -Register, Programmzähler (PC - Angabe der nächsten Anweisung) und Informationen zur Speicherverwaltung (wie Seitentabellen) spiegeln alle den Status von Process A wider.
2. Kontextschalter initiiert: Ein Interrupt (z. B. Timer -Interrupt, E/A -Abschluss) oder eine Planungsentscheidung führt dazu, dass der Scheduler des Betriebssystems eingreift.
3.. Der Scheduler speichert den vollständigen Prozesszustand A (CPU -Register, PC, Speichermanagement -Info) in einem Prozesssteuerungsblock (PCB), einer Datenstruktur im Speicher. Stellen Sie sich die PCB als Schnappschuss des Prozesses vor.
4. Prozess B ausgewählt: Der Scheduler wählt den nächsten Prozess aus, der auf basierend auf verschiedenen Planungsalgorithmen (z. B. Round-Robin, Prioritätsbasiert) ausgeführt wird.
5. Prozess Bs Zustand geladen: Der Scheduler lädt den gespeicherten Prozesszustand B (von seiner PCB) in die Einheiten der CPU -Register, PC und Speicherverwaltung.
6. Prozess B läuft: Die CPU führt jetzt Anweisungen für Prozess B.
Dieser Vorgang wiederholt sich kontinuierlich, sodass mehrere Prozesse die Zeit der CPU teilen und die Illusion der parallelen Ausführung (Parallelität) erzeugen. Je schneller der Kontextschalter ist, desto glatter ist das Multitasking -Erlebnis. Der Kontextschalter hat jedoch einen gewissen Overhead.