Definition „Prozess-Scheduler“ Was ist ein Scheduler?

Von zeroshope

In einem IT-System laufen fortwährend unterschiedliche Prozesse ab. Damit jeder Vorgang leistungsgerecht und angemessen schnell durchgeführt werden kann, werden sie durch Scheduler geplant, die Prozessen unterscheiden und mitunter priorisieren können.

Der Scheduler sorgt mit statischen oder dynamischen Zeitkontigenten dafür, dass jeder Prozess leistungsgerecht und angemessen schnell durchgeführt werden kann.
Der Scheduler sorgt mit statischen oder dynamischen Zeitkontigenten dafür, dass jeder Prozess leistungsgerecht und angemessen schnell durchgeführt werden kann.
(Bild: lucian_alexe / Unsplash)

Prozess-Scheduler („Prozess-Planer“) kommen in IT-Systemen die Aufgabe zu, Vorgänge zu terminieren. Sie teilen also dem Prozessor mit, wann welche Aufgabe zu erledigen ist und welche Ressourcen hierfür benötigt werden. Unterschieden wird dabei zwischen präemptiven und kooperativen Aufgaben.

Im ersten Fall ist von vornherein nur ein bestimmter Zeitraum eingeplant, in dem die CPU benötigt wird. Im zweiten Fall laufen die Aufgaben solange, bis sie sich selbst abschalten oder blockieren. Klassisches Beispiel für kooperative, nicht unterbrechende Prozesse sind beispielsweise Office-Anwendungen. Präemptive, unterbrechende Aufgaben sind z.B. Aktualisierungsvorgänge von Programmen.

Mit diesen Strategien arbeiten Prozess-Scheduler

Grundsätzlich arbeiten Prozess-Scheduler nach einer der beiden folgenden Strategien: „work-conserving“ („die Arbeit bewahrend“) oder „non-work-conserving“ („die Arbeit nicht bewahrend“). Die Namen sind allerdings ein Stück weit irreführend. Sie legen den Verdacht nahe, dass es darum geht, ob die geleistete Arbeit eines Vorganges gesichert wird oder nicht.

Tatsächlich ist das zentrale Unterscheidungskriterium jedoch, ob die Umschaltzeit zwischen Prozessen so kurz ist, dass sie vernachlässigt werden kann, oder nicht. Eine sehr schnelle Umschaltzeit ist dabei „work-conserving“. Es geht also um die Zeit, in der die CPU nicht an Prozessen arbeitet. Da es eine nur vernachlässigbare Umschaltzeit gibt, ist der Prozessor praktisch durchgehend beschäftigt und deshalb „work-conserving“.

Für die Abwicklung der einzelnen Aufgaben wird nach den folgenden Konzepten unterschieden:

  • First In, First Out: Prozesse, die zuerst hereinkommen, werden zuerst abgewickelt. Im FIFO-Konzept wird also nach der Reihe gearbeitet.
  • Shortest-Job-Next: Das SJN-Konzept sieht vor, dass als nächstes der jeweils kürzeste Vorgang erledigt wird, der noch ansteht.
  • Eearliest Due Date: Beim EDD-Ansatz geht es darum, dass die Aufgaben zuerst erledigt werden, die so schnell wie möglich aufgrund von Fristen fertig werden müssen.
  • Prioritätsscheduling: Der Scheduler entscheidet aufgrund von gesetzten Prioritäten, in welcher Reihenfolge Aufgaben erledigt werden.

Wichtig bei diesen Konzepten ist, dass es sich nicht notgedrungen um die „reine“ Lehre handelt. Es kann beispielsweise auch sein, dass Konzepte vermischt werden. Laufen beispielsweise Prozesse zur identischen Frist ab, greift eine Priorisierung, um zu bestimmten, welcher Vorgang zuerst bearbeitet wird.

Unterschiedliche Prozess-Scheduler-Systeme

Zu unterscheiden sind die drei folgenden Prozess-Scheduler-Systeme:

  • Stapelverarbeitung: Aufgaben werden nach der Reihe abgearbeitet. Ziel ist es, dass die CPU niemals Leerlauf hat und möglichst viele Prozesse fertiggestellt werden. Die Turnoutzeit („Durchlaufzeit“ eines Prozesses) soll so kurz wie möglich sein.
  • Interaktivität: Die Antwortzeiten sollen so schnell wie möglich sein, um die Wartezeit für den Nutzer zu minimieren. Es findet deshalb eine Priorisierung statt. Prozesse, die mit dem Nutzer interagieren, werden bevorzugt behandelt. Zudem achtet der Scheduler darauf, dass die Antwortzeiten prinzipiell den Erwartungen des Users entsprechen. Aufgerufene Menüs müssen beispielsweise stets vergleichbar schnell laden („Gebot der Proportionalität“).
  • Echtzeit: Hier wird mit Fristen gearbeitet, um die Vorhersagbarkeit zu gewährleisten. Sicherheitskritische Anwendungen (z.B. Autopiloten) oder auch Mult-Media-Anwendungen vertrauen auf das entsprechende System, um Vorgänge zu planen.

Prinzipiell ist das Ziel unabhängig vom Prozess stets Fairness. Kein Prozess sollte grundlos lange warten müssen, bis er erledigt wird. Auch die Balance ist wichtig: Nicht nur die CPU sollte ausgelastet sein, sondern auch die Festplatte, die GPU und die weitere Hardware. Dabei müssen alle Systemregeln eingehalten werden.

(ID:46680159)

Jetzt Newsletter abonnieren

Täglich die wichtigsten Infos zu Softwareentwicklung und DevOps

Mit Klick auf „Newsletter abonnieren“ erkläre ich mich mit der Verarbeitung und Nutzung meiner Daten gemäß Einwilligungserklärung (bitte aufklappen für Details) einverstanden und akzeptiere die Nutzungsbedingungen. Weitere Informationen finde ich in unserer Datenschutzerklärung.

Aufklappen für Details zu Ihrer Einwilligung