Scheduler (Informatik)

Scheduler (Informatik)

Ein Prozess-Scheduler (Scheduler = Steuerprogramm) ist eine Arbitrationslogik, der die zeitliche Ausführung mehrerer Prozesse in Betriebssystemen regelt. Prozess-Scheduler kann man grob in unterbrechende (preemptive) und nicht unterbrechende (non preemptive, auch kooperativ genannt) aufteilen. Nicht unterbrechende Scheduler lassen einen Prozess, nachdem ihm die CPU einmal zugeteilt wurde, solange laufen, bis dieser diese von sich aus wieder freigibt oder bis er blockiert. Unterbrechende Scheduler teilen die CPU von vornherein nur für eine bestimmte Zeitspanne zu und entziehen dem Prozess diese daraufhin wieder. Man kann verschiedene Systeme unterscheiden, in welchen jeweils verschiedene Anforderungen an den Scheduler gestellt werden:

  1. Stapelverarbeitungssysteme
  2. interaktive Systeme
  3. Echtzeitsysteme

In Stapelverarbeitungssystemen sieht der Scheduler denkbar einfach aus: Ankommende Aufträge werden in eine Warteschlange eingereiht und jedes Mal, wenn ein Job abgearbeitet ist, kommt der nächste aus der Schlange dran (Queue-Manager).

Interaktive Systeme stellen höhere Anforderungen: Der Benutzer legt Wert auf kurze Antwortzeit. Wenn er beispielsweise in einem Texteditor eine Tastatureingabe tätigt, sollte der Text sofort erscheinen.

In Echtzeitsystemen gibt es für jeden Job ein Zeitlimit, bis zu dem die Aufgabe erledigt sein muss. Siehe Real-Time Scheduling.

Typische Benutzer-PCs sind interaktive Systeme, auf denen gelegentlich auch Prozesse als so genannte Hintergrundprozesse mit niedrigerer Priorität ablaufen können.

Inhaltsverzeichnis

Ziele

Die Zuteilung der CPU an die Prozesse sollte bestmöglich erfolgen, wobei (abhängig vom ausführenden System) allerdings unterschiedliche Ziele verfolgt werden können:

Allgemein

  • Fairness: Kein Prozess sollte unverhältnismäßig lange warten müssen, während ein anderer bevorzugt wird.
  • Balance: Die Prozesse sollten der CPU auf eine Weise zugeteilt werden, dass auch andere Ressourcen wie Festplatte, Netzwerk-Schnittstelle u.a. ausgelastet sind.
  • Einhaltung der Systemregeln

Batch Systeme

  • CPU-Auslastung: Die CPU sollte zu jeder Zeit ausgelastet sein. Es soll nicht vorkommen, dass die CPU sich im Leerlauf befindet, nur weil ein Prozess auf Daten von der Festplatte wartet.
  • Durchsatz: Die Anzahl beendeter Aufgaben pro Zeiteinheit sollte maximiert werden. Dies ergibt eine ähnliche Strategie wie die Auslastung, betrachtet aber mehr das tatsächliche Ergebnis.
  • kurze Turnaroundzeit (Durchlaufzeit): Die Zeit, die von der Ankunft eines Prozesses bis zu seiner vollständigen Beendigung vergeht, sollte minimiert werden.

Interaktive Systeme

  • Schnelle Antwortzeiten: Die Wartezeiten des Benutzers (oder anderer Systeme) sollten minimiert werden. Prozesse, die eine Interaktion mit dem Benutzer erfordern, sollten also bevorzugt werden vor solchen, die im Hintergrund stattfinden können.
  • Proportionalität: Die Antwortzeiten verschiedener Prozesse sollten den Erwartungen des Benutzers entsprechen. Werden Prozesse (wie z.B. das Schließen einer Anwendung) vom Benutzer als simpel betrachtet, sollten diese auch schnell ausgeführt werden.

Echtzeitsysteme

  • Deadlines einhalten
  • Vorhersagbarkeit: Wichtig für Multimedia Anwendungen (da sonst z.B. Verschlechterung der Tonqualität droht)

Strategien

Das größte Problem des Schedulers ist die Tatsache, dass die benötigten Betriebsmittel für die einzelnen Prozesse nicht im Vorfeld bekannt sind. Es lässt sich also im Allgemeinen keine optimale Planung erstellen, sondern der Scheduler muss dynamisch auf geänderte Anforderungen reagieren. Dabei können (abhängig vom Scheduler) verschiedene Zuteilungsstrategien zum Einsatz kommen:

  • First-Come First-Served (FCFS, FIFO): Hierbei werden alle Prozesse in der Reihenfolge ihres Eingangs bearbeitet. Dabei werden einzelne Prozesse immer komplett verarbeitet, bevor der nächste Prozess an die Reihe kommt. Diese Strategie erzielt eine gute Auslastung bezüglich der CPU, allerdings nicht bezüglich Ressourcen, die längere Zeit für eine Anforderung benötigen können, wie z. B. Ein-/Ausgabe oder Massenspeicher. Für Mehrbenutzersysteme ist die Strategie darüber hinaus wenig geeignet, da einzelne Benutzer so ggf. für längere Zeit (nämlich bei aufwendigen Prozessen anderer Benutzer) ausgeschlossen werden.
  • Shortest Job First (SJF, SPT) ist ein weiteres Verfahren, das nicht für Mehrbenutzersysteme geeignet ist. SJF lässt sich in Fällen einsetzen, in denen die benötigte Rechenzeit für einzelne Aufgaben aus Erfahrungswerten gut vorhergesagt werden kann. Ein Nachteil ist, dass große Prozesse u. U. niemals die CPU zugeteilt bekommen, wenn sich immer kürzere Jobs vordrängeln.
  • Shortest-Remaining-Time, Shortest-Remaining-Processing-Time entspricht dem SPT-Verfahren. Anders als beim SPT-Verfahren wird hier ein Prozesswechsel durchgeführt, wenn ein neu ankommender Prozess eine kürzere Ausführungszeit aufweist, als die verbleibende des aktuellen Prozesses.
  • Round Robin (Zeitscheibenverfahren): Einem Prozess wird die CPU für eine bestimmte (kurze) Zeitspanne zugeteilt. Danach wird der Prozess wieder hinten in die Warteschlange eingereiht.
  • Prioritätsscheduling: Bei dieser Strategie wird jedem Prozess eine Priorität zugeordnet. Die Abarbeitung erfolgt dann in der Reihenfolge der Prioritäten. Da es sich dann (innerhalb der gleichen Prioritäten) um eine Strategie der Eingangsreihenfolge handelt, wird diesem Verfahren meistens noch ein Zeitscheibenverfahren untergeordnet (diese nennt man dann u.a. auch Multilevel Feedback Queue Scheduling, Shortest-Elapsed-Time (SET) ), um trotzdem eine schnelle Antwortzeit zu ermöglichen. Zusätzlich wird in den verbreiteten Schedulern mit dynamischen Prioritäten gearbeitet, wobei sich die Priorität eines Prozesses mit der Zeit erhöht, damit auch niedrig priorisierte Prozesse irgendwann bearbeitet werden und nicht ständig von höher priorisierten Prozessen verdrängt werden.
  • Terminabhängige Ablaufplanung: Diese Strategie kommt hauptsächlich in Echtzeitsystemen vor. Dabei werden die Prozesse bevorzugt verarbeitet, die als erstes beendet sein müssen. Damit ist es möglich, eine definierte Antwortzeit für bestimmte Prozesse zu garantieren.

Scheduling-Verfahren

Literatur


Wikimedia Foundation.

Игры ⚽ Нужно решить контрольную?

Schlagen Sie auch in anderen Wörterbüchern nach:

  • Schedule (Informatik) — Ein Prozess Scheduler (Scheduler = Steuerprogramm) ist eine Arbitrationslogik, der die zeitliche Ausführung mehrerer Prozesse in Betriebssystemen regelt. Prozess Scheduler kann man grob in unterbrechende (preemptive) und nicht unterbrechende (non …   Deutsch Wikipedia

  • Scheduling (Informatik) — Ein Prozess Scheduler (Scheduler = Steuerprogramm) ist eine Arbitrationslogik, der die zeitliche Ausführung mehrerer Prozesse in Betriebssystemen regelt. Prozess Scheduler kann man grob in unterbrechende (preemptive) und nicht unterbrechende (non …   Deutsch Wikipedia

  • O(1)-Scheduler — Linux (Kernel) Entwickler Linus Torvalds u. v. m. Sprache(n) …   Deutsch Wikipedia

  • Open Source Job Scheduler — Dieser Artikel wurde aufgrund von inhaltlichen Mängeln auf der Qualitätssicherungsseite der Redaktion Informatik eingetragen. Dies geschieht, um die Qualität der Artikel aus dem Themengebiet Informatik auf ein akzeptables Niveau zu bringen. Hilf… …   Deutsch Wikipedia

  • Completely Fair Scheduler — Der Completely Fair Scheduler (kurz CFS) ist ein Prozess Scheduler in der Informatik. Solche Scheduler werden verwendet, um die Priorität von Programmabläufen auf Kernelebene von Betriebssystemen zu verwalten. CFS wurde von Ingo Molnár entwickelt …   Deutsch Wikipedia

  • Round-Robin (Informatik) — Der Begriff Rundlauf Verfahren oder englisch Round Robin bezeichnet ein Scheduling Verfahren, d. h. es ordnet mehreren konkurrierenden Prozessen begrenzte Ressourcen zu. Das Round Robin Verfahren gewährt allen Prozessen nacheinander für jeweils… …   Deutsch Wikipedia

  • Thread (Informatik) — Ein Thread (auch: Aktivitätsträger oder leichtgewichtiger Prozess) bezeichnet in der Informatik einen Ausführungsstrang oder eine Ausführungsreihenfolge in der Abarbeitung eines Programms. Ein Thread ist Teil eines Prozesses. Man unterscheidet… …   Deutsch Wikipedia

  • Betriebsmittel (Informatik) — Betriebsmittel oder Systemressourcen (oder einfach Ressourcen) sind Systemelemente eines Computers, die von Prozessen zur korrekten Ausführung benötigt werden, wie z. B. Festplatte, Arbeitsspeicher oder Drucker. Der Zugriff auf die… …   Deutsch Wikipedia

  • Round Robin (Informatik) — Der Begriff Rundlauf Verfahren oder englisch Round Robin bezeichnet ein Scheduling Verfahren, d. h. es ordnet mehreren konkurrierenden Prozessen begrenzte Ressourcen zu. Das Round Robin Verfahren gewährt allen Prozessen nacheinander für… …   Deutsch Wikipedia

  • Gegenseitiger Ausschluss — Der Begriff Wechselseitiger Ausschluss bzw. Mutex (Abk. für engl. mutual exclusion, auf deutsch etwa wechselseitiger Ausschluss) bezeichnet eine Gruppe von Verfahren, mit denen das Problem des kritischen Abschnitts gelöst wird. Mutex Verfahren… …   Deutsch Wikipedia

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”