Wie ist ein Scheduler geplant?

1266
Gufran

Ein Scheduler, der ein Systemprogramm ist, muss zur Ausführung geplant werden, damit er andere Programme aktivieren und terminieren kann. Ich las über Prozessplanung und Algorithmen, konnte jedoch nicht herausfinden, wie ein Scheduler selbst geplant wird.
Plant es sich selbst? wenn ja wie? und welcher Algorithmus? weil es öfter als jedes andere Programm aufwachen sollte, muss es einen anderen Algorithmus geben, denke ich.

Ich habe eine LOT viele ähnliche Fragen im Kopf, aber alle von ihnen beziehen sich auf nur eine Sache, wie ein Planer selbst geplant ist?

1
Nur um es klarzustellen: Sie sprechen eigentlich nur von Multi-Thread / Prozess-Scheduling, nicht von Task-Schedulern wie cron, at oder dem Windows-Task-Scheduler, oder? Frank Thomas vor 10 Jahren 0
@Frank, ja, wenn es um Multithread / Prozessplanung geht. Gufran vor 10 Jahren 0

1 Antwort auf die Frage

4
David Foerster

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 .