DE60222259T2 - Scheduling-verfahren und -system zur steuerung der ausführung von prozessen - Google Patents

Scheduling-verfahren und -system zur steuerung der ausführung von prozessen Download PDF

Info

Publication number
DE60222259T2
DE60222259T2 DE60222259T DE60222259T DE60222259T2 DE 60222259 T2 DE60222259 T2 DE 60222259T2 DE 60222259 T DE60222259 T DE 60222259T DE 60222259 T DE60222259 T DE 60222259T DE 60222259 T2 DE60222259 T2 DE 60222259T2
Authority
DE
Germany
Prior art keywords
multiplication factor
duration
expected duration
job
level
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
DE60222259T
Other languages
English (en)
Other versions
DE60222259D1 (de
Inventor
Maclellan Scot
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Application granted granted Critical
Publication of DE60222259D1 publication Critical patent/DE60222259D1/de
Publication of DE60222259T2 publication Critical patent/DE60222259T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/418Total factory control, i.e. centrally controlling a plurality of machines, e.g. direct or distributed numerical control [DNC], flexible manufacturing systems [FMS], integrated manufacturing systems [IMS] or computer integrated manufacturing [CIM]
    • G05B19/41865Total factory control, i.e. centrally controlling a plurality of machines, e.g. direct or distributed numerical control [DNC], flexible manufacturing systems [FMS], integrated manufacturing systems [IMS] or computer integrated manufacturing [CIM] characterised by job scheduling, process planning, material flow
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02PCLIMATE CHANGE MITIGATION TECHNOLOGIES IN THE PRODUCTION OR PROCESSING OF GOODS
    • Y02P90/00Enabling technologies with a potential contribution to greenhouse gas [GHG] emissions mitigation
    • Y02P90/02Total factory control, e.g. smart factories, flexible manufacturing systems [FMS] or integrated manufacturing systems [IMS]

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Manufacturing & Machinery (AREA)
  • Quality & Reliability (AREA)
  • Automation & Control Theory (AREA)
  • Debugging And Monitoring (AREA)
  • General Factory Administration (AREA)
  • Multi-Process Working Machines And Systems (AREA)
  • Programmable Controllers (AREA)
  • Selective Calling Equipment (AREA)

Description

  • 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 4a4b 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 309333 ausgeführt, wohingegen die Blöcke 336366 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.:
    Figure 00100001
  • 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:
    Figure 00110001
  • 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.

Claims (10)

  1. Scheduling-Verfahren zur Steuerung der Ausführung von Prozessen, das die folgenden Schritte umfasst: Schätzen einer erwarteten Dauer eines Prozesses, Bestimmen eines Schwellenwertes durch Multiplizieren der erwarteten Dauer mit einem Multiplikationsfaktor, Ausführen des Prozesses, Erkennen einer Unregelmäßigkeit, wenn eine tatsächliche Dauer des Prozesses den Schwellenwert überschreitet, gekennzeichnet durch den folgenden Schritt: Bestimmen des Multiplikationsfaktors als abnehmende Funktion der erwarteten Dauer.
  2. Verfahren nach Anspruch 1, bei dem der Schritt des Bestimmens des Multiplikationsfaktors die Berechnung des Multiplikationsfaktors als lineare Funktion der erwarteten Dauer für mindestens einen Teil der Werte der erwarteten Dauer beinhaltet.
  3. Verfahren nach Anspruch 2, bei dem der Schritt des Berechnens des Multiplikationsfaktors Folgendes umfasst: Setzen eines ersten Niveaus des Multiplikationsfaktors, Setzen eines zweiten Niveaus des Multiplikationsfaktors, wobei das zweite Niveau niedriger als das erste Niveau ist, Setzen eines Wechselgrenzwertes der erwarteten Dauer, lineares Interpolieren des Multiplikationsfaktors zwischen dem ersten Niveau für die erwartete Dauer gleich null und dem zweiten Niveau für die erwartete Dauer gleich dem Wechselgrenzwert.
  4. Verfahren nach Anspruch 3, bei dem der Schritt des Berechnens des Multiplikationsfaktors des Weiteren das Setzen des Multiplikationsfaktors auf das zweite Niveau umfasst, wenn der Wert der erwarteten Dauer größer als der Wechselgrenzwert ist.
  5. Verfahren nach Anspruch 1, bei dem der Schritt des Bestimmens des Multiplikationsfaktors das Berechnen des Multiplikationsfaktors als Hyperbelfunktion der erwarteten Dauer beinhaltet.
  6. Verfahren nach Anspruch 5, bei dem der Schritt des Berechnens des Multiplikationsfaktors Folgendes beinhaltet: Setzen eines ersten Parameters, Setzen eines zweiten Parameters, Setzen eines dritten Parameters, Berechnen des Multiplikationsfaktors durch Dividieren des ersten Parameters durch die Summe aus dem zweiten Parameter plus dem Produkt aus drittem Parameter und erwarteter Dauer.
  7. Verfahren nach Anspruch 6, bei dem der dritte Parameter eine voreingestellte Konstante gleich 1 ist.
  8. Computerprogramm, das Programmcodemittel enthält, die zum Ausführen des Verfahrens nach einem der vorhergehenden Ansprüche angepasst sind, wenn das Programm auf einem Computer ausgeführt wird.
  9. Programmprodukt, das ein computerlesbares Medium umfasst, auf dem das Programm von Anspruch 8 gespeichert ist.
  10. Scheduling-System (100) zur Steuerung der Ausführung von Prozessen, das Mittel (235) zum Schätzen einer erwarteten Dauer eines Prozesses, Mittel (250) zum Bestimmen eines Schwellenwertes durch Multiplizieren der erwarteten Dauer mit einem Multiplikationsfaktor, Mittel (225) zum Ausführen des Prozesses sowie Mittel (255) zum Erkennen einer Unregelmäßigkeit beinhaltet, wenn eine tatsächliche Dauer des Prozesses den Schwellenwert überschreitet, dadurch gekennzeichnet, dass das System ferner Mittel (235, 240) zum Bestimmen des Multiplikationsfaktors als abnehmende Funktion der erwarteten Dauer beinhaltet.
DE60222259T 2001-06-29 2002-03-21 Scheduling-verfahren und -system zur steuerung der ausführung von prozessen Expired - Lifetime DE60222259T2 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
GBGB0115952.4A GB0115952D0 (en) 2001-06-29 2001-06-29 A scheduling method and system for controlling execution of processes
GB0115952 2001-06-29
PCT/EP2002/004290 WO2003005136A2 (en) 2001-06-29 2002-03-21 A scheduling method and system for controlling execution of processes

Publications (2)

Publication Number Publication Date
DE60222259D1 DE60222259D1 (de) 2007-10-18
DE60222259T2 true DE60222259T2 (de) 2008-05-29

Family

ID=9917628

Family Applications (1)

Application Number Title Priority Date Filing Date
DE60222259T Expired - Lifetime DE60222259T2 (de) 2001-06-29 2002-03-21 Scheduling-verfahren und -system zur steuerung der ausführung von prozessen

Country Status (8)

Country Link
US (1) US7512946B2 (de)
EP (1) EP1399785B1 (de)
JP (1) JP3828112B2 (de)
AT (1) ATE372535T1 (de)
AU (1) AU2002308150A1 (de)
DE (1) DE60222259T2 (de)
GB (1) GB0115952D0 (de)
WO (1) WO2003005136A2 (de)

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8041796B2 (en) * 2002-05-02 2011-10-18 Hewlett-Packard Development Company, L.P. Process duration control
US7441244B2 (en) * 2003-12-10 2008-10-21 International Business Machines Corporation Workload scheduler with cumulative weighting indexes
US7509336B2 (en) * 2004-12-17 2009-03-24 International Business Machines Corporation Workload periodcity analyzer for autonomic database components
ATE409905T1 (de) * 2005-04-21 2008-10-15 Ibm Verfahren und system zur arbeitslastplanung mit verbessertem schema zur aktualisierung der dauer einer geplanten arbeit
EP1715421B1 (de) * 2005-04-21 2008-10-01 International Business Machines Corporation Verfahren und System zur Arbeitslastplanung mit verbessertem Schema zur Aktualisierung der Dauer einer geplanten Arbeit
DE102005048037A1 (de) 2005-10-07 2007-04-12 Robert Bosch Gmbh Verfahren zur Steuerung/Regelung wenigstens einer Task
US8843221B2 (en) * 2009-12-09 2014-09-23 Comau Spa Automation management system and method
US9307048B2 (en) * 2010-12-28 2016-04-05 Microsoft Technology Licensing, Llc System and method for proactive task scheduling of a copy of outlier task in a computing environment
US9262216B2 (en) 2012-02-14 2016-02-16 Microsoft Technologies Licensing, LLC Computing cluster with latency control
CN105446801A (zh) * 2014-06-23 2016-03-30 阿里巴巴集团控股有限公司 分布式系统中的任务处理方法和装置
SI3012695T1 (en) 2014-10-23 2018-01-31 Comau S.P.A. System for monitoring and control of an industrial plant
US11573831B2 (en) * 2017-06-20 2023-02-07 International Business Machines Corporation Optimizing resource usage in distributed computing environments by dynamically adjusting resource unit size
IT201800005091A1 (it) 2018-05-04 2019-11-04 "Procedimento per monitorare lo stato di funzionamento di una stazione di lavorazione, relativo sistema di monitoraggio e prodotto informatico"
US10678590B1 (en) * 2019-12-02 2020-06-09 Capital One Services, Llc Batch process monitoring and alerting based on selection of buffer times
CN111413897B (zh) * 2020-03-18 2021-05-14 四川中微芯成科技有限公司 一种安全的任意切换芯片工作模式的方法和芯片

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4952927A (en) * 1987-08-05 1990-08-28 Motorola, Inc. Paging receiver with dynamically allocated display rate
EP0559348A3 (de) * 1992-03-02 1993-11-03 AT&T Corp. Rateurregelschleifenprozessor für einen wahrnehmungsgebundenen Koder/Dekoder
US5471564A (en) 1992-07-10 1995-11-28 Microsoft Corporation System and method for dynamic printer timeout
JP2826442B2 (ja) 1993-06-18 1998-11-18 株式会社エフ・エフ・シー 処理走行時間監視方法
JPH09244923A (ja) 1996-03-11 1997-09-19 Hitachi Ltd ウォッチドッグタイマを用いた異常監視装置
JP2000132428A (ja) 1998-10-21 2000-05-12 Toshiba Corp コンピュータシステム、コンピュータシステムのアプリケーション監視方法、及びプログラム記録媒体
US6618742B1 (en) * 2000-01-10 2003-09-09 Imagex.Com, Inc. Method for job impact learning
GB2376542B (en) * 2001-06-15 2005-06-29 Ibm A method and system for scheduling execution of activities

Also Published As

Publication number Publication date
WO2003005136A2 (en) 2003-01-16
ATE372535T1 (de) 2007-09-15
DE60222259D1 (de) 2007-10-18
GB0115952D0 (en) 2001-08-22
JP3828112B2 (ja) 2006-10-04
US20050192750A1 (en) 2005-09-01
US7512946B2 (en) 2009-03-31
JP2004538561A (ja) 2004-12-24
WO2003005136A3 (en) 2003-12-04
EP1399785B1 (de) 2007-09-05
EP1399785A2 (de) 2004-03-24
AU2002308150A1 (en) 2003-01-21

Similar Documents

Publication Publication Date Title
DE60222259T2 (de) Scheduling-verfahren und -system zur steuerung der ausführung von prozessen
DE60008267T2 (de) Verfahren zum planen von zeitverteilten anwendungen in einem rechnerbetriebssystem
DE60226176T2 (de) Verfahren und programme zur einstellung von prioritätsstufen in einem datenverarbeitungssystem mit multiprogrammierung und priorisierte warteschlangenbildung
EP1831786B1 (de) Verfahren zur verteilung von rechenzeit in einem rechnersystem
DE102007016060B4 (de) Computerarbeitslastneuverteilung
DE102010029209B4 (de) Verfahren zur dynamischen Verteilung von einem oder mehreren Diensten in einem Netz aus einer Vielzahl von Rechnern
DE60307532T2 (de) Paralleles Prozess-Ausführungsverfahren und Mehrprozessorenrechner
DE60318560T2 (de) Taskverwaltungseinrichtung und -verfahren , betriebsbeurteilungseinrichtung und verfahren und zu beurteilendes programm
DE60223143T2 (de) Bereichsgroessen-ablaufverfahren fuer die mehrfachbehandlung von vielen artikeln
DE10314148A1 (de) Verfahren und Vorrichtung zum Verteilten Steuern
EP1924913B1 (de) Steuerung eines zugriffs auf dienste und/oder ressourcen eines datenverarbeitungssystems
DE102013022564B4 (de) Aufrechterhalten der Bandbreiten-Servicequalität einer Hardware-Ressource über einen Hardware-Zähler
DE102018125090A1 (de) Verfahren zur Datenverarbeitung und speicherprogrammierbare Steuerung
DE2453526A1 (de) Verfahren zur regulierung der belastung einer elektronischen datenverarbeitungsanlage
EP1514180A2 (de) Reaktionszeit-beschränkung eines software-prozesses
DE102017130552B3 (de) Verfahren zur Datenverarbeitung und speicherprogrammierbare Steuerung
DE10110444A1 (de) Verfahren und Vorrichtung zum Ermitteln der Auslastung eines Rechengeräts
DE102011083468A1 (de) Schaltungsanordnung zur Ablaufplanung bei einer Datenverarbeitung
DE102013114451A1 (de) Verfahren zum Verteilen einer Prozessorlast auf Echtzeit-Prozessorthreads
EP2126700B1 (de) Steuerung des laufzeitverhaltens von prozessen
WO2007048675A1 (de) Verfahren zum implementieren von software-timern und datenverarbeitungssystem
DE102018205390A1 (de) Verfahren und Vorrichtung zur Fehlerbehandlung in einer Kommunikation zwischen verteilten Software Komponenten
Taylor What is the Impact of Labor Productivity on the Optimal Staffing Level?
EP3073375A1 (de) Verfahren zur ermittlung einer maximalen laufzeit für ein tasksystem
Kramer et al. Resource constrained project scheduling: Modelling with multiple alternatives

Legal Events

Date Code Title Description
8364 No opposition during term of opposition
8320 Willingness to grant licences declared (paragraph 23)