- Long-term-scheduling
-
Long-term-scheduling (LTS) ist ein Scheduling-Algorithmus, der von Betriebssystemen verwendet wird.
Long-Term-Scheduling betrachtet, welche Programme vom System in die Bearbeitung einbezogen werden sollen. Aus dem entsprechenden Nutzerprogramm wird ein Prozess generiert, der in das Short-Term-Scheduling einbezogen wird bzw. zunächst ausgelagert und in das Medium-Term-Scheduling einbezogen wird. Die Entscheidung, einen neuen Prozess zu generieren, hängt dabei auch vom Grad des Multiprogrammings ab: Je mehr Prozesse existieren, desto niedriger ist der Anteil der Ausführungszeit an der Prozessorzeit, denn die Prozesse konkurrieren um die Prozessorzeit.
Long-Term-Scheduling ist ein Schedulingverfahren in Betriebssystemen, welches grob (wie die meisten anderen Schedulingverfahren auch) die folgenden Ziele verfolgt:
- Koordination zwischen einzelnen Prozessen
- Zuteilung der Systemressourcen
- Dem User und/oder anderen Prozessen nicht zu lange Wartezeiten zuzumuten
LTS selber arbeitet dabei im Verbund mit dem Medium-Term-Scheduling (MTS) und dem Short-Term-Scheduling (STS).
Kurzgefasst kann die Aufgabe des LTS auf das Ansteuern des MTS und STS reduziert werden. LTS macht also nichts anderes als den Prozessen (folgend Jobs genannt) Prioritäten zuzuteilen und sie dementsprechend den weiteren Abarbeitungsprozess zuzuführen.
Im Detail betrachtet sieht dies wie im folgenden Beispiel erklärt aus:
- Ein neuer Job möchte abgearbeitet werden.
- Dieser Job gelangt nun in das LTS und wird dort nach folgenden Kriterien genauer begutachtet:
- Welche Priorität hat der Job? (Dabei handelt es sich nicht um die Priorität, die LTS dem Job zuordnet, sondern um eine externe Priorität)
- Welche Systemressourcen (Laufwerke, Drucker, …) benötigt dieser Job?
- Um was für eine Art Job handelt es sich dabei? (Input/Output Job ⇒ User sitzt vor dem PC und wartet darauf, das etwas passiert / Compute-Bound Job ⇒ es steht eine Menge Arbeit für die CPU an, aber der User kann dennoch inzwischen flüssig weiterarbeiten; …)
- Wurde der Job nach diesen Kriterien klassifiziert erhält er vom LTS eine Priorität. Bei hoher Priorität (und genügend freien Systemressourcen) wird der Job entweder direkt an das MTS weitergereicht (und dort weiterverarbeitet). Bei niedriger Priorität wird der Job in einer Queue „zwischengelagert“, um später im MTS weiterverarbeitet zu werden.
- Der Job wird nun also zuerst vom MTS weiterverarbeitet und zuletzt vom STS abgearbeitet.
- Hat STS nun den Job fertig abgearbeitet, so schickt STS eine entsprechende Meldung an LTS zurück.
- LTS terminiert nun den Prozess (gibt entsprechende Meldung weiter, z. B.: eine Ausgabe auf dem Bildschirm)
Wikimedia Foundation.