-
Die
vorliegende Erfindung betrifft ein Scheduling-Verfahren und -System
zur Steuerung der Ausführung
von Prozessen.
-
Scheduling-Verfahren
werden allgemein in verschiedenen Anwendungen, wie zum Verwalten
einer Reihe von Jobs in einer Stapelverarbeitung, eingesetzt. Üblicherweise
beinhaltet das Scheduling die Erstellung eines Plans, der aus einer
in einer bestimmten Reihenfolge strukturierten Jobabfolge besteht,
die zur Übergabe
und Steuerung ihrer Ausführung
verwendet wird. Die Erstellung des Plans erfordert eine Vorhersage der
erwarteten Dauer eines jeden Jobs; beispielsweise wird die geschätzte Dauer
auf einen Durchschnittswert der jeweils gemessenen Dauer der abgeschlossenen
Instanzen der vorher ausgeführten
Jobs gesetzt.
-
Wenn
ein Job deutlich länger
als seine geschätzte
Dauer läuft,
erkennt ein Workload-Scheduler, der die Ausführung der Jobs steuert, eine
entsprechende Unregelmäßigkeit.
In dieser Situation ist es wünschenswert,
einen Bediener zu benachrichtigen, der dann entscheidet, ob ein
Eingreifen, zum Beispiel durch Abbrechen des Jobs von langer Dauer,
erforderlich ist oder nicht. Alternativ ruft der Scheduler einen
Workload-Manager
auf, um dem Job (wenn dieser als kritisch klassifiziert wird) zusätzliche
Systemressourcen zur Verfügung zu
stellen.
-
Ein üblicher
Ansatz ist, einen Faktor zu bestimmen, mit dem die geschätzte Dauer
multipliziert wird. Die resultierende Zahl ergibt einen Schwellenwert
für eine
aktuelle Dauer des Jobs. überschreitet
die aktuelle Dauer den Schwellenwert, gilt der Job als Job von langer
Dauer und eine entsprechende Maßnahme
wird eingeleitet.
-
EP-A-0 578 262 legt
ein Scheduling-Verfahren zur Steuerung der Ausführung von Druckjobs dar, bei dem
eine erwartete Dauer eines Prozesses geschätzt, ein Schwellenwert bestimmt
und eine Unregelmäßigkeit erkannt
wird, wenn die tatsächliche
Dauer des Jobs den Schwellenwert überschreitet.
-
Ein
Nachteil der Lösungen
nach dem Stand der Technik ist, dass die Erkennungsmechanismen ungenau
sind und einen geringen Nutzen bieten, was dazu führen kann,
dass der Workload-Scheduler nicht korrekt arbeitet.
-
Insbesondere
wenn der Schwellenwert zu niedrig ist, wird falscher Alarm geschlagen
oder die Systemressourcen werden wahllos eingesetzt, selbst wenn
keine wirkliche Unregelmäßigkeit
aufgetreten ist. Wenn im umgekehrten Fall der Schwellenwert zu hoch
ist, werden Jobs von langer Dauer erst nach sehr langer Zeit entdeckt.
-
Es
ist eine Aufgabe der vorliegenden Erfindung, ein Verfahren bereitzustellen,
das die oben genannten Nachteile verringert.
-
Gemäß der vorliegenden
Erfindung wird ein Scheduling-Verfahren zur Steuerung der Ausführung von Prozessen
bereitgestellt, umfassend die Schritte des Schätzens einer erwarteten Dauer
eines Prozesses, des Bestimmens eines Schwellenwertes durch Multiplizieren
der erwarteten Dauer mit einem Multiplikationsfaktor, des Ausführens des
Prozesses, des Erkennens einer Unregelmäßigkeit, wenn eine tatsächliche
Dauer des Prozesses den Schwellenwert überschreitet, wobei der Multiplikationsfaktor
als eine abnehmende Funktion der erwarteten Dauer bestimmt wird.
-
Gemäß der vorliegenden
Erfindung werden auch ein Computerprogramm zum Ausführen des
Verfahrens, ein das Programm speicherndes Programmprodukt sowie
ein entsprechendes System bereitgestellt.
-
Weitere
Merkmale sowie die Vorteile der Lösung gemäß der vorliegenden Erfindung
werden anhand der folgenden Beschreibung einer bevorzugten Ausführungsart
der Erfindung, die rein als eine nicht einschränkende Darstellung zu verstehen
ist, mit Bezug auf die beigefügten
Figuren erläutert;
es zeigen:
-
1 ein
einfaches Blockdiagramm eines Datenverarbeitungssystems, in dem
das Scheduling-Verfahren der Erfindung verwendet werden kann;
-
2 einen
Teil des Inhalts eines Arbeitsspeichers des Systems;
-
3 ein
Flussdiagramm des im System implementierten Scheduling-Verfahrens;
-
die 4a–4b verschiedene
Kurven einer Funktion Multiplikationsfaktor/geschätzte Dauer.
-
1 zeigt
ein Datenverarbeitungssystem 100, beispielsweise einen
Großrechner.
Das System 100 beinhaltet mehrere Einheiten, die parallel
mit einem Systembus (SYS-BUS) 105 verbunden sind. Mehrere
Mikroprozessoren (μP) 110 steuern
insbesondere den Betrieb des Systems 100. Die Mikroprozessoren 110 greifen
auf einen gemeinsamen Arbeitsspeicher 115 zu, der im Allgemeinen
aus einem DRAM mit verschachtelten Modulen besteht; ein Basisprogramm
zum Starten des Systems 100 ist in einem Nur-Lese-Speicher (ROM) 120 gespeichert.
-
Verschiedene
periphere Einheiten sind um einen lokalen Bus (LOK-BUS) 125 angeordnet.
Genauer gesagt, ein Massenspeicher besteht aus einer Festplatte 130;
das System 100 beinhaltet des Weiteren Eingabeeinheiten
(EIN) 135, die beispielsweise aus Tastaturen und Treibern
für CD-ROMs 140 bestehen,
und Ausgabeeinheiten (AUS) 145, die beispielsweise aus
Monitoren und Druckern bestehen. Eine Brückeneinheit (BRÜCKE) 150 verbindet
den Systembus 105 mit dem lokalen Bus 125.
-
Jeder
Mikroprozessor 105 und die Brückeneinheit 150 können als
Hauptagenten fungieren, die für
die Übertragung
von Informationen einen Zugriff auf den Systembus 105 anfordern.
Die Gewährung
des Zugriffs auf den Systembus 105 mit gegenseitigem Ausschluss
wird von einem Arbiter (ARB) 155 verwaltet.
-
Ähnliche
Erwägungen
gelten, wenn das System eine andere Struktur aufweist (beispielsweise
mit einem einzigen Bus), wenn es aus einem Minicomputer oder einem
Netz von Workstations besteht, wenn es unterschiedliche Einheiten
(wie Treiber für
Magnetbänder)
umfasst usw.
-
2 zeigt
einen Teil des Inhalts des Arbeitsspeichers 115 des Systems
in Betrieb; die Informationen (Programme und Daten) werden üblicherweise
auf der Festplatte gespeichert und, während das Programm läuft, (zumindest
teilweise) in den Arbeitsspeicher geladen, zusammen mit einem Betriebssystem
und anderen Anwendungsprogrammen (nicht in der Figur dargestellt).
Die Programme werden am Anfang von CD-ROM auf die Festplatte installiert.
-
Der
Arbeitsspeicher 115 beinhaltet eine Ein-/Ausgabeschnittstelle
(E/A) 205, die für
den Austausch von Informationen mit einem Bediener benutzt wird.
Die Ein-/Ausgabeschnittstelle 205 kommuniziert mit einem Stapelcontroller
(STAPEL) 210. Der Stapelcontroller 210 verwaltet
die Ausführung
einer Reihe von nicht interaktiven Jobs (üblicherweise am Abend oder
während
Leerlaufphasen des Systems); die Stapelverarbeitung ist besonders
für Operationen
nützlich,
die das System oder ein peripheres Gerät für einen längeren Zeitraum erfordern.
-
Der
Stapelcontroller 210 greift auf eine Datenbank 215 zu,
auf welcher eine Beschreibung der Produktionsauslastung eines Unternehmens
gespeichert ist. Die Auslastungsdatenbank 215 enthält einen
Datensatz (auf den über
einen entsprechenden ID-Code
zugegriffen wird) für
jeden Job eines im System auszuführenden Stapels.
Der Datensatz besteht aus einem Feld (JOB), das die Operationen
des Jobs, eine geplante Ausführungszeit
(Stunde, Tag, Woche und Monat) und jegliche Abhängigkeit von anderen Jobs beschreibt.
Obwohl das System durch ein Timesharing-Verfahren mehrere Jobs parallel
verarbeiten kann, weisen tatsächlich
einige Jobs oft sequenzielle Beschränkungen auf. Wenn beispielsweise
auf eine bei einem Job zu verwendende Ressource (wie eine Datei)
gerade von einem anderen Job zugegriffen wird, ist es erforderlich,
dass die Ausführung
des Jobs nicht gestartet werden sollte, bevor die Ausführung des
anderen Jobs abgeschlossen ist. Der Datensatz enthält des Weiteren
ein Feld (GD), das die geschätzte
Dauer des Jobs anzeigt.
-
Die
Beschreibung der auszuführenden
Jobs und ihre geschätzte
Dauer werden dem Stapelcontroller 210 mitgeteilt und dann
zu einem Planerstellungsprogramm (BUILDER) 220 übertragen.
Das Planerstellungsprogramm 220 erzeugt einen Scheduling-Plan
zur Steuerung einer Ausführungsabfolge
der Jobs in einer festgelegten Reihenfolge für einen angegebenen Zeitraum;
der Plan wird gemäß einer
voreingestellten Scheduling-Strategie (zum Beispiel zum Ausgleichen
einer Systemlast oder zum Optimieren einer Auslastungsspitze) erstellt.
Der Plan wird durch den Stapelcontroller 210 an ein Plansteuerprogramm
(STEUER) 225 weitergeleitet. Das Plansteuerprogramm 225 übergibt
den Stapel an eine Produktionsumgebung (AUSF) 230 und steuert entsprechend
die Ausführung
der Jobs.
-
Der
Stapelcontroller 210 verwaltet außerdem die Eingabe von Parametern
in ein Konfigurationsrepository (KONFIG) 235. Die im Repository 235 gespeicherten
Konfigurationsparameter werden an eine Logikeinheit (LOGIK) 240 weitergeleitet;
die Logikeinheit 240 erhält außerdem die geschätzte Dauer
GD eines jeden aktuellen Jobs vom Stapelcontroller 210.
Die Logikeinheit 240 berechnet einen Multiplikationsfaktor
(MF) für den
aktuellen Job, wie im Folgenden beschrieben wird. Der Multiplikationsfaktor
MF und die geschätzte
Dauer GD werden in einen Multiplikationsblock 250 eingegeben;
der Multiplikationsblock 250 berechnet für den aktuellen
Job einen entsprechenden Schwellenwert (SW), der an einen Vergleichsoperatorblock
(VERGL) 255 weitergeleitet wird. Der Vergleichsoperatorblock 255 erhält außerdem eine
aktuelle Dauer (AD) des Jobs; die aktuelle Dauer AD wird vom Plansteuerprogramm 225 durch
Subtrahieren einer tatsächlichen
Startzeit des Jobs von einer (von der Systemuhr bereitgestellten)
aktuellen Zeit gemessen. Der Vergleichsoperatorblock 255 erkennt
jegliche Unregelmäßigkeit,
die sich daraus ergibt, dass der Job länger als erwartet läuft, und
benachrichtigt entsprechend das Plansteuerprogramm 225;
die Unregelmäßigkeit
wird außerdem
durch den Stapelcontroller 210 und die Ein-/Ausgabeschnittstelle 205 dem
Bediener mitgeteilt.
-
Sobald
ein Job seine Ausführung
beendet (weil alle Operationen abgeschlossen sind, weil er vom Bediener
als Reaktion auf eine Unregelmäßigkeit
abgebrochen wurde oder weil ein Fehler aufgetreten ist) wird vom
Plansteuerprogramm 225 eine Rückmeldeinformation an den Stapelcontroller 210 und
dann an die Ein-/Ausgabeschnittstelle 205 zurückgegeben;
die Rückmeldeinformation
enthält
eine tatsächliche
Startzeit des Jobs, eine tatsächliche
Endzeit des Jobs, einen Rückgabecode
mit Angabe des Ergebnisses der Operationen und ähnliches. Das Plansteuerprogramm 225 misst
auch eine tatsächliche
Dauer des Jobs (TD) durch Subtrahieren der tatsächlichen Startzeit von der
tatsächlichen
Endzeit.
-
Die
tatsächliche
Dauer TD wird in ein Schätzmodul
(SCHÄTZ) 235 eingespeist;
das Schätzmodul 235 verwendet
die tatsächliche
Dauer TD, um vorherzusagen, wie lange der Job zukünftig laufen
sollte. Ein Algorithmus wird angewendet, um die tatsächliche
Dauer TD einer jeden Ausführung
zu gewichten und um einen kontinuierlich entstehenden Durchschnittswert
für die
Dauer des Jobs zu erzeugen; insbesondere wird die tatsächliche
Dauer TD mit einem Faktor multipliziert, dessen Wert gemäß der Anzahl
der Jobausführungen
abnimmt, und das Ergebnis wird für
die Überarbeitung
der aktuellen geschätzten
Dauer verwendet. Die überarbeitete
geschätzte
Dauer (GD) wird an den Stapelcontroller 210 weitergeleitet
und dann im entsprechenden Datensatz der Auslastungsdatenbank 215 gespeichert.
-
Ähnliche
Erwägungen
gelten, wenn ein ganzes Scheduling-Programm (bestehend aus den oben
beschriebenen verschiedenen Modulen) und die Daten auf eine andere
Art strukturiert sind, beispielsweise wenn die Auslastungsdatenbank
und das Konfigurationsrepository aus einem einzigen Inventar bestehen
oder sie durch äquivalente
Speicherstrukturen ersetzt werden, wenn unterschiedliche Funktionen
bereitgestellt werden, wenn die geschätzte Dauer auf eine andere
Weise vorhergesagt wird (beispielsweise durch Akkumulieren der tatsächlichen
Dauer jeder vollendeten Instanz des Jobs und Berechnen seiner tatsächlichen
Durchschnittslaufzeit) usw.
-
3 zeigt,
wie das Scheduling-Programm (wenn es auf dem System läuft) ein
Verfahren 300 ausführt,
das in Block 303 startet. Das Verfahren geht dann zu Block 306 über, wo
ein Menü mit
einer Reihe von Auswahlmöglichkeiten
auf dem Monitor des Systems angezeigt wird. Das Verfahren führt die
Operationen der ausgewählten
Option entsprechend aus. Genauer gesagt, wenn der Bediener die Funktion
zum Editieren der Konfigurationsparameter ausgewählt hat, werden die Blöcke 309–333 ausgeführt, wohingegen
die Blöcke 336–366 ausgeführt werden,
wenn der Bediener die Funktion zur Übergabe eines Jobs ausgewählt hat;
ansonsten, wenn der Bediener eine Beendigungsoption gewählt hat,
endet das Verfahren mit dem letzten Block 367.
-
In
Block 309 (Editierfunktion) prüft das Verfahren, wie der Multiplikationsfaktor
MK definiert ist. Wenn der Multiplikationsfaktor als eine lineare
Funktion der geschätzten
Dauer GD berechnet wurde, geht das Verfahren zu Block 312 über. Der
Bediener gibt ein oberes Niveau ON des Multiplikationsfaktors ein,
das Jobs von kurzer Dauer zugeordnet ist. Danach gibt der Bediener
in Block 315 ein unteres Niveau UN des Multiplikationsfaktors
(mit UN<ON) ein,
das Jobs von langer Dauer zugeordnet ist. Das Verfahren geht über zu Block 318, wo
der Bediener einen Wechselgrenzwert WG für den Multiplikationsfaktor
eingibt; der Wechselgrenzwert WG definiert, wie schnell der Multiplikationsfaktor
zwischen dem oberen Niveau ON und dem unteren Niveau UN wechselt;
darüber
hinaus wird er auch als Obergrenze zum Einpendeln des Multiplikationsfaktors
verwendet. Das Verfahren geht dann zurück zu Block 306 und
wartet auf einen neuen Befehl.
-
In
Block 309 geht das Verfahren, wenn der Multiplikationsfaktor
MF als eine Hyperbelfunktion der geschätzten Dauer GD berechnet wird,
zum Testblock 321 über.
Wenn der Bediener einen Skalierungskoeffizienten A (zum Aktualisieren
einer Krümmung
der Hyperbel) definieren will, geht das Verfahren zu Block 324 über, wo
der Bediener einen Skalierungskoeffizienten A eingibt; ansonsten
wird der Skalierungskoeffizient in Block 327 auf einen
festen Wert von 1 gesetzt. In beiden Fällen gibt der Bediener in Block 330 einen
Parameter B und in Block 333 einen weiteren Parameter C
ein; das Verhältnis
zwischen den Parametern B und C definiert ein oberes Niveau des
Multiplikationsfaktors für
Jobs von kurzer Dauer. Das Verfahren kehrt dann zu Block 306 zurück.
-
In
Block
336 (Übergabefunktion)
wird die geschätzte
Dauer GD des aktuellen Jobs an die Logikeinheit weitergegeben. Die
Logikeinheit prüft
in Block
339, wie der Multiplikationsfaktor MF definiert
ist. Wenn der Multiplikationsfaktor MF als eine lineare Funktion
der geschätzten
Dauer GD berechnet wurde, geht das Verfahren zum Testblock
342 über. Wenn
die geschätzte
Dauer GD größer als
der Wechselgrenzwert WG ist, wird der Multiplikationsfaktor MF in
Block
348 auf das untere Niveau UN (MF=UN) gesetzt. Umgekehrt
wird der Multiplikationsfaktor MF als eine lineare Interpolation
zwischen dem oberen Niveau ON für
die geschätzte
Dauer GD=0 und dem unteren Niveau UN für die geschätzte Dauer GD=WG berechnet,
d.h.:
-
In
beiden Fällen
geht das Verfahren zu Block 351 (im Folgenden beschrieben) über.
-
Angenommen
zum Beispiel, dass der Bediener entscheidet, für das obere Niveau ON einen
Wert von 3 zu wählen
(d. h. Jobs von wirklich kurzer Dauer sind verspätet, wenn sie dreimal länger laufen
als ihre geschätzte
Dauer) und für
das untere Niveau UN einen Wert von 1,1 (d. h. Jobs von wirklich
langer Dauer sind verspätet,
wenn sie ihre geschätzte
Dauer um mehr als 10 % überschreiten);
darüber
hinaus sollte der Multiplikationsfaktor MF für eine geschätzte Dauer über 24 Stunden
(WG = 1440 Minuten) bei 1,1 begrenzt werden. In diesem Fall wird
ein 1-Minuten-Job als verspätet
betrachtet, wenn er seit 2,920833 Minuten läuft (d. h. der Algorithmus
hat das obere Niveau ON stark gewichtet); ein 24-Stunden-Job wird
als verspätet
betrachtet, wenn er seit 1584 Minuten (1440 + 10 %) läuft. Einige
dazwischen liegende Beispiele erklären, wie sich der Multiplikationsfaktor
MF mit der geschätzten
Dauer GD verändert:
GD
(Minuten) | MF |
60 | 2,92 |
240 | 2,68 |
480 | 2,37 |
720 | 2,05 |
960 | 1,73 |
1200 | 1,42 |
1380 | 1,18 |
-
Die
entsprechende Kurve, die graphisch darstellt, wie der Multiplikationsfaktor
MF sich mit der geschätzten
Dauer GD verändert,
ist in 4a mit einer durchgezogenen
Linie gezeigt.
-
In
einem anderen Beispiel setzt der Bediener den Wechselgrenzwert auf
WG=240 Minuten (4 Stunden). In diesem Fall würde der Multiplikationsfaktor
MF stetig abnehmen und sich dann bei 4 Stunden und mehr bei einer
Konstanten von 1,1 einpendeln:
GD
(Minuten) | MF |
60 | 2,52 |
120 | 2,05 |
180 | 1,58 |
240 | 1,1 |
300 | 1,1 |
360 | 1,1 |
-
Die
entsprechende Kurve ist in 4a mit
einer gestrichelten Linie dargestellt.
-
In
Block
339 geht das Verfahren, wenn der Multiplikationsfaktor
MF als Hyperbelfunktion der geschätzten Dauer GD berechnet wird,
zu Block
354 über,
in dem der Multiplikationsfaktor MF durch die folgende Formel definiert
wird:
-
Das
Verfahren geht dann über
zu Block 351.
-
Wenn
beispielsweise A=1, B=500 und C=100, ergeben sich über einen
Zeitraum von 12 Stunden die folgenden Werte:
GD
(Minuten) | MF |
60 | 3,12 |
120 | 2,27 |
180 | 1,79 |
240 | 1,47 |
300 | 1,25 |
360 | 1,08 |
420 | 0,96 |
480 | 0,86 |
540 | 0,78 |
600 | 0,71 |
-
Die
entsprechende Kurve, die graphisch darstellt, wie der Multiplikationsfaktor
MF sich mit der geschätzten
Dauer GD verändert,
ist in 4b gezeigt.
-
In
Block 351 wird der Schwellenwert SW durch Multiplizieren
der geschätzten
Dauer GD mit dem Faktor MF berechnet, d. h. SW=MF·GD.
-
In
Block 357 wird der Job übergeben;
das Verfahren prüft
dann in Block 360, ob die Ausführung des Jobs beendet wurde.
Ist dies der Fall, kehrt das Verfahren zu Block 306 zurück und wartet
auf einen neuen Befehl. Andernfalls geht das Verfahren zum Testblock 363 über. Wenn
die aktuelle Dauer AD des Jobs den Schwellenwert SW überschreitet,
wird in Block 366 eine Unregelmäßigkeit erkannt und der Bediener
entsprechend benachrichtigt; das Verfahren kehrt dann zu Block 306 zurück. Im umgekehrten
Fall kehrt das Verfahren zu Block 360 zurück, um die
oben beschriebenen Operationen zu wiederholen.
-
Ähnliche
Erwägungen
gelten, wenn das Programm ein äquivalentes
Verfahren ausführt,
beispielsweise mit Fehlerroutinen, Ausnahmebehandlungsfunktionen
zum Überschreiben
des Multiplikationsfaktors auf Betriebsebene, Überwachungsroutinen zum Überwachen
der Jobs und Ähnliches.
Alternativ wird das Verfahren zur Steuerung von Systemressourcen
in einem verteilten Computernetz oder von anderen Prozessen in verschiedenen
Anwendungen verwendet.
-
Allgemeiner
ausgedrückt
stellt die vorliegende Erfindung ein Scheduling-Verfahren zur Steuerung
der Ausführung
von Prozessen bereit. Das Verfahren schätzt eine erwartete Dauer eines
Prozesses; dann wird durch Multiplizieren der erwarteten Dauer mit
einem Multiplikationsfaktor ein Schwellenwert bestimmt. Der Prozess
wird ausgeführt
und eine Unregelmäßigkeit
wird erkannt, wenn eine tatsächliche
Dauer des Prozesses den Schwellenwert überschreitet. In dem Verfahren
der Erfindung wird der Multiplikationsfaktor als abnehmende Funktion
der erwarteten Dauer bestimmt.
-
Die
entwickelte Lösung
führt zu
einer sehr genauen Erkennung von Jobs von langer Dauer. Dadurch wird
die Funktion des Workload-Schedulers
verbessert. Folglich zeigt ein vom Workload-Scheduler ausgelöster Alarm
immer eine wirkliche Unregelmäßigkeit
aufgrund eines Jobs, der deutlich länger als erwartet läuft, an;
die Systemressourcen können
vom Workload-Scheduler auch für
kritische Jobs, die tatsächlich
länger
als die geschätzte
Dauer laufen, korrekt verwendet werden.
-
In
der Tat haben die Erfinder festgestellt, dass ein voreingestellter
Wert des Multiplikationsfaktors in einem üblichen Szenario, in dem jeder
Stapel aus Jobs sehr unterschiedlicher Länge besteht, nicht akzeptabel ist.
-
Beispielsweise
ist zum Erkennen einer Unregelmäßigkeit
bei einem Job von langer Dauer nach einer angemessenen Zeitspanne
ein kleiner Multiplikationsfaktor wünschenswert. In diesem Fall
könnte
jedoch eine (angenommene) Unregelmäßigkeit bei einem Job von kurzer
Dauer erkannt werden, wenn dieser nur wenige Sekunden länger läuft als
erwartet (was sehr oft bei kleineren Störungen, die kürzere Jobs
im Verhältnis
stärker beeinflussen,
auftritt).
-
Andererseits
führt ein
hoher Multiplikationsfaktor zu einem Schwellenwert, der für einen
Job von kurzer Dauer akzeptabel sein mag. Leider wird eine Unregelmäßigkeit
bei einem Job von langer Dauer in diesem Fall erst nach vielen Stunden
erkannt.
-
Ganz
im Gegensatz dazu verwendet die Lösung der Erfindung ein Verfahren
zur Erkennung von Jobs von langer Dauer, das die inhärente Flüchtigkeit
von Jobs von kurzer Dauer berücksichtigt,
aber auch die Erkennung von Unregelmäßigkeiten bei Jobs von langer
Dauer ermöglicht,
bevor zu viel Zeit verstrichen ist.
-
Die
oben beschriebene bevorzugte Ausführungsart der Erfindung bietet
weitere Vorteile. Beispielsweise wird der Multiplikationsfaktor
auf eine sehr einfache Weise als eine lineare Funktion der erwarteten
Dauer (für
zumindest einen Bereich der Werte) berechnet.
-
Vorzugsweise
wird die Funktion vom unteren Niveau UN, vom oberen Niveau ON und
vom Wechselgrenzwert WG definiert. Dieser spezielle Algorithmus
ist nützlich,
da die Parameter für
den Bediener, der den höchsten
und den niedrigsten von ihm gewünschten
Wert für
den Multiplikationsfaktor MF codiert, sehr aussagekräftig sind.
Auf diese Weise berechnet der Algorithmus den entsprechenden Multiplikationsfaktor
MF für
jeden einzelnen Job und gewichtet das obere Niveau ON viel stärker, wenn
die geschätzte
Dauer GD kurz ist, wechselt aber graduell die Niveaus, um dem unteren
Niveau UN mehr Gewicht zu geben, wenn die geschätzte Dauer GD lang ist.
-
Darüber hinaus
pendelt sich der Multiplikationsfaktor MF beim Wechselgrenzwert
WG und darüber
bei einer vom unteren Niveau UN definierten Konstanten ein. Dadurch
kann der Multiplikationsfaktor MF stetig vom oberen Niveau ON auf
das untere Niveau UN gesenkt und gleichzeitig auf einem für Jobs von
sehr langer Dauer akzeptablen Niveau gehalten werden.
-
Alternativ
wird der Multiplikationsfaktor MF als Hyperbelfunktion der geschätzten Dauer
GD berechnet. Auf diese Weise kann die Kurve des Multiplikationsfaktors
MF in die gewünschte
Form gebracht werden (selbst wenn die Koeffizienten für den Bediener
nicht sehr aussagekräftig
sind, sodass es schwieriger zu verstehen ist, welche Werte die besten
sind).
-
Vorzugsweise
wird die Krümmung
der Hyperbel außerdem
vom Bediener definiert, um der Lösung mehr
Flexibilität
zu verleihen.
-
Ähnliche
Erwägungen
gelten, wenn der Schwellenwert auf eine andere Art bestimmt wird,
wenn andere Parameter vorgesehen sind und Ähnliches. Alternativ wird in
der linearen Funktion kein Wechselgrenzwert verwendet, der Multiplikationsfaktor
wird mit anderen Funktionen berechnet, wie mit einer logarithmischen Funktion,
einer Exponentialfunktion oder allgemeiner mit einer beliebigen
abnehmenden Funktion der geschätzten
Dauer. Darüber
hinaus kann die erfindungsgemäße Lösung sogar
implementiert werden, indem der Multiplikationsfaktor mit einer
voreingestellten Tabelle oder mit einem beliebigen anderen Verfahren,
das die oben beschriebene Logik bereitstellt, festgelegt wird.
-
Vorteilhafterweise
wird die Lösung
gemäß der vorliegenden
Erfindung mit einem Computerprogramm (Software) implementiert, das
auf CD-ROM bereitgestellt wird.
-
Alternativ
wird das Programm auf Floppy-Disk oder Band bereitgestellt, vorab
auf die Festplatte geladen oder auf einem anderen computerlesbaren
Medium gespeichert, über
ein Netz (üblicherweise
das Internet) an das System gesendet, per Rundsendung übertragen
oder, allgemeiner, in einer beliebigen anderen Form bereitgestellt,
in der es direkt in einen Arbeitsspeicher des Computers geladen
werden kann. Zusätzlich kann
das erfindungsgemäße Verfahren
sogar mit einer Hardwarestruktur, beispielsweise in einen Chip aus Halbleitermaterial
integriert, ausgeführt
werden.