Was ist Job-Scheduling?
Job-Scheduling, auch bekannt als Batch-Scheduling, ist ein Prozess, der Systemressourcen zuteilt, um die Ausführung von unbeaufsichtigten Hintergrundprogrammen zu steuern. Der Scheduler entscheidet, welche Jobs ausgeführt werden, zu welcher Zeit und welche Ressourcen der zentralen Verarbeitungseinheit (CPU) benötigt werden, um den Job abzuschließen. Er stellt sicher, dass alle Jobs gemäß den festgelegten Prioritäten abgeschlossen werden.
Job-Scheduling-Software kann das Scheduling durchführen und Jobs oder Batches in Echtzeit überwachen. Moderne Job-Scheduler verfügen über eine grafische Benutzeroberfläche (GUI) mit einem zentralen Kontrollsystem. Viele Unternehmen nutzen Workload-Automatisierungssoftware, um fehleranfällige Aufgaben im Zusammenhang mit Job-Scheduling, Verarbeitung und Lagerung zu automatisieren.
Workload-Automatisierungssoftware hilft Unternehmen, manuelle Interaktionen zu reduzieren, sodass sich die IT-Abteilung auf Aufgaben mit höherer Priorität konzentrieren kann. IT-Profis können schnell zentrale Protokollierungs- und Berichtsprobleme angehen und andere Funktionen wie Auto-Remediation, Warnungen und Benachrichtigungen nutzen.
Job-Scheduler verwenden einige Standardparameter, um zu entscheiden, welcher Job ausgeführt werden soll. Diese Parameter sind wie folgt:
- Job-Priorität
- Job-Abhängigkeit
- Verfügbarkeit von Computerressourcen
- Dateiabhängigkeit
- Operator-Prompt-Abhängigkeit
- Geschätzte Ausführungszeit
- Verstrichene Ausführungszeit
- Ausführungszeit, die einem Benutzer zugewiesen ist
- Gleichzeitige Jobs, die einem Benutzer erlaubt sind
- Verfügbarkeit von Peripheriegeräten
- Vorkommen vorgeschriebener Ereignisse
- Verfügbarkeit eines Lizenzschlüssels, wenn ein Job eine lizenzierte Software verwendet
Arten des Job-Scheduling
Unternehmen planen Jobs oder Batches durch verschiedene Arten von Scheduling-Prozessen. Nachfolgend sind drei gängige Arten des Job-Scheduling aufgeführt, die IT-Teams verwenden, um ihre Umgebung zu optimieren.
- Langfristiges Scheduling: Eine lange Liste von Elementen ist bereit zur Verarbeitung, wenn neue Prozesse erstellt werden. Dies erfordert erhebliche Rechenleistung und erhöht den Overhead auf dem Betriebssystem. Das Betriebssystem führt eine lange Liste und es gibt eine Zunahme von Kontextwechseln und Dispatching. Diese Art kümmert sich um die Verwaltung einer solchen langen Liste von Prozessen. Ein langfristiger Scheduler entscheidet, welche Jobs in die Verarbeitungswarteschlange von kurzfristigen oder mittelfristigen Schedulern gelangen. Er begrenzt die Prozesse, die in die Warteschlange gelangen, basierend auf verschiedenen Verarbeitungsalgorithmen.
- Mittelfristiges Scheduling: Bei einigen Betriebssystemen beginnt ein neuer Prozess in einem ausgelagerten Zustand. Ein Swap-Out erfolgt, wenn ein Prozess aus dem Arbeitsspeicher (RAM) entfernt und auf die Festplatte übertragen wird. Diese Art ist Teil der Swap-Funktion. Wenn im Hauptspeicher freier Platz vorhanden ist, entscheidet der Scheduler, welcher Prozess eingelagert werden kann. Dies hängt vom Speicher, der Priorität und anderen erforderlichen Ressourcen ab. Ein mittelfristiger Scheduler führt oft die Swap-In-Funktion für ausgelagerte Prozesse aus.
- Kurzfristiges Scheduling: Ein kurzfristiger Scheduler, auch Dispatcher genannt, startet, wenn ein neues Ereignis eintritt. Dies tritt häufiger auf und kann einen laufenden Prozess unterbrechen. Kurzfristige Scheduler sind schnell und wählen neue Prozesse aus, die zur Ausführung bereit sind, und weisen der CPU einen von ihnen zu, was sehr häufig geschieht.
Job-Scheduling-Algorithmen
Kurzfristiges Scheduling verwendet hauptsächlich Job-Scheduling-Algorithmen, um Prozesse zuzuweisen und das Systemverhalten zu optimieren. Nachfolgend sind einige gängige Scheduling-Algorithmen oder -Richtlinien aufgeführt, die beeinflussen, welche Prozesse der CPU zugewiesen werden sollten.
FCFS-Scheduling-Algorithmus
Der First-Come, First-Serve (FCFS) Job-Scheduling-Algorithmus folgt der First-In, First-Out-Methode. Wenn Prozesse der Bereitschaftswarteschlange beitreten, wählt der Scheduler den ältesten Job in der Warteschlange aus und sendet ihn zur Verarbeitung. Die durchschnittliche Verarbeitungszeit für diese Jobs ist vergleichsweise lang.
Nachfolgend sind die Vorteile und Nachteile von FCFS-Algorithmen aufgeführt.
- Vorteil: FCFS fügt dem Prozessor minimalen Overhead hinzu und ist besser für lange Prozesse geeignet.
- Nachteil: Konvoiwirkungen treten auf, wenn selbst ein kleiner Job lange warten muss, um in die Verarbeitung zu gelangen, was zu einer geringeren CPU-Auslastung führt.
SJF-Scheduling
Shortest Job First (SJF), auch bekannt als Shortest Job Next (SJN), wählt einen Job aus, der die kürzeste Verarbeitungszeit erfordert, und weist ihn der CPU zu. Dieser Algorithmus verknüpft jeden Prozess mit der Länge des nächsten CPU-Bursts. Ein CPU-Burst ist, wenn Prozesse die CPU nutzen, bevor sie nicht mehr bereit ist.
Angenommen, zwei Jobs haben den gleichen CPU-Burst. Der Scheduler würde dann den FCFS-Algorithmus verwenden, um das Unentschieden zu lösen und einen von ihnen zur Ausführung zu bringen.
Nachfolgend sind die Vorteile und Nachteile des Shortest Job First Scheduling aufgeführt.
- Vorteil: Der Durchsatz ist hoch, da die kürzesten Jobs gegenüber einem langlaufenden Prozess bevorzugt werden.
- Nachteil: Erfasst die verstrichene Zeit, die zu zusätzlichem Overhead auf der CPU führt. Darüber hinaus kann es zu Verhungern führen, da lange Prozesse lange in der Warteschlange bleiben.
Prioritäts-Scheduling
Prioritäts-Scheduling verknüpft jedem Prozess eine Priorität (eine ganze Zahl). Der mit der höchsten Priorität wird zuerst ausgeführt. Normalerweise wird einem Job mit der höchsten Priorität die kleinste ganze Zahl zugewiesen. Wenn es zwei Jobs mit ähnlicher Priorität gibt, verwendet der Algorithmus FCFS, um zu bestimmen, welcher in die Verarbeitung übergeht.
Nachfolgend ist ein Vorteil und Nachteil des Prioritäts-Scheduling aufgeführt.
- Vorteil: Prioritäts-Jobs haben eine gute Reaktionszeit.
- Nachteil: Längere Jobs können Verhungern erfahren.
Round-Robin-Scheduling
Round-Robin-Scheduling ist für zeitteilige Systeme konzipiert. Es ist ein präemptiver Scheduler, der auf der Uhr basiert und oft als Time-Slicing-Scheduler bezeichnet wird. Immer wenn ein periodisches Uhrenintervall auftritt, verschiebt der Scheduler einen aktuell verarbeitenden Job in die Bereitschaftswarteschlange. Er nimmt den nächsten Job in der Warteschlange zur Verarbeitung auf einer First-Come, First-Serve-Basis.
Die Entscheidung über ein Zeitquantum oder einen Zeitslice ist in diesem Scheduling-Algorithmus knifflig. Wenn der Zeitslice kurz ist, werden kleine Jobs schneller verarbeitet.
Nachfolgend sind einige Vorteile und Nachteile des Round-Robin-Scheduling aufgeführt.
- Vorteile: Bietet allen Prozessen eine faire Behandlung, und der Prozessor-Overhead ist gering.
- Nachteile: Der Durchsatz kann niedrig sein, wenn der Zeitslice sehr kurz ist.
Wie funktioniert Job-Scheduling-Software?
Enterprise-Job-Scheduling-Software besteht aus einer Job-Scheduling-Schnittstelle und einem Ausführungsagenten. Diese Elemente spielen eine entscheidende Rolle in der Gesamtfunktion eines Job-Scheduling-Systems.
Nachfolgend sind einige Hauptverantwortlichkeiten eines Job- oder Batch-Schedulers aufgeführt:
- Definieren Sie Aufgaben zur Ausführung mit Hilfe der Drag-and-Drop-Funktion
- Erstellen Sie eine Warteschlange und planen Sie Jobs, um die Ausführung von Aufgaben zu priorisieren
- Weisen Sie Jobs dem richtigen Agenten basierend auf mehreren Faktoren wie Priorität, Häufigkeit und mehr zu
Andererseits kümmert sich ein Ausführungsagent um die folgenden Prozesse:
- Einreichen von Aufgaben zur Ausführung
- Überwachen von Aufgaben während der Ausführung
Ein Ausführungsagent bezieht sich auf technische Informationen wie CPU-Verfügbarkeit, projizierte Ausführungszeit und Abhängigkeiten während der Ausführung.
Unternehmen können mit Workload-Scheduling-Software verschiedene Aufgaben automatisieren.
Nachfolgend sind einige der gängigen Aufgaben aufgeführt, die Job-Scheduler automatisieren.
- Ereignisauslösung: Job-Scheduler können auslösende Ereignisse wie E-Mails, Dateimodifikationen, Systemaktualisierungen, Dateiübertragungen und benutzerdefinierte Ereignisse erkennen. Sie können mit verschiedenen APIs verbunden werden, um solche Auslöser zu erkennen.
- Dateiverarbeitung: Job-Scheduling-Tools überwachen Dateibewegungen. Sobald eine auslösende Datei in das System gelangt, informiert sie den Ausführungsagenten, die voreingestellte Aufgabe zu verarbeiten.
- Dateiübertragung: Job-Scheduling-Programme können ein Dateiübertragungsprotokoll (FTP) auslösen, um eine sichere Übertragung vom Server ins Internet zu initiieren oder Daten aus dem Internet auf den Server zu ziehen.
- Ereignisprotokollierung: Job-Scheduling-Systeme erzeugen und zeichnen Ereignisprotokolle für die Einhaltung gesetzlicher Vorschriften auf.
Job-Scheduling vs. CPU-Scheduling vs. Workload-Automatisierung
Das Verständnis dieser drei Begriffe ist ein Muss, wenn man über Job-Scheduling lernt.
Beide, Job-Scheduling und CPU-Scheduling, sind mit der Prozessaussführung verbunden. Job-Scheduling ist der Mechanismus, der entscheidet, welcher Prozess in die Bereitschaftswarteschlange verschoben werden soll. Normalerweise führen langfristige Scheduler das Job-Scheduling durch.
Andererseits ist CPU-Scheduling ein Mechanismus, der bestimmt, welcher Prozess als nächstes ausgeführt werden soll und die CPU entsprechend zuteilt. Kurzfristige Scheduler führen normalerweise das CPU-Scheduling durch.
Traditionelle Job-Scheduling-Tools automatisieren Aufgaben für spezifische Plattformen oder Anwendungen. Auf der anderen Seite zentralisiert Workload-Automatisierungssoftware die Job-Kontrollen über mehrere Plattformen, erhöht die Koordination zwischen Betriebssystemen und reduziert Konflikte.

Sagar Joshi
Sagar Joshi is a former content marketing specialist at G2 in India. He is an engineer with a keen interest in data analytics and cybersecurity. He writes about topics related to them. You can find him reading books, learning a new language, or playing pool in his free time.