Es gibt mehrere Ansätze für dieses Problem.
Kooperative Multitasking-Scheduler
Ein kooperativer Scheduler wird jedes Mal aufgerufen, wenn ein Programm ihn aufruft oder ihm die Kontrolle übergibt. Es arbeitet mit dem Betriebssystem und anderen laufenden Programmen zusammen. Ein Programm, das niemals nachgibt, z. B. ein "hängender" Prozess, wird den laufenden Zustand niemals auf einer Maschine mit einer einzelnen CPU verlassen.
Preemptive Multitasking-Scheduler
Ein sehr einfacher preemptiver Scheduler wird periodisch durch einen zeitgesteuerten CPU-Interrupt aufgerufen. Ein Programm kann dies nicht verhindern (ohne Berechtigungen auf Systemebene) und verlässt den laufenden Status, da die CPU den Befehlszeiger während Interrupts neu positioniert.
Ich schlage vor, dass Sie den Wikipedia-Artikel über Multitasking lesen .