DE4007998A1 - Prozess-planungsverfahren und mehrfach-rechner - Google Patents

Prozess-planungsverfahren und mehrfach-rechner

Info

Publication number
DE4007998A1
DE4007998A1 DE4007998A DE4007998A DE4007998A1 DE 4007998 A1 DE4007998 A1 DE 4007998A1 DE 4007998 A DE4007998 A DE 4007998A DE 4007998 A DE4007998 A DE 4007998A DE 4007998 A1 DE4007998 A1 DE 4007998A1
Authority
DE
Germany
Prior art keywords
computer
computers
processes
memory
planning method
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.)
Withdrawn
Application number
DE4007998A
Other languages
English (en)
Inventor
Tomoaki Nakamura
Tadashi Kamiwaki
Shinichiro Yamaguchi
Hirokazu Kasashima
Shigenori Kaneko
Masahiko Saito
Yoshiki Kobayashi
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.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
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
Priority claimed from JP1060092A external-priority patent/JP3019317B2/ja
Priority claimed from JP6221689A external-priority patent/JPH02242434A/ja
Application filed by Hitachi Ltd filed Critical Hitachi Ltd
Publication of DE4007998A1 publication Critical patent/DE4007998A1/de
Withdrawn 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/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5066Algorithms for mapping a plurality of inter-dependent sub-tasks onto a plurality of physical CPUs

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Multi Processors (AREA)

Description

Die vorliegende Erfindung betrifft eine Einrichtung zum Betreiben eines Mehrfach-Rechners (multi-processor operating system), worin mehrere Prozesse parallel in einem Mehrfach- Rechner (multi-processor system) durchgeführt werden, der eine Anzahl von Rechnern (processors) aufweist; insbesondere be­ trifft die Erfindung ein Planungsverfahren, das zur Verwendung in jenem Fall geeignet ist, in welchem ein System mit hoher Geschwindigkeit und hoher Zuverlässigkeit errichtet werden soll, in jenem Fall, in welchem ein Programm, das für einen einzigen Rechner vorbereitet ist, in einem Mehrfach-Rechner verarbeitet werden soll, ohne daß man irgendeine Modifikation vornimmt, oder in jenem Fall, in welchem bereits ein Prozeß vorliegt, der eine Anweisung umfaßt, die nur durch einen spe­ ziellen Rechner ausgeführt werden kann.
Ein System, in welchem mehrere Rechner parallel durch Verwendung mehrerer Rechner laufen, um die Leistung des Systems zu verbessern, ist in der Technik als sog. Mehrfach- Rechner durchaus bekannt. Wie in der offengelegten japanischen Patentanmeldung Nr. 1 27 261/1981 gezeigt, umfaßt der Mehrfach- Rechner dieser Art mehrere Rechner, die miteinander verbunden sind und durch Sammelleitungen (bus lines) mit gemeinsamen Speichern verbunden sind. Ein Betriebssystem für einen Mehr­ fach-Rechner spielt beim effektiven Betreiben eines Mehrfach- Rechners eine bedeutende Rolle.
Bei dem Betriebssystem für den Mehrfach-Rechner ist es erforderlich, gleichlaufend mehrere Prozesse durch mehrere Rechner durchzuführen, was ein deutlicher Unterschied gegen­ über einem System mit einem einzigen Rechner ist. Dementspre­ chend ist es erforderlich, eine Einrichtung vorzusehen, um einen Rechner zu bestimmen, welchem ein spezieller Prozeß zu­ geordnet werden soll. Ein typische Vorgehensweise, um dies zu erreichen, ist es, den speziellen Prozeß einem Rechner zuzu­ ordnen, der eine nur minimale Belastung aufweist, so daß die Rechner mit maximalem Nutzungs-Wirkungsgrad betrieben werden. Diese Vorgehensweise ist in der Technik in weitem Umfang be­ nutzt, da sie mühelos realisiert werden kann. Dies liegt daran, daß es für einen Prozeßplaner eines Betriebssystems, das an einem individuellen Rechner arbeitet, einen nächsten, durchzuführenden Prozeß auf der Grundlage eines Prozeß-Vor­ ranges auszuwählen, wie es der Fall ist bei einem System mit einem Einzelrechner. Ein Rechner mit einer großen Belastung erfordert längere Zeit für die Durchführung eines Prozesses, was zu einer niedrigen Aktivierungsfrequenz des Prozeßplaners führt. Ein Prozeß mit einer verhältnismäßig geringen Belastung weist andererseits viele freie Arbeitszeit auf, für die der Rechner keinen Prozeß zum Aktivieren des Prozeßplaners auf­ weist, der auszuführen wäre, um zu entscheiden, ob der Rechner in seinen Leerlaufzustand versetzt werden soll oder nicht. Dementsprechend werden einem Rechner mit leichter Belastung mehr Chancen für die Prozeßplanung gegeben, und somit wird der Unterschied in der Belastung zwischen den Rechnern automatisch verringert.
Eine solche Vorgehensweise, den Prozeß einem Rechner zuzuordnen, wie sie oben beschrieben ist, ist sinnvoll für einen Mehrfach-Rechner, der funtionsmäßig gleichartige Rech­ ner aufweist, welche dieselbe Funktion aufweisen. In jenem Fall jedoch, in dem ein Mehrfach-Rechner nur aus solchen Rech­ nern errichtet werden soll, die denselben Aufbau aufweisen, besteht dahingehend das Problem, daß, wenn es gewünscht ist, spezielle Rechner mit einer teilweise verbesserten Funktion, wie etwa einen Vektorrechner, einen Rechner für AI-Prozesse oder dgl. in den Rechner mit aufzunehmen, es unmöglich ist, lediglich einen Rechner zu ändern, d. h. es ist erforderlich, alle Rechner in neue umzuwechseln.
Für einen Mehrfach-Rechner, in welchem eine Vielzahl von Einzelrechnern mit unterschiedlichen Funktionen enthalten sind, wurden andere Vorgehensweisen vorgeschlagen, um den Prozeß einem Rechner zuzuordnen, wie dies in den offengeleg­ ten japanischen Patentanmeldungen Nr. 1 23 552/1987 und 1 23 553/1987 offenbart ist. Der Begriff ("Arbeit") ("task"), auf den in diesem Stand der Technik Bezug genommen wird, ent­ spricht dem "Prozeß" oder der "Arbeit", worauf in dieser Be­ schreibung Bezug genommen ist, und durch diese Ausdrücke ist derselbe Begriff gemeint. Wenn es gemäß diesem Stand der Tech­ nik gewünscht wird, einen Prozeß unter Nutzung einer Anweisung auszuführen, die eigentümlich ist für einen Gleitkomma-Accele­ rator (floating-point accelerator), und zwar durch einen Rech­ ner, der keinen Gleitkomma-Accelerator aufweist, dann dient ein Betriebssystem dazu, einen außergewöhnlichen Zustand zu ermitteln und die Ausführung des Prozesses auf einen solchen Rechner umzuschalten, der einen Gleitkomma-Accelerator auf­ weist, während man auf eine Steuertabelle für den ersetzten Rechner zurückgreift. Dieser Prozeß zeigt ein Beispiel eines Prozeß-Zuweisungssystems für ein System aus vielen funktionell ungleichen Rechnern. Diese Vorgehensweise ist dahingehend von Vorteil, daß es für einen Programmierer nicht erforderlich ist, auf die Tatsache zu achten, daß das System ein Mehrfach- Rechner aus mehreren der Funktion nach ungleichen Einzelrech­ nern ist.
In einem ungleichmäßigen Mehrfach-Rechner, bei welchem die oben erwähnte Vorgehensweise nicht angewandt wird, gibt es ein System, bei welchem eine Wartereihe, die zu bearbeitende Aufgaben enthält, für jeden der Rechner vorgesehen ist. Vor der Durchführung einer Aufgabe ist es in diesem Fall für einen Benutzer oder ein Betriebssystem erforderlich, zu entscheiden, welcher Rechner die Aufgaben durchführen sollte, und die Auf­ gabe in die Wartereihe jenes Rechners einzureihen, wie oben beschrieben. Dies hat jedoch jenen Nachteil, daß in jenem Fall, in welchem das System mehrere Rechner mit dem gleichen Aufbau aufweist, Belastungen in das System gelangen können, so daß es unmöglich ist, nur einen Rechner auszuwechseln, d. h. es ist erforderlich, alle Rechner durch neue zu ersetzen.
Für einen Mehrfach-Rechner, in welchem mehrere Rechner mit unterschiedlichen Funktionen enthalten sind, wurden auch andere Vorgehensweisen vorgeschlagen, um den Prozeß einem Rechner zuzuordnen, wie in den offengelegten japanischen Patentanmeldungen Nr. 1 23 552/1987 und 1 23 553/1987 offenbart. Der Begriff "Arbeit", auf den in diesem Stand der Technik Be­ zug genommen wird, entspricht "Prozeß" oder "Arbeit", worauf in dieser Beschreibung Bezug genommen wird, und durch diese Begriffe ist derselbe Gegenstand gemeint. Gemäß diesem Stand der Technik dient dann, wenn es gewünscht ist, einen Prozeß durchzuführen, der eine Anweisung benutzt, die eigentümlich ist für einen Gleitkomma-Accelerator, und zwar durch einen solchen Rechner, der keinen Gleitkomma-Accelerator aufweist, ein Betriebssystem dazu, einen außergewöhnlichen Zustand zu ermitteln und die Ausführung des Prozesses auf einen solchen Rechner umzuschalten, der einen Gleitkomma-Accelerator auf­ weist, während man auf eine Kontrolltabelle für den ersetz­ ten Rechner zurückgreift. Dieser Prozeß zeigt ein Beispiel eines Prozeß-Zuordnungssystemes für einen Mehrfach-Rechner mit funktionell ungleichmäßigen Rechnern. Diese Vorgehensweise ist dahingehend von Vorteil, daß es für einen Programmierer nicht erforderlich ist, auf die Tatsache zu achten, daß das System ein Mehrfach-Rechner mit funktionell ungleichmäßigen Rechnern ist.
In einem ungleichmäßigen Mehrfach-Rechner, in welchem die oben erwähnte Vorgehensweise nicht herangezogen wird, gibt es ein System, in welchem für jeden der Rechner eine Wartereihe vorgesehen ist, die die zu bearbeitenden Arbeiten enthält. Bevor man in diesem Fall eine Arbeit ausführt, ist es für einen Benutzer oder ein Betriebssystem erforderlich, zu ent­ scheiden, welcher Rechner die Arbeit durchführen sollte, und die Arbeit in die Wartereihe jenes Rechners einzureihen, wie oben beschrieben. Dies jedoch hat jenen Nachteil, daß in dem Fall, in welchem das System auch eine Anzahl von Rechnern mit demselben Aufbau aufweist, die Belastungen zwischen den Rech­ nern unausgeglichen werden können.
Die offengelegte japanische Patentanmeldung Nr. 2 08 157/1987 offenbart ein Verfahren, welches nicht ein Planungsver­ fahren ist, sondern ein Programm-Ausführverfahren für ein Com­ putersystem, das aus mehreren Computern mit teilweise unter­ schiedlichen Anweisungssätzen besteht. Dieses Verfahren be­ nutzt einen Compilierer (Compiler), um Objektcodes zu erzeu­ gen, die an jedem Computer ausgeführt werden können. D. h., der Compilierer dient dazu, ein Programm zu analysieren und es in zwei Teile aufzuteilen: eines das durch eine allgemeine An­ weisung zwischen den Rechnern ausgeführt werden kann, und das andere, das durch die allgemeine Anweisung nicht ausgeführt werden kann. Im Hinblick auf jenen Teil, der allgemein ausge­ führt werden kann, wird ein einziger Satz von Objektcodes aus­ gegeben, während im Hinblick auf den Teil, der nicht allge­ mein ausgeführt werden kann, mehrere Sätze von Objektcodes entsprechend den Arten der Rechner ausgegeben werden. Der Com­ pilierer dient dazu, ein Programm zum Aufzweigen auf Objekt­ codes entsprechend der Art des Rechners, der gerade läuft, einzusetzen, und zwar unmittelbar vor jenem Teil, der nicht ausgeführt werden kann. Dieser Prozeß hat jedoch den Fehler, daß das Volumen der Objektcodes vergrößert wird, und daß es erforderlich ist, neuerdings den Compilierer vorzubereiten.
Der in den o. g. offengelegten japanischen Patentanmel­ dungen Nr. 1 23 552/1987 und 1 23 553/1987 offenbarte Mehrfach- Rechner ist dazu eingerichtet, das Auftreten des außergewöhn­ lichen Zustandes zu benutzen, um mit dem ungleichmäßigen Mehr­ fach-Rechner zurechtzukommen, aber die Probleme in einem Mehr­ fach-Rechner mit gleichartigen Rechnern, wie sie nachfolgend beschrieben werden, können nicht gelöst werden.
In einem Echtzeit-System, wie einer chemischen Anlage, einem Verkehrssystem, einer Regelung für elektrischen Strom oder dgl. wird vorher in das System ein empfindliches Rück­ gewinnungsprogramm als Maßnahme gegen einen Fehler in Abhän­ gigkeit von der angestrebten Zuverlässigkeit eingebaut. Insbe­ sondere wird der Fehler eines Rechners, der einen ernsten Ein­ fluß auf ein System ausübt, streng überwacht. Ein Grundkon­ zept, um die Zuverlässigkeit eines solchen Systems sicherzu­ stellen, ist es, den Einflußbereich des Fehlers zu lokalisie­ ren. Bei dem oben beschriebenen herkömmlichen Mehrfach-Rechner wurde jedoch eine solche Sache nicht stets in Betracht gezo­ gen.
Selbst bei einem Mehrfach-Rechner ist es erwünscht, eine vorliegende Software zu benutzen, die für die Verwendung in einem Einzel-Rechner entwickelt wurde, ohne daß diese irgend­ welche Anpassung erfordert. Unter den Umständen der Mehrfach- Programmierung kann es beim Zugriff zu gemeinsamen Daten zwi­ schen mehreren Prozessen zu einer Konkurrenzsituation kommen, wie in der Technik bekannt ist. Um dieses Problem zu lösen, ist es im allgemeinen notwendig, zum Zeitpunkt des Zugangs zu den allgemeinen Daten eine Exlusivregelung beispielsweise durch einen Signal- bzw. Zuweisemechanismus (semaphore mechanism) zu bewirken. Es tritt jedoch im Hinblick auf den Betrieb oberhalb und vor dem Signalmechanismus ein Problem auf, wobei häufig Mittel vorgesehen waren, um einen Vorrang des Prozesses zu veranlassen, um gleichmäßig zu sein oder um eine Unterbrechung zu behindern, indem man eine Unterbre­ chungsmaske für einen Rechner modifiziert, der eine kürzere Verarbeitungszeit aufweist als jene des Signalmechanismus. Diese Anordnungen beruhen auf der Tatsache, daß, vom mikrosko­ pischen Blickpunkt aus gesehen, ein einziger Rechner notwendi­ gerweise einen Prozeß als eine Folge von Vorgängen ausführt. Tatsächlich umfassen viele Softwares keine Einrichtungen, um die Exklusivsteuerung gemeinsamer Daten zu bewirken. Dement­ sprechend ist, wenn eine vorliegende Software, so wie sie ist, in einem Mehrfach-Rechner verarbeitet wird, ein Normalbetrieb nicht notwendigerweise sichergestellt.
Es liegt auch ein Problem in der Architektur eines Systems. D. h., zum Zeitpunkt des Starts eines Mehrfach-Rech­ ners ist es erforderlich, die Bearbeitung eines Systemelements (resource) auszuführen, welches nur in einem einzigen System vorliegt, beispielsweise die Ingangsetzung eines gemeinsamen Speichers, das Eingeben eines Programms für das Betriebssystem oder dgl. Wenn eine solche Verarbeitung durch mehrere Rechner ausgeführt wird, dann die Verarbeitung unnötig kompli­ ziert. Es wird dementsprechend notwendig, Schritte vorzuneh­ men, die Bearbeitung vorher durch nur einen einzigen Rechner auszuführen und dann die anderen Rechner zu starten, um ein für den Rechner eigentümliches Systemelement in Gang zu set­ zen. Ein ähnlicher Umstand liegt auch zum Zeitpunkt des Anhal­ tens des Systems vor. Der Vorgang beim Anhalten eines einzel­ nen Rechners kann den Zugang zu einem Hardware-Systemelement, etwa einem Register, erfordern, das nur für den genannten Rechner zugänglich ist.
Bei einem Mehrfach-Rechner war es herkömmliche Praxis, jeden einzelnen Rechner mit einem Pufferspeicher zu versehen, damit der Rechner seine maximale Leistung aufweist. Wenn jedoch eine Änderung eines arbeitenden Rechners während der Ausführung eines Prozesses stattfindet ("Prozeßverschiebung" (process migration) genannt), dann wird es unmöglich, auf den Pufferspeicher zurückzugreifen, der unmittelbar vorher be­ nutzt wurde, was dazu führt, daß ein Fehltreffer (mis-hit) eines Pufferspeichers in dem neuerlich betriebenen Rechner auftritt. Ferner wird es erforderlich, die Ungültigmachung (invalidation) des Pufferspeichers auszuführen, der unmittel­ bar vorher betrieben wurde. Dementsprechend wird, verglichen mit jenem Fall, in dem die Verarbeitung durch einen Einzel­ rechner ausgeführt wird, die Bearbeitung durch einen Mehrfach- Rechner dazu führen, daß die Leistung im Zusammenhang mit dem Prozeß ziemlich abnimmt.
Zusätzlich offenbart die offengelegte japanische Patent­ anmeldung Nr. 2 51 867/1987 einen Mehrfach-Rechner, in welchem ein selbst in einem Hauptspeicher gespeichertes Programm Rechner-Identifizierungscodes aufweist, die für eine Einheit eines Anweisungscodes gelten, und jedesmal, wenn der Anwei­ sungscode aus dem Speicher abgelesen wird, wird der Rechner zum Ausführen dieser Anweisung entsprechend dem Rechner-Iden­ tifizierungscode bestimmt. Dieser Mehrfach-Rechner erfordert die Modifizierung des Programms, in dem der Rechner-Identifi­ zierungscode jeder der Anweisungen des Programms hinzugefügt wird. Das bedeutet, daß es unmöglich ist, eine vorliegende Software so zu benutzen, wie sie ist. Ferner ist es notwendig, die Hardware wie etwa die Wortlänge des Hauptspeichers, einen Anweisungsdecoder usw. zu modifizieren. Es wird ferner ver­ merkt, daß es unmöglich ist, eine dynamische Änderung des Rechner-Identifizierungscodes vorzunehmen und es schwierig ist, die Anzahl von Rechnern usw. zu ändern.
Angesichts des Vorangehenden ist es ein Ziel der vorlie­ genden Erfindung, ein Prozeß-Planungsverfahren, einen Mehr­ fach-Rechner und ein Verfahren vorzusehen, um diesen zu be­ nutzen, wobei ein spezieller Prozeß sicher vom vorbestimmten Rechner nicht nur in einem funktionell gleichartigen Mehr­ fach-Rechner, sondern auch in einem funktionell ungleicharti­ gen Mehrfach-Rechner durchgeführt werden kann.
Es ist ein anderes Ziel der vorliegenden Erfindung, ein Prozeß-Planungsverfahren, einen Mehrfach-Rechner und ein Ver­ fahren zu dessen Benutzung vorzusehen, wobei die vorliegende Software für einen Einzel-Rechner ohne jede Modifizierung ver­ wendet werden kann.
Es ist ein noch weiteres Ziel der vorliegenden Erfindung, ein Prozeß-Planungsverfahren und einen Mehrfach-Rechner vorzu­ sehen, in welchem mehrere Rechner wirksam benutzt werden kön­ nen, während man die System-Verschiebung (system migration) verhindert.
Es ist ein weiteres Ziel der vorliegenden Erfindung, ein Planungsverfahren vorzusehen, welches in einem Mehrfach-Rech­ ner wirksam die Prozesse den einzelnen Rechnern zuordnet, wobei dieser unterschiedliche Rechner aufweist, die voll oder teilweise unterschiedliche Anweisungssätze aufweisen, ohne daß man einen Compilator verwendet, um eine Anzahl von Objektcode- Sätzen zu erzeugen.
Es ist ein noch weiteres Ziel der vorliegenden Erfindung, ein Prozeß-Planungsverfahren vorzusehen, bei welchem ein Rech­ ner, der imstande ist, bestimmte Prozesse rasch auszuführen, bevorzugt solchen Prozessen in einem Mehrfach-Rechner zuge­ ordnet werden kann, der solche Rechner wie etwa Vektorrechner aufweist, die imstande sind, einen bestimmten Prozeß rasch auszuführen, und andere Rechner, die diesen Prozeß weniger rasch ausführen.
Es ist ein noch anderes Ziel der vorliegenden Erfindung, ein Prozeß-Planungsverfahren vorzusehen, bei welchem ein Rech­ ner, der imstande ist, bestimmte Prozesse rasch auszuführen, bevorzugt solchen Prozessen zugewiesen werden kann, und ein Rechner, der nicht imstande ist, bestimmte Prozesse auszufüh­ ren, einem solchen Prozeß nicht zugeordnet werden kann.
In einem Mehrfach-Rechner, der mehrere Rechner und einen gemeinsamen Speicher aufweist, in den sich die Anzahl von Rechnern teilt, um Programm und Daten abzuspeichern, ist ein Prozeß-Planungsverfahren gemäß der vorliegenden Erfindung vor­ gesehen, bei welchem ein Prozeßplaner jeden der Rechner jedem der Prozesse zuordnet, mit den folgenden Schritten:
  • - Vorsehen einer Prozeßführungstabelle (process manage­ ment table) zum Leiten eines jeden Prozesses,
  • - Einbringen einer Rechner-Zuordnungsinformation für jeden der Prozesse in die Prozeßführungstabelle, wobei die Rechner-Zuordnungsinformation einen Rechner bezeichnet, dem es gestattet ist, jeden der Prozesse auszuführen,
  • - Betreiben des Prozeßplaners (process scheduler), um Bezug auf die Prozeßführungstabelle für einen Prozeß zu neh­ men, der für die nächste Durchführung ausgewählt ist, und
  • - Ausführen des Prozesses durch jenen Rechner, der diesem aufgrund der Prozeßführungsinformation für den Prozeß zuge­ teilt ist.
Gemäß einem anderen Gesichtspunkt der vorliegenden Erfin­ dung ist ein Prozeß-Planungsverfahren vorgesehen, um jeden der Rechner jedem Prozeß in einem Mehrfach-Rechner zuzuteilen, der eine Anzahl von Rechnern und einen gemeinsamen Speicher auf­ weist, in den sich die Rechner teilen, mit den folgenden Schritten:
  • - Abspeichern der Rechner-Zuteilungsinformation im ge­ meinsamen Speicher, um einen solchen Rechner zu bezeichnen, dem es gestattet ist, den Prozeß für jeden der Prozesse aus­ zuführen,
  • - Herstellen eines Rückgriffs auf die Rechner-Zuteilungs­ information für den Prozeß, wenn man den zur Ausführung anste­ henden Prozeß dem Rechner zuordnet, und
  • - Bestimmen, ob die Zuordnung des Prozesses zum Rechner in Abhängigkeit von der Rechner-Zuordnungsinformation zu­ lässig ist oder nicht.
Es kann gemäß einer anderen Lösung die Rechner-Zutei­ lungsinformation zum Bezeichnen eines Rechners, dem es ge­ stattet ist, einen Prozeß für jeden der Prozesse auszuführen, durch die Prozeß-Zuteilungsinformation zum Bezeichnen eines Prozesses ersetzt werden, dem es gestattet ist, von dem Rech­ ner für jeden der Rechner ausgeführt zu werden.
Gemäß einem weiteren Gesichtspunkt der vorliegenden Erfin­ dung ist ein Prozeß-Planungsverfahren vorgesehen, welches die folgenden Schritte aufweist:
  • - eine Vorab-Zuordnung zwischen jedem der Prozesse und jedem der Rechner, dem es gestattet ist, die zugeordneten Prozesse auszuführen, und
  • - Bestimmen, welche Zuordnung eines freien Rechners zu einem Prozeß auf der Grundlage der vorherigen Zuordnung zu­ lässig ist, wenn man einen freien Rechner einem zur Ausführung anstehenden Prozeß zuteilt.
Die Rechner-Zuteilungsinformation kann einen Code für einen allgemeinen Zweck umfassen, um anzuzeigen, daß es dem Prozeß gestattet ist, von jedem der Rechner ausgeführt zu wer­ den, oder irgendeinen anderen Code, um anzuzeigen, daß es dem Prozeß gestattet ist, von anderen Rechnern als einem speziel­ len Rechner ausgeführt zu werden.
Die Rechner-Zuteilungsinformation kann auch dieselbe An­ zahl von Merkern (flags) wie jene der Arten von Rechnern um­ fassen (beispielsweise ein Bit für jede Art von Rechner), die im System für jeden Prozeß enthalten sind. Jede der Anzahl von Merkern für jeden Prozeß entspricht jedem der Rechnertypen, so daß er anzeigt, ob der Prozeß durch diese Art eines Rechners ausführbar ist oder nicht. Die Prozesse, die zur Ausführung anstehen, sind in einer Wartereihe angeordnet, die von jedem Rechner her zugänglich ist. Die einzelnen Rechner, die gerade leerlaufen oder für die erneute Planung bereit sind, suchen die Merker der Prozesse in der Wartereihe ab, wobei sie mit deren obersten Abschnitt beginnen, und greifen zur Ausführung jenen Prozeß auf, der von diesem Rechner selbst ausgeführt werden kann. Dies räumt die ungleichmäßige Verteilung der Last unter derselben Art von Rechnern aus.
Ferner kann jeder der Prozesse mit einer Vorrang-Infor­ mationstabelle (priority information table) versehen sein. Diese Tabelle hat eine Ganzzahlanordnung einer Größe, die der Zahl von Arten der Rechner entspricht, die im System enthalten sind. Jede ganze Zahl der Anordnung entspricht jeder Art von Rechner und bezeichnet den Vorrang, den der Prozeß für diese Art Rechner hat. In diesem Zusammenhang wird ein Prozeß mit höherem Vorrang jenem Rechner zugeteilt, der den Prozeß rasch ausführen kann. Wenn ein vorbestimmter Mindestvorrang zuge­ teilt wird, dann ist der Prozeß durch die zugeordnete Art Rechner nicht durchführbar. Der Prozeß mit der oben erwähnten Tabelle ist, wenn er zur Ausführung bereit ist, in der Warte­ reihe angeordnet, die von jedem Rechner her zugänglich ist. Die einzelnen Rechner, die gerade leerlaufen oder zur Planung frei sind, suchen die Prozesse in der Wartereihe ab und grei­ fen den Prozeß zur Ausführung heraus, der den höchsten Vorrang aufweist unter den Prozessen, die vom Rechner ausgeführt wer­ den können.
Gemäß dem Planungsverfahren der vorliegenden Erfindung wird die Zuteilung von den Rechnern auf die Prozesse in einem Mehrfach-Rechner wirksam erreicht, der solche Rechner auf­ weist, die imstande sind, einen bestimmten Prozeß rasch aus­ zuführen, oder Rechner mit unterschiedlichen Anweisungsgrup­ pen.
Es ist aus dem Vorangehenden ersichtlich, daß gemäß dem Planungsverfahren für einen Mehrfach-Rechner, der eine Anzahl von Rechnern aufweist, zusätzlich zur Zuteilung jenes Pro­ zesses, der nur durch einen speziellen Rechner ausgeführt wer­ den kann, zu diesem Rechner auch die Zuteilung des Prozesses, der durch jeden aus der Anzahl der Rechner ausführbar ist, auf einen speziellen, von diesen ausgewählten Rechner begrenzt werden kann.
Somit wird gemäß einer solchen Anordnung ein bezeichnen­ der Vorteil erreicht, wonach es möglich ist, vom selben Rech­ ner eine Gruppe von Prozessen durchzuführen, die die Exklusiv­ steuerung hiervon erfordert, wobei eine normale Ausführung selbst dann möglich ist, wenn man vorliegende Prozesse be­ nutzt, die für herkömmliche Einzelrechner eingerichtet sind, bei welchen keine Exklusivsteuerung für den gemeinsamen Spei­ cher in Betracht gezogen ist, und zwar ohne deren Modifizie­ rung. Dies bedeutet nicht, daß keine Verwendung anderer Rech­ ner in Betracht gezogen wird, aber der andere Rechner als die genannte Gruppe von Rechnern ist durch jeden der Rechner (oder andere als die spezifizierten Rechner) ohne irgendeine Ein­ schränkung ausführbar, wobei die wirksame Nutzung der Funktio­ nen des Mehrfach-Rechners ermöglicht wird.
Gemäß der vorliegenden Erfindung wird ein noch anderer Vorteil dahingehend erreicht, daß der Rechner zur Ausführung eines Programms beschränkt ist, und zwar auf der Grundlage des Zuverlässigkeitsranges für das Programm, so daß ein Fehler des Rechners, der für Rechner-unabhängige Prozesse (off-line pro­ cessing) verantwortlich ist, wie etwa die Entwicklung eines Programms, das keine höhere Zuverlässigkeit erfordert, nicht zu einem Systemzusammenbruch führen kann. In anderen Worten, die Lokalisierung von Fehlern des Systems kann realisiert wer­ den.
Wenn ferner der Mehrfach-Rechner danach trachtet, eine Software zu betreiben, die eine Gruppe von Programmen umfaßt, bei denen keine normale Exklusivsteuerung bewirkt ist, ist es möglich, die normale Wirkung des Systems ohne Modifizierung der Programme sicherzustellen, indem man einfach die Gruppe von Programmen durch nur spezielle Rechner betreibt.
Das Verfahren des Zuteilens des speziellen Rechners weist zusätzlich zu der ständigen und festliegenden Zuteilung des Rechners eine Zuteilung auf, durch welche ein spezieller Rech­ ner in dem Zeitraum vom Anfang bis zum Ende der Durchführung eines einzigen Prozesses betrieben wird und selbst infolge der Unterbrechung oder der Wiederaufnahme des Prozesses nicht er­ setzt werden kann. Mit anderen Worten, gemäß dieses Zutei­ lungsverfahrens zum zeitweisen Festlegen des Rechners kann, weil die Ausführung des Prozesses in Gang gesetzt ist, der Rechner, der den Prozeß ausführt, nicht durch einen anderen Rechner inmitten der Ausführung ersetzt werden, so daß es mög­ lich ist, die Pufferspeicher-Störsignalmenge (cache hit rate) des Systems abzusenken, das den Pufferspeicher verwendet. Da andererseits diese Zuteilungsmethode nicht ständig den Rech­ ner für die Ausführung festlegt, ist die wirksame Nutzung meh­ rerer Rechner nicht nennenswert behindert.
Das Zuteilungsverfahren zum ständigen Festlegen eines speziellen Rechners oder zum zeitweisen Festlegen (dynamische Änderung) eines Prozesses umfaßt verschiedenartige Methoden, wie etwa das Einführen einer Kontroll-Betriebsart, wie oben erwähnt, eine Beschränkung des Vorrangbereichs für einen Pro­ zeß, der durch jeden Rechner ausführbar ist, ein Festsetzen des Vorrangs eines jeden Prozesses für jeden der Rechner, ein Einführen eines Affinitätskonzepts zwischen Rechner und Prozeß u. dgl., die in Abhängigkeit von deren Anwendung benutzt wer­ den.
Nun wird die vorliegende Erfindung in Bezugnahme auf die beigefügten Zeichnungen beschrieben, in welchen:
Fig. 1(a) und (b) eine Systemausbildung eines Mehrfach- Rechners gemäß einem Ausführungsbeispiel der Erfindung zeigen,
Fig. 2 ein Flußdiagramm ist, das die Wirkungsweise eines Prozeßplaners gemäß einem Ausführungsbeispiel der Erfindung darstellt,
Fig. 3 ein Flußdiagramm ist, das die Erzeugung des Pro­ zesses gemäß der vorliegenden Erfindung darstellt,
Fig. 4 ein Flußdiagramm ist, das die Einstelltätigkeit des Betriebsrechners darstellt, wie er in einem Abschnitt der Fig. 3 gezeigt ist,
Fig. 5 ein Flußdiagramm ist, das die Ausführung des Pro­ zesses gemäß der vorliegenden Erfindung darstellt,
Fig. 6 ein Flußdiagramm ist, das die Beendigung des Pro­ zesses gemäß der vorliegenden Erfindung zeigt,
Fig. 7 ein tatsächliches Ausführungsbeispiel zeigt, für welches die Systemausbildung der Fig. 1 benutzt wurde,
Fig. 8 ein anderes Ausführungsbeispiel zeigt, für welches die Systemausbildung der Fig. 1 benutzt wurde,
Fig. 9 und 10 ein spezielles System erläutern, das gemäß der vorliegenden Erfindung aufgebaut ist,
Fig. 11 eine andere Systemausbildung gemäß dem zweiten Ausführungsbeispiel der vorliegenden Erfindung zeigt,
Fig. 12(a) und (b) Flußdiagramme sind, die die Wirkungs­ weise des Prozeßplaners gemäß dem zweiten Ausführungsbeispiel der vorliegenden Erfindung darstellen,
Fig. 13 eine weitere Systemausbildung gemäß einem dritten Ausführungsbeispiel der vorliegenden Erfindung zeigt,
Fig. 14 ein Flußdiagramm ist, das die Wirkungsweise des Prozeßplaners gemäß dem dritten Ausführungsbeispiel der vor­ liegenden Erfindung darstellt,
Fig. 15 eine Prozeßführungstabelle zeigt, die gemäß einem vierten Ausführungsbeispiel der vorliegenden Erfindung aufge­ baut ist,
Fig. 16 ein Flußdiagramm ist, das die Wirkungsweise des Prozeßplaners nach dem vierten Ausführungsbeispiel darstellt,
Fig. 17 bis 19 das fünfte Ausführungsbeispiel gemäß der vorliegenden Erfindung erläutern,
Fig. 20 das sechste Ausführungsbeispiel gemäß der vor­ liegenden Erfindung zeigt,
Fig. 21 die Zuordnung zwischen den Rechenarten und den Rechenart-Identifizierern im System zeigt,
Fig. 22 ein Flußdiagramm ist, das die Planungsanordnung darstellt, die bei dem Ausführungsbeispiel verwendet wird, wie es in Fig. 20 gezeigt ist,
Fig. 23 Zeitablaufdiagramme zeigt, die die Wirkungsweise des Ausführungsbeispiels darstellen, wie es in Fig. 20 gezeigt ist,
Fig. 24 eine Anordnung der Aufgabentabelle zeigt, wie sie in Fig. 20 gezeigt ist,
Fig. 25, 26 und 27 das siebte Ausführungsbeispiel gemäß der vorliegenden Erfindung, ein Flußdiagramm, das die benutzte Planungseinrichtung darstellt, bzw. ein Zeitablaufdiagramm zeigen, das die Wirkungsweise hiervon darstellt,
Fig. 28, 29 und 30 ein achtes Ausführungsbeispiel gemäß der vorliegenden Erfindung, ein Flußdiagramm, das den benutz­ ten Planer darstellt, bzw. eine Anordnung der Arbeiten-Tabelle zeigen,
Fig. 31 und 32 das neunte Ausführungsbeispiel gemäß der vorliegenden Erfindung, bzw. ein Strömungsdiagramm zeigen, das den benutzten Planer darstellt,
Fig. 33 und 34 ein weiteres Ausführungsbeispiel zeigen, das gemäß der vorliegenden Erfindung aufgebaut ist, wobei jeder der Rechner einen örtlichen Speicher aufweist und in Form eines Netzwerkes verschaltet ist,
Fig. 35 ein weiteres Ausführungsbeispiel gemäß der vor­ liegenden Erfindung zeigt, wobei die Rechner jeweils örtliche Speicher aufweisen, die so angeordnet sind, daß sie als ein einziger virtueller Speicher zugänglich sind, und die Fig. 36 und 37 die Zuordnung zwischen dem logi­ schen Raum und dem physikalischen Raum zeigen, wie sie im Aus­ führungsbeispiel der Fig. 35 gezeigt sind, sowie eine Adres­ sen-Umwandlungstabelle für die Zuordnung der beiden Räume.
Es erfolgt nun die Beschreibung bevorzugter Ausführungs­ beispiele der Erfindung.
Fig. 1(a) zeigt ein Ausführungsbeispiel der Systemausbil­ dung, die in Übereinstimmung mit der vorliegenden Erfindung aufgebaut ist und in welcher drei Rechner P 1, P 2 und P 3 durch eine Verbindungs-Sammelleitung 4 miteinander sowie mit einem gemeinsamen Speicher 5 verbunden sind. Die Rechner P 1, P 2 und P 3 haben Einrichtungen 11-1, 11-2 und 11-3, um jeweils die Rechnernummern zu definieren. Beim vorliegenden Ausführungs­ beispiel sind die Rechner P 1, P 2 und P 3 mit den Rechnernummern ′1′, ′2′ bzw. ′3′ versehen. Diese Rechnernummern sind gemäß diesem Ausführungsbeispiel durch einen Hardware-Schalter vor­ gesehen. Es ist gemäß einer anderen Ausführungsform aber auch möglich, die Rechnernummern auf eine solche Weise zuzuteilen, daß sie in einem Hardware-Festspeicher von vorneherein gespei­ chert sind, oder daß deren Einstellung bzw. Festsetzung durch ein Programm beim Einschalten des Systems durchgeführt wird.
Die Rechner sind so angeordnet, daß sie die jeweiligen Prozesse durchführen. Der gemeinsame Speicher 5 speichert ein Betriebssystem 31, einen Prozeßplaner 311, der ein Teil des Programms 31 ist, und eine Prozeßführungstabelle 32 (32-1 bis 32-3), die ein Abschnitt einer Tabelle ist, die unter dem Be­ triebssystemprogramm 31 überwacht wird. Die Prozeßführungs­ tabelle 32 hat zusätzlich zum Vorrang (nicht gezeigt) des Pro­ zesses oder dgl. einen Rechner-Identifizierer 321 (321-1 bis 321-3) gemäß der vorliegenden Erfindung sowie eine Rechner- Steuerbetriebsart 322 (322-1 bis 322-3), welche die dynamische Änderung oder den festliegenden Zeitraum des Rechner-Identifi­ zierers steuert.
Es muß vermerkt werden, daß, obwohl das hier offenbarte Ausführungsbeispiel die vorliegende Prozeßführungstabelle 32 benutzt, wie oben erwähnt, auch diskrete Tabellen verwendet werden können, in welchen die Prozeßidentifizierer zum Identi­ fizieren ausführbarer Prozesse für jeden der Rechner indivi­ duell gespeichert sind.
Fig. 1(a) zeigt jenen Fall, in welchem ein Prozeß 1 durch den Rechner P 3, ein Prozeß 2 durch den Rechner P 1 und ein Pro­ zeß 3 durch den Rechner P 2 ausgeführt wird. In Fig. 1 sind die Prozesse innerhalb der jeweiligen Rechnerblöcke gezeigt, um zu beschreiben, daß diese Prozesse gerade in den speziellen, die­ sen zugeordneten Rechnern ausgeführt werden; der Zweck ist le­ diglich die bessere Darstellung, und die Zeichnung zeigt nicht die tatsächliche Lage der ausgeführten Prozesse. Bei diesem Ausführungsbeispiel wird, weil der Rechner-Identifizierer 321-2 für den Prozeß 2 die Rechnernummer ′1′ aufweist, der Prozeß 2 durch den Rechner P 1 ausgeführt. Bei dieser Addition ist, weil der Rechner-Identifizierer 321-1 für den Prozeß 1 die Nummer ′-2′ aufweist, der Prozeß 1 auch durch andere Rech­ ner als den Rechner 2 ausführbar. Da die Rechner 2 und 3 zu diesem Zeitpunkt bereitgestellt sind, wird der Prozeß 2 von den Rechnern P 3 ausgeführt. Da ferner der Rechner-Identifizie­ rer 321-3 für den Prozeß 3 die Rechnernummer ′0′ aufweist, ist dieser durch jeden Rechner ausführbar. Somit wird der Prozeß 3 vom Rechner P 2 ausgeführt, der bereitsteht. Obwohl bei diesem Ausführungsbeispiel nur ein einziger Code für den Rechner- Identifizierer 321 geschrieben ist, können gleichzeitig auch mehrere Codes geschrieben sein. In einem solchen Fall sind negative Werte nicht notwendigerweise erforderlich.
Die Prozesse 1 bis 3 entsprechen jeweils den Prozeßfüh­ rungstabellen 32-1 bis 32-3, so daß jedesmal, wenn ein Prozeß erzeugt wird, auch die entsprechende Prozeßführungstabelle er­ zeugt wird. Betrachtet man die Erzeugung des Prozesses nach dem Ingangsetzen des Systems, dann wird ein Grundprozeß, der andere Prozesse ursächlich erzeugt, unter der Kontrolle des Betriebssystemprogramms 31 erzeugt. Nachfolgend erzeugt der Grundprozeß die genannten Prozesse 1 bis 3. Eine Folge dieser Schritte wird in Verbindung mit Fig. 1(b) beschrieben.
Es wird nun Bezug auf Fig. 1(b) genommen; ein Grundpro­ zeß, welcher ursächlich die anderen Prozesse erzeugt, wie oben festgestellt, wird als "Prozeß 0" bezeichnet (dies ist in Fig. 1(a) nicht gezeigt). Beim Ingangsetzen des Systems gibt das Betriebssystemprogramm 31 eine spezielle Rechnernummer in den Rechner-Identifizierer 321-0 für den Prozeß 0 ein, beruhend auf der Information, die die Systemausbildung betrifft, die vom Benutzer vorgewählt ist, wenn der Prozeß 0 erzeugt wird. Dies liegt daran, daß es nach der Ingangsetzung des Systems für einen speziellen Rechner erforderlich ist, alle die Daten zu initialisieren. Deshalb dient im Prozeß 0 nach der Ini­ tialisierung der Daten ein Systemruf, der vom Betriebssystem für das erneute Schreiben des Prozessor-Identifizierers ge­ tragen ist, dazu, ′0′ in den Rechner-Identifizierer 321-0 zu schreiben, damit der Prozeß von irgendeinem der Rechner ausge­ führt werden kann. Dann werden die Prozesse 1 bis 3 auch unter dem Systemruf erzeugt, der vom Betriebssystem getragen ist. In diesem Fall ist der Rechner-Identifizierer als ein Systemruf- Parameter ausgebildet. Die Systemrufe zum Erzeugen der Pro­ zesse sind in zwei Gruppen klassifiziert. Eine ist zum aus­ drücklichen Bezeichnen bzw. Designieren des Rechner-Identifi­ zierers und der andere ist zur automatischen Übernahme des Rechner-Identifizierers für den vorangegangenen Prozeß.
Es wird nun auf Fig. 1(b) Bezug genommen; als erstes wird der Prozeß 0 vom Rechner P 1 ausgeführt, um den Prozeß 1 durch Bezeichnen von ′-2′ für den Rechner-Identifizierer zu erzeu­ gen. Als Folge ist der Prozeß 1 vom Rechner P 1 oder P 3 aus­ führbar. Weil der Rechner P 1 zu diesem Zeitpunkt benutzt wird, wird der Prozeß 1 vom Rechner P 3 ausgeführt. Dann wird der Prozeß 2 mit dem Rechner-Identifizierer ′1′ erzeugt, so daß der Prozeß 0 in den Rechner P 2 übertragen wird und die Aus­ führung des Prozesses 2 vom Rechner P 1 begonnen wird. Nachfol­ gend wird der Prozeß 3 unter dem Systemruf zur Übernahme des Rechner-Identifizierers für den vorangegangenen Prozeß er­ zeugt, wobei der Rechner-Identifizierer 321-3 auf ′0′ einge­ stellt wird. Fig. 1(b) zeigt einen Zustand, in welchem der Prozeß 0 für eine Weile am gemeinsamen Speicher gehalten wird und der Rechner P 2 freigegeben wird, um die Ausführung des Prozesses 3 zu beginnen. Im Prinzip werden die Erzeugung der Prozesse und das Einstellen des Rechner-Identifizierers durch­ geführt, wie oben beschrieben.
Fig. 2 zeigt eine Folge von Verarbeitungsschritten für den Prozeßplaner.
Der Prozeßplaner, der ein Teil des Betriebssystems ist, ist von jedem der Rechner so ausführbar, daß er dem bereit­ stehenden Rechner zugeordnet werden kann, der die Ausführung des Prozesses beendet oder unterbrochen hat. Der Prozeßplaner wählt, wenn er dem Rechner zugeteilt ist, einen nächsten durchzuführenden Prozeß gemäß dem Prozeßvorrang aus (Schritt 311-1). Bei einem Prozeßplaner aus dem Stand der Technik wird der ausgewählte Prozeß dem Rechner zugeteilt, der vom Planer gegenwärtig in Betrieb gehalten wird (Schritt 311-3), und dann wird die Bearbeitung fertiggestellt. Im Gegensatz hierzu wird gemäß dem Prozeßplaner der vorliegenden Erfindung der Wert des Rechner-Identifizierers 321 in der Prozeßführungstabelle 32 für den gewählten Prozeß überprüft (Schritt 311-2). Wenn der Wert ′0′ ist, erfolgt die Anzeige, daß der Prozeß von jedem Rechner durchführbar ist. Dann wird der Schritt 311-3 durchge­ führt. Wenn andererseits der Rechner-Identifizierer 321 einen positiven Wert aufweist, der anzeigt, das der Prozeß nur durch einen solchen Rechner durchführbar ist, der eine Rechnernummer aufweist, die dem Rechner-Identifizierer entspricht, dann wird die Prozeßnummer des laufenden Rechners, bei dem der Planer gegenwärtig im Betrieb ist, geprüft, ob sie tatsächlich mit dem Wert des Rechner-Identifizierers 321 übereinstimmt (Schritt 311-4). In diesem Zusammenhang gibt es eine Vielzahl von Rechner-Identifizierern, die zu diesem Zeitpunkt geprüft werden müssen, und der Planer macht eine solche Prüfung im Hinblick auf jeden der Rechner-Identifizierer, und wenn eine Übereinstimmung zwischen der Rechnernummer und irgendeinem dieser Rechner-Identifizierer ermittelt wird, wird ein "Über­ einstimmungssignal" erzeugt, wobei der Schritt 311-3 erzeugt wird. Wenn jedoch keine Übereinstimmung festgestellt wird, was anzeigt, daß der Prozeß nicht vom laufenden Rechner ausführbar ist, bei welchem der Planer gerade in Betrieb ist, geht der Planer zurück auf den Schritt 311-1, um einen Prozeß zu wäh­ len, der den nächsthöheren Vorrang aufweist. Im Gegensatz hierzu wird, wenn der Rechner-Identifizierer 321 irgendeinen negativen Wert im Schritt 312-2 aufweist, der anzeigt, daß der Prozeß nur durch andere Rechner ausführbar ist als jenen Rech­ ner, der eine Rechnernummer aufweist, die im Wert gleich, aber im Vorzeichen entgegengesetzt ist zu diesem Rechner-Identifi­ zierer, dann die Rechnernummer des laufenden Rechners, bei welchem sich der Planer im Betrieb befindet, überprüft, ob sie tatsächlich mit dem Absolutwert des Rechner-Identifizierers 321 übereinstimmt (311-5). In diesem Zusammenhang macht, wenn zu diesem Zeitpunkt mehrere Rechner-Identifizierer vorliegen, der Planer eine solche Überprüfung im Hinblick auf jede der Rechner-Identifizierer, und wenn eine Übereinstimmung zwischen der Rechnernummer und irgendeinem dieser Rechner-Identifizie­ rer ermittelt wird, wird ein Übereinstimmungssignal erzeugt; wenn jedoch keine Übereinstimmung erhalten wird, dann läuft der Planer zum Schritt 311-3 weiter. Wenn das Übereinstim­ mungssignal erzeugt wird, das anzeigt, daß der Prozeß nicht durch jenen Rechner durchführbar ist, bei welchem sich der Planer im Betrieb befindet, dann kehrt der Planer zum Schritt 311-1 zurück, um einen Prozeß auszuwählen, der den nächsthöhe­ ren Vorrang aufweist. In diesem Zusammenhang wird, wenn ein Rechner mehrere Rechnernummern aufweist, die Bearbeitung, wie oben beschrieben, für jede der Rechnernummer wiederholt, bevor man den nächsten Prozeß wählt.
Das Verfahren zum Einstellen des Rechner-Identifizierers 321 wird allgemein in die folgenden drei Arten der Verfahren 1, 2 und 3 aufgeteilt:
Das Verfahren 1 ist es, den Rechner-Identifizierer durch einen Systemruf für das Betriebssystem durch den Grundprozeß einzustellen (hier als "Vaterprozeß" bezeichnet), der den an­ deren Prozeß verursacht. Dieses Verfahren umfaßt zwei Fälle: Der eine ist es, ausdrücklich den Rechner-Identifizierer durch den Systemruf einzustellen, und ein anderer ist es, implizit den Rechner-Identifizierer für den Vaterprozeß zu übernehmen oder den Rechner-Identifizierer auf ′0′ einzustellen, der ein Code für einen allgemeinen Zweck ist (general purpose code). Im letztgenannten Fall wird entweder der Schritt, implizit zu übernehmen, oder der Schritt des Einstellens im Hinblick auf die Bequemlichkeit für jedes System ausgewählt.
Es ist das Verfahren 2, den Rechner-Identifizierer durch einen Systemruf für das Betriebssystem vom Prozeß selbst ein­ zustellen.
Die Verfahren 1 und 2 sind bereits unter Bezugnahme auf Fig. 1(b) beschrieben.
Das Verfahren 3 ist ein solches Verfahren, daß zum Zeit­ punkt der Erzeugung eines Prozesses ein Code, dessen Prozeß durch jeden Rechner ausführbar ist (nämlich ein Code für all­ gemeine Zwecke) gespeichert wird und zum Zeitpunkt seiner Aus­ führung durch irgendeinen Rechner der Rechner-Identifizierer auf den Wert der Rechnernummer eingestellt wird, dann wird er nur durch diesen Rechner ausgeführt, und ferner wird am Ende der Ausführung der Rechner-Identifizierer auf den genannten Code für den allgemeinen Zweck wieder zurückgestellt, dessen Prozeß durch jeden Rechner ausführbar ist, wobei sicherge­ stellt ist, daß die nächste Ausführung des Prozesses durch jeden Rechner möglich ist.
Um das Verfahren 3 zu realisieren, ist die Rechner-Kon­ trollbetriebsart 322 (322-0, 322-1, 322-2 und 322-3) in der Prozeßführungstabelle 32 (32-0, 32-1, 32-2 und 32-3) vorge­ sehen. Die Rechner-Kontrollbetriebsart umfaßt zwei Betriebs­ arten: eine Betriebsart, in welche der Rechner nicht festge­ legt ist, und eine andere Betriebsart, in welcher der Rechner zeitweise in einem Zeitraum vom Beginn bis zum Ende der Durch­ führung der Rechner bzw. Prozesse festgelegt ist. In diesem Zusammenhang wird die Betriebsart, in welchem der Rechner nicht festgelegt ist, mit ′0′ bezeichnet und die Betriebsart, in welcher der Rechner zeitweise festgelegt ist, wird als ′1′ definiert. Eine dritte Betriebsart, in welcher, wenn der Pro­ zeß erst einmal erzeugt ist, der Rechner ständig festgelegt ist, kann als ′2′ definiert werden. Bei der letztgenannten Betriebsart wird, nur wenn der Prozeß zuerst erzeugt ist, die Prozeßführungstabelle erzeugt und wird selbst am Ende des Pro­ zesses nicht freigegeben. Deshalb wird, wenn der Prozeß ein zweites Mal erzeugt wird, die vorausgegangene Prozeßführungs­ tabelle wiederum benutzt, mit dem Ergebnis, daß der Rechner- Identifizierer, wenn er erst einmal eingestellt ist, ständig benutzt wird.
Gemäß Verfahren 1 und 2 wird die Rechner-Kontroll­ betriebsart automatisch auf ′0′ eingestellt, während es im Verfahren 3 erforderlich ist, daß zum Zeitpunkt der Erzeugung des Prozesses der Rechner-Identifizierer wie auch die Rechner- Kontrollbetriebsart zugeteilt werden. Dies ist der Grund, warum der Systemruf vom Betriebssystem getragen wird. Das Ver­ fahren 3 wird unten unter Bezug auf die Zeichnungen beschrie­ ben.
Fig. 3 zeigt die Schritte der Erzeugung eines Prozesses gemäß Verfahren 3. Das Betriebssystem empfängt über den Systemruf die Rechner-Betriebsart und den Rechner-Identifizie­ rer, die in der Zeichnung mit "mode" bzw. "procid" bezeichnet sind. Wenn der Systemruf ausgeht, dann liefert das Betriebs­ system die Prozeßführungstabelle 32 für den zu erzeugenden Prozeß (Schritt 12-1), führt dann die herkömmliche Prozeßer­ zeugung durch (Schritt 12-2) und führt schließlich die Ein­ stellung der Recheninformation für den Prozeß durch (Schritt 12-3).
Die Einstellung der Recheninformation (Schritt 12-3) wird auf eine solche Weise durchgeführt, daß, wie durch eine Schlußfolge 312 in Fig. 4 gezeigt, die bezeichnete Rechner- Kontrollbetriebsart überprüft wird, ob sie den Wert ′2′ hat (Schritt 312-0). Wenn nicht, wird der Wert "mode" in die Rech­ ner-Kontrollbetriebsart der Prozeßführungstabelle 32 eingege­ ben (Schritt 312-2), und irgendein Wert von "procid" wird in den Rechner-Identifizierer 321 eingegeben (Schritt 312-3). Wenn andererseits der Schritt 312-0 der Rechner-Kontrollbe­ triebsart einen Wert von ′2′ aufweist, dann wird die Rechner- Kontrollbetriebsart 322 der Prozeßführungstabelle 32 über­ prüft, um zu bestimmen, ob sie bereits einen Wert von ′2′ für ihren Prozeß aufweist (Schritt 312-1). Falls es so ist, wird die Bearbeitungsfolge in Fig. 4 beendet, falls nicht, geht sie weiter auf die Schritte 312-2 und 312-3, in welchen die be­ stimmten Werte von "mode" und "procid" eingegeben werden. Der so erzeugte Prozeß wird vom Prozeßplaner ausgewählt und wird durch irgendeinen der Rechner in Abhängigkeit vom Rechner- Identifizierer 321 ausgeführt. Die Ausführung des Prozesses ist in Fig. 5 gezeigt.
Fig. 5 zeigt die Schritte zur Ausführung des Prozesses, worin ein Abschnitt des Flußdiagramms, der von einer gestri­ chelten Linie umrundet ist, jenen Abschnitt darstellt, der gemäß der vorliegenden Erfindung hinzugefügt wurde. Als erstes wird eine Adresse der Prozeßführungstabelle 32 für den auszu­ führenden Prozeß bestimmt (Schritt 313-1), und die Rechner- Kontrollbetriebsart 322 der Prozeßführungstabelle wird in ihrem Wert überprüft (Schritt 313-2). Wenn der Wert ′0′ ist, was anzeigt, daß der Rechner nicht festgelegt ist, wird der Code ′0′ für den allgemeinen Zweck in den Rechner-Identifizie­ rer 321 der Prozeßführungstabelle eingegeben (Schritt 313-4). Wenn aber der genannte Wert ′1′ ist, was anzeigt, daß der Rechner während des Zeitraums vom Beginn bis zum Ende der Durchführung festgelegt ist, dann wird die Rechnernummer 11 des Rechners, die vom Planer bestimmt ist, in den Rechner- Identifizierer 321 der Prozeßführungstabelle eingegeben (Schritt 313-3). Wenn der Wert ′2′ ist, was anzeigt, daß der Rechner ständig festgelegt ist, findet keine Auswirkung statt. Nachfolgend wird das Benutzerprogramm gestartet, um ausgeführt zu werden (Schritt 313-5).
Fig. 6 zeigt ein Beispiel der Beendigung eines Prozesses gemäß dem Verfahren 3 zum Einstellen des Rechner-Identifizie­ rers. In diesem Beispiel wird als erstes eine Adresse der Pro­ zeßführungstabelle 32 für den zu beendenden Prozeß bestimmt (Schritt 314-1), und die Rechnerbetriebsart 322 der Prozeß­ führungstabelle wird in ihrem Wert überprüft (Schritt 314-2). Wenn dieser Wert ′1′ ist, was anzeigt, daß der Rechner während des Zeitraums von Beginn bis Ende der Prozeßdurchführung fest­ gelegt ist, dann wird der Code für allgemeinen Zweck (Wert ′0′) in den Rechner-Identifizierer 321 der Prozeßführungsta­ belle eingegeben (314-3). Wenn der Wert ′0′ oder ′2′ ist, was anzeigt, das hier keine Modifizierung erforderlich ist, dann findet keine Tätigkeit statt. Nachfolgend wird das herkömm­ liche Beendigungsvorgehen des Prozesses durchgeführt (Schritt 314-4).
Wie oben beschrieben, ist, wenn die Rechner-Kontrollbe­ triebsart ′2′, worin der Rechner ständig festgelegt ist, zur Zeit der Prozeßerzeugung eingestellt ist, es aus Fig. 5 er­ sichtlich, daß keine Modifizierung zum Zeitpunkt der Prozeß­ durchführung stattfindet, und daß ferner beim Beendigungsvor­ gehen des in Fig. 6 gezeigten Prozesses wegen der Tatsache, daß der Entscheidungsschritt 314-2 zur Antwort ′anders als 1′ führt, der Rechner-Identifizierer fortfährt, den Wert beizube­ halten, der zum Zeitpunkt der Prozeßerzeugung eingestellt war. Zusätzlich wird die Prozeßführungstabelle bewahrt, so daß sowohl die Rechner-Kontrollbetriebsart als auch der Rechner- Identifizierer, die festgesetzt wurden, ebenfalls bis zur nächsten Erzeugung des Prozesses bewahrt werden. Bei der näch­ sten Erzeugung des Prozesses wird die Prozeßführungstabelle, die vorher benutzt war, wieder aufgespürt, und wenn es sich herausstellt, daß die Rechner-Kontrollbetriebsart auf ′2′ festgesetzt war, wird der Rechner-Identifizierer nicht neu geschrieben, so daß er bewahrt wird. Somit kann der Prozeß mit einer Rechner-Kontrollbetriebsart, die auf ′2′ eingestellt ist, ständig nur von jenem Rechner ausgeführt werden, der zu­ geteilt wurde, es sei denn, die Kontrollbetriebsart wird infolge einer Anforderung des Benutzers modifiziert.
Vorteilhafte Wirkungen des Verfahrens zum Einstellen des Rechners, der in Betrieb genommen werden soll, wenn er gestar­ tet wird auf die obige Weise, sind die folgenden: Das Verfah­ ren 1 ist dahingehend von beträchtlicher Wirkung, daß es viele Probleme aus dem Stand der Technik überwindet, die die Zuver­ lässigkeit des Echtzeitsystems, die Anwendbarkeit existieren­ der Software und die Systemarchitektur sowie die Systeminiti­ ierung u. dgl. betreffen; das Verfahren 2 löst die Probleme, die die Zuverlässigkeit des Echtzeitsystems und die System- Architektur sowie auch die System-Initiierung u. dgl. be­ treffen; und Verfahren 3 ist nützlich, um die Abnahme der Leitungsfähigkeit infolge der Prozeßwanderung zu verhindern.
Nun wird der Grund, warum die Prozeßwanderung gemäß dem Verfahren 3 verhindert werden kann, kurz beschrieben. Wenn der Prozeß, der durch irgendeinen Rechner ausführbar ist, durch einen einzigen der Rechner ausgeführt wird, dann kann die Prozeßausführung für eine Zeit lang infolge der Wartezeit für den Zugriff zu IO-Einheiten (Eingangs-Ausgangseinheiten) unterbrochen werden, so daß der Rechner für einen anderen Betrieb freigesetzt wird. In diesem Zusammenhang muß vermerkt werden, daß bei der Anordnung aus dem Stand der Technik beim Zeitpunkt der Betriebswiederaufnahme der Prozeß nicht notwen­ digerweise demselben Rechner zugeteilt zu werden braucht, der vorher den Prozeß ausgeführt hat. Deshalb ist es möglich, daß der Prozeß einem unterschiedlichen Rechner zugeteilt wird, und die Prozeßwanderung stattfinden kann. Gemäß dem Verfahren 3 jedoch wird zum Zeitpunkt der Prozeßerzeugung der Prozeßiden­ tifizierer, der vom Benutzer eingestellt wird, wie im Schritt 312-3 der Fig. 4 gezeigt, und die Rechnernummer 11, die im Rechner-Identifizierer beim Beginn der Ausführung eingestellt ist, wie im Schritt 313-3 der Fig. 5 gezeigt, im Wert voll bewahrt, selbst wenn eine Unterbrechung der Ausführung des Prozesses nachfolgend stattfindet, und zwar bis zu jenem Zeit­ punkt, bei welchem der Prozeß fertiggestellt wird, wie in Fig. 6 gezeigt. Somit wird beim Planen des Prozesses zum Zeitpunkt der Betriebswiederaufnahme nach einer Unterbrechung der Aus­ führung (Fig. 2) die spezielle Rechnernummer, die in dem Rech­ ner-Identifizierer 321 eingestellt ist, so benutzt, daß der Prozeß zuverlässig nach der Wiederaufnahme der Ausführung von jenem Rechner ausgeführt wird, der die genannte Rechnernummer aufweist. Aus diesem Grund findet keine Prozeßwanderung statt. Ferner wird nach Fertigstellung der Ausführung des Prozesses der Rechner-Identifizierer auf ′0′ eingestellt, wie im Schritt 314-3 der Fig. 6 gezeigt, und dementsprechend ist die Zutei­ lung des Prozesses zum nächsten Zeitpunkt nicht auf denselben Rechner beschränkt.
Fig. 7 zeigt eine Modifizierung des Ausführungsbeispiels gemäß der vorliegenden Erfindung, wobei es mehreren Rechnern ermöglicht ist, dieselbe Rechnernummer aufzuweisen. Die Bear­ beitung des Planers 311 wird auf dieselbe Weise durchgeführt wie jene, die in Fig. 2 gezeigt ist. Die Rechner-Identifizie­ rer 321 der Prozesse 2 und 3 haben denselben Wert ′1′ und die Rechner P 1 und P 2 haben ebenfalls dieselbe Rechnernummer ′1′, so daß jeder der Prozesse 2 und 3 von dem Rechner P 1 oder P 2 ausführbar ist. Diese Ausbildung ermöglicht eine flexible Rechnerzuteilung, ohne daß man das Betriebssystem ändert, und zwar auf solche Weise, daß beispielsweise Belastungen auto­ matisch zwischen den Rechnern P 1 und P 2 ausgeglichen werden, und daß es möglich ist, daß eine getrennte Arbeit dem Rechner P 3 zugeteilt wird.
Fig. 8 zeigt eine andere Abänderung des Ausführungsbei­ spiels, wobei es einer Anzahl von Rechnern gestattet ist, dieselbe Rechnernummer zu tragen, wie im Fall der Fig. 7, und wobei der Rechner-Identifizierer 321-1 des Verfahrens 1 auf ′-1′ eingestellt ist, so daß das Verfahren von den Rechnern P 1 und P 2 mit der Rechnernummer ′1′ nicht ausführbar ist. Eine solche Ausbildung hat ihre Anwendung dort, wo die Rechner P 1 und P 2 für die Rechnersteuerung vorgesehen sind und der Prozeß 1 ein Versuchsprogramm ist, das in Entwicklung steht, so daß es erwünscht ist, daß der Betrieb nur durch andere Rechner als die Rechner P 1 und P 2 durchgeführt wird, um niemals die Rech­ nersteuerung zu beeinträchtigen.
Das Ausführungsbeispiel, das in Fig. 8 gezeigt ist, lie­ fert wie im Fall der Fig. 7 die vorteilhafte Wirkung, daß eine flexible Rechnerzuteilung realisiert wird, ohen daß man das Betriebssystem ändert.
Gemäß einer anderen Ausgestaltung kann die Rechnernummer 11 auch einen Code für einen allgemeinen Zweck aufweisen (beispielsweise ′0′), so daß der Rechner mit dem Code für den allgemeinen Zweck jeden der Prozesse durchführen kann. In diesem Fall kann jeder Rechner mit dem Code für den allgemei­ nen Zweck jeden der Prozesse ausführen, ungeachtet des Inhalts des Rechner-Identifizierers für jeden Prozeß.
Nun wird unter Bezugnahme auf die Fig. 9 und 10 die Zuteilung der Prozesse zu jedem der Rechner anhand eines Bei­ spiels eines Anlagenkontrollsystems gemäß der vorliegenden Er­ findung beschrieben. Fig. 9 zeigt eine Systemausbildung, in welcher eine Anlagenkontrolleinrichtung PC, Endstellen- bzw. Terminal-Einheiten T 1 und T 2 sowie ein Datenspeicher für die Rechnersteuerung (on-line file) OF mit dem Mehrfachrechner verbunden sind, der in Fig. 1 gezeigt ist, und Fig. 10 zeigt ein Beispiel, das in diesem System die Zuordnung zwischen den Prozessen und den Rechnern darstellt.
Unter Bezugnahme auf Fig. 10 werden nun die folgenden fünf Prozesse in Betracht gezogen: Der Steuerprozeß 91 für den Terminal T 1 zum Steuern der Terminaleinheit T 1, den Prozeß 92 zum Steuern des Terminals T 2 zum Steuern der Terminaleinheit T 2, ein Sammelprozeß 93 für statistische Informationen zum Sammeln und Eingeben der statistischen Information in die Datensammlung für die Rechnersteuerung OF, der Anlagen-Kon­ trollprozeß 94 zum Steuern der Anlagenkontrollvorrichtung PC und ein Fehlerüberwachungsprozeß 95, der das Auftreten eines Systemfehlerzustands überwacht. Die Rechner P 1, P 2 und P 3, die in Fig. 10 gezeigt sind, entsprechen jeweils den Rechnern P 1, P 2 und P 3 in Fig. 9. Eine Markierung ′O′ bedeutet, daß der Prozeß jener Zuteilung unterzogen wird, daß der Prozeß vom be­ zeichneten Rechner ausgeführt werden muß, eine Markierung ′X′ bedeutet, daß der Prozeß der Zuordnung unterzogen wird, daß der Prozeß durch andere Rechner als den bezeichneten ausge­ führt werden soll, und keine Markierung bedeutet, daß der Pro­ zeß jener Zuteilung unterzogen wird, daß der Prozeß von ir­ gendeinem Rechner durchgeführt werden soll.
Das in Fig. 9 gezeigte System hat Hauptaufgaben, wie etwa die Terminal-Kontrolle und die Anlagenkontrolle, so daß die Prozesse auf eine solche Weise verteilt werden, daß der Prozeß 91 zur Kontrolle des Terminals T 1 dem Rechner P 1 zugeteilt wird, der Prozeß 92 zur Kontrolle des Terminals T 2 dem Rechner P 2 zugeteilt wird, und der Prozeß 94 zur Anlagenkontrolle dem Rechner P 3 zugeteilt wird, wobei der gegenseitige störende Eingriff verhindert wird. Der statistische Datensammelprozeß 93 ist ein solcher Prozeß, der in den leeren Zwischenzeiten zwischen den Operationen der Rechner ausgeführt werden kann. Es wird andererseits für die Rechner P 3, die für die Anlagen­ kontrolltätigkeit verwendet werden, bevorzugt, daß die Ausfüh­ rung anderer Tätigkeiten soweit wie möglich vermieden werden sollte, um sicherzustellen, daß die Kontrolltätigkeit inner­ halb des vorbestimmten Zeitraums beendet wird. Angesichts des Obigen wird ein statistischer Datensammelprozeß 93 jenen Rech­ nern zugeteilt, die anders sind als der Rechner P 3. Dem Aus­ fall-Überwachungsprozeß 95 ist es gestattet, von allen Rech­ nern ausgeführt zu werden, inklusive auch den Rechner P 3, um in gewünschter Weise die Bedingungen bzw. Zustände aller Rech­ ner zu überwachen. Ferner bestimmt der Ausfall-Überwachungs­ prozeß 95 selbst den nächsten, zu betreibenden Rechner, um der Reihenfolge nach die Rechner zu überwachen.
Es ist aus dem Vorangehenden ersichtlich, daß die Zutei­ lung der Prozesse zu den bestimmten Rechnern, wie oben be­ schrieben, den wirkungsvollen Betrieb des Anlagen-Kontroll­ systems in seiner optimalen Weise ermöglicht.
Ein zweites Ausführungsbeispiel gemäß der vorliegenden Erfindung wird unten beschrieben.
Fig. 11 zeigt eine Ausbildung eines Mehrfach-Rechners gemäß diesem Ausführungsbeispiel. In dieser Anordnung sind Einrichtungen 210 (210-1, 210-2 und 210-3) sowie 211 (211-1, 211-2 und 211-3) zum Halten der oberen und unteren Grenzen des Vorranges für jenen Prozeß, der von jedem Rechner ausführbar ist, für jeden der Rechner vorgesehen. Die Vorrang-Halteein­ richtung kann durch spezielle Register in jedem Rechner auf­ gebaut sein oder kann dadurch erreicht werden, daß man spe­ zielle Adressen im gemeinsamen Speicher für diesen Zweck zu­ teilt. Zusätzlich hält die Prozeßführungstabelle 32 einen Vor­ rang (PR) 212 (212-1, 212-2 und 212-3), der einen Ausführungs­ vorrang für jeden Prozeß darstellt. In diesem Ausführungsbei­ spiel stellt der untere Wert den höheren Vorrang dar. Der Vor­ rang wird dynamisch oder statisch bestimmt, aber das Verfahren der Bestimmung des Vorranges berührt nicht die vorliegende Er­ findung. In diesem Beispiel wird der Betrieb der Zuteilung der Rechner P 1 bis P 3 zu den Prozessen, die zur Ausführung anste­ hen, durch den Prozeßplaner 215 ausgeführt. Die verbleibenden Abschnitte der Fig. 11 sind identisch mit jenen, die in Fig. 2 gezeigt sind.
Fig. 12(a) zeigt ein Flußdiagramm zum Darstellen der Vor­ gehensweise des Planers 215. Um den Vorrang des Prozesses zu erhalten, der von dem Rechner ausführbar ist, bei welchem sich der Planer in Betrieb befindet, werden die untere Grenze (LPR) und die obere Grenze (HPR) des Vorranges von der Vorranghalte­ einrichtung 210 und 211 des Rechners abgelesen (Schritt 215-1). Dann wird der höchste Vorrang 212 (der im Wert klein­ ste) unter den Prozessen, die zur Ausführung anstehen, ausge­ wählt (Schritt 215-2). Wenn der ausgewählte Vorrang des Pro­ zesses in solche Vorranggrenzen fällt, daß der Vorrang durch den zugeordneten Rechner ausführbar ist (Schritt 215-3), dann wird der ausgewählte Prozeß dem zugeordneten Rechner zuge­ teilt (Schritt 215-5). Ansonsten wird jener Prozeß gewählt, der den nächsthöheren Vorrang aufweist (Schritt 215-4).
Die Wirkungsweise des Planers wird mittels eines Bei­ spiels beschrieben. Es wird auf Fig. 11 Bezug genommen; es wird davon ausgegangen, daß der Planer 215 vom Rechner P 3 be­ trieben wird und daß die Prozesse 1 bis 4 durch Durchführung anstehen. Dann vergegenwärtigt sich der Planer 215, daß der Vorrang für den Rechner P 3 zwischen ′50′ und ′100′ festgesetzt ist. Der Prozeß 3, der die höchste Priorität aufweist (′25′), wird unter den zur Ausführung anstehenden Prozessen ausge­ wählt, aber der ausgewählte Vorrang fällt nicht in die Vor­ ranggrenzen, die der Rechner P 3 ausführen kann, worauf nach­ folgend die Auswahl des Prozesses 1 mit dem nächsthöheren Vorrang (′40′) folgt. Schließlich wird der Prozeß 4 (Vorrang­ wert ′55′) ausgewählt und der Planer 215 teilt den Rechnern P 3 den Prozeß 4 zu.
Gemäß diesem Ausführungsbeispiel kann die Gelegenheit zur Ausführung des Prozesses selbst dann zuverlässig vorgesehen werden, wenn der Prozeß 2 oder 4 einen niedrigeren Vorrang aufweisen, wobei das Auftreten jenes Problems verhindert wird, daß, wenn eine Anzahl von Prozessen mit höheren Vorrang er­ zeugt werden, keine Gelegenheit vorliegt, um die Prozesse mit niedrigerem Vorrang durchzuführen. Zusätzlich ist es infolge der Anordnung zum Ausräumen des Überlappens der Vorrangberei­ che, innerhalb deren ein Prozeß ausführbar ist, durch zwei oder mehr Rechner möglich, die Zuordnung zwischen den Prozes­ sen und den Rechnern festzulegen.
Fig. 12(b) zeigt ein anderes Flußdiagramm, das die Wir­ kungsweise des Planers 215 im einzelnen darstellt. In diesem Beispiel werden die Schritte 215-6 bis 215-8 statt der Schrit­ te 215-2 bis 215-4 in Fig. 12(a) so benutzt, daß eine Überprü­ fung vorgenommen wird, um zu bestimmen, ob hier ein Prozeß zur Ausführung ansteht, wobei man mit dem Prozeß beginnt, der die niedrigste Vorranggrenze (d. h. den höchsten Vorrang) aufweist. In diesem Fall wird dasselbe Ergebnis wie jenes in Fig. 12(a) erreicht.
Ein drittes Ausführungsbeispiel des Mehrfachrechners, der erfindungsgemäß aufgebaut ist, wird nun nachfolgend unter Bezug auf Fig. 13 beschrieben. Dieser Rechner ist so aufgebaut, daß der Vorrang eines jenen Prozesses in der Prozeßführungstabelle 32 individuell für jeden der Rechner festgesetzt werden kann, statt gemeinsam für alle Rechner festgesetzt zu werden. Des­ halb speichert die Prozeßführungstabelle 32 den Vorrang 231, 232 und 233, die jeweils den Ausführungsvorgang eines jeden Rechners P 1 bis P 3 für jeden Prozeß darstellen.
In diesem Beispiel kann auch ein Verfahren zum Bestimmen des Vorranges selbst wahlweise gewählt werden, und die Zutei­ lung der Prozesse, die zur Ausführung anstehen, zu irgendei­ nem der Rechner P 1 bis P 3 wird durch den Planer 234 ausge­ führt. Die verbleibenden Abschnitte der Fig. 13 sind identisch mit jenen, die in Fig. 1 gezeigt sind.
Fig. 14 zeigt ein detailliertes Flußdiagramm, das die Wirkungsweise des Planers 234 darstellt. Der Planer 234 er­ hält zunächst die Rechnernummer des Rechners, bei welchem der Planer selbst betrieben wird (Schritt 234-1). Dann wird jener Prozeß ausgewählt, der dem höchsten Positionsvorrang entspre­ chend dieser Rechnernummer in jeder Prozeßführungstabelle 32 aufweist (234-2). Dieser Prozeß wird diesem Rechner zugeordnet (Schritt 234-3).
Die Wirkungsweise des Planers wird unten beschrieben.
Es wird davon ausgegangen, daß in Fig. 13 der Planer 234 am Rechner P 3 betrieben wird und die Prozesse 1 bis 4 für die Durchführung anstehen. Der Planer 234 erhält als erstes die Rechnernummer und bestätigt, daß diese beim Rechner P 3 betrie­ ben wird. Dann erreicht der Rechner 234 wieder die Vorränge 231-1 bis 231-4 in der Prozeßführungstabelle 32 entsprechend dem Rechner P 3, wählt dann den nächsten Prozeß 3 mit dem höch­ sten Vorrang (Mindestwert ′60′) und teilt den zugeordneten Rechner diesem zu. Wenn man davon ausgeht, daß es ohne Bedeu­ tung ist, welcher Rechner gewählt wird, dann ist der Prozeß mit dem höchsten Vorrang unter den Prozessen 1 bis 4 der Prozeß 1, der den Vorrang ′20′ hat. Dieser Vorrang 231-1 ist jedoch der Vorrang des Rechners P 1, der so ignoriert wird, es sei denn, der Planer 234 wird am Rechner P 1 betrieben.
Gemäß diesem Ausführungsbeispiel ist es möglich, einen höheren Vorrang des Rechners für jeden Prozeß anzusetzen, wobei ausschließlich jeder Prozeß näherungsweise einem einzi­ gen der Rechner zugeteilt wird. Es muß jedoch vermerkt werden, daß der Stillstand des Rechners ni 46239 00070 552 001000280000000200012000285914612800040 0002004007998 00004 46120cht notwendigerweise den zu­ geordneten Prozeß unausführbar macht, sondern er kann durch andere Rechner ausgeführt werden, mit dem hierfür verringerten Vorrang.
Ein viertes Ausführungsbeispiel gemäß der vorliegenden Erfindung, in dem ein Mehrfach-Rechner auf dieselbe Weise wie in Fig. 1 gezeigt aufgebaut ist, wird unten beschrieben.
Fig. 15 zeigt eine Anordnung der Prozeßführungstabelle 32 entsprechend jedem Prozeß in diesem Ausführungsbeispiel. Wie oben beschrieben, ist der Prozeß-Identifizierer "pid" 320 eine solche Nummer, die jedem Prozeß im System einmalig erteilt wird. Der Rechner-Identifizierer "procid" 321 stellt einen Rechner dar, der für diesen Prozeß erforderlich ist. Genauer gesagt, wenn "procid" = 0, dann ist es jedem Rechner gestat­ tet, den Prozeß auszuführen, wenn "procid" = n (n ist eine natürliche Zahl), dann ist es dem Rechner mit der Rechnernum­ mer n gestattet, den Prozeß auszuführen, und wenn "procid" = -n, dann ist es jedem anderen Rechner als jenem, der die Rech­ nernummer n aufweist, gestattet, den Prozeß auszuführen. Die Rechnerbetriebsart "mode" 322 definiert, wie oben beschrieben, die dynamische Modifikation oder den Festlegungszeitraum (Gül­ tigmachungszeitraum) für den Rechner-Identifizierer. Genauer gesagt, wenn "mode" = 0, dann wird der Rechner-Identifizierer stets angesehen als "procid" = 0. In anderen Worten, zum Zeit­ punkt der Prozeßerzeugung ist "procid" auf ′0′ festgesetzt. Wenn "mode" = 1, dann wird der Rechner-Identifizierer "procid" nur in jenem Zeitraum zwischen dem Beginn und Ende der Ausfüh­ rung des zugeordneten Prozesses festgelegt. D. h., zum Zeit­ punkt der Prozeßausführung wird jeder geeignete Wert von "procid" gesetzt. Wenn zusätzlich "mode" = 2, dann wird "procid" weder zur Startzeit noch zur Endzeit der Ausführung beendet. Das "procid" wird nämlich, wenn es erst einmal fest­ gesetzt ist, nicht geändert, es sei denn, es wird eine neue Einstellung des Rechners vorgenommen, wie in Fig. 4 gezeigt.
Ferner wird das Konzept der Rechneraffinität Paf (nach­ folgend im einzelnen beschrieben) so eingeführt, daß dann, wenn "mode" = 3, nur der positive Wert der Rechneraffinität Paf den Rechneridentifizierer "procid" gültig macht, bzw. ihm einen Wert verleiht, und wenn dieser Wert negativ ist, was anzeigt, daß es wiederholt stattgefunden hat, daß es über be­ stimmte Zeiten hinweg das Ergebnis der Bestimmung des Rechner- Identifizierers war, daß der gewählte Rechner zurückgewiesen wird, dann wird der Rechner-Identifizierer "procid" als ′0′ angesehen, wobei der Rechner-Identifizierer des Prozesses die zugeordnete Rechnernummer ändert. Der Vorrang Pr 323 stellt, wie oben beschrieben, die Ausführungspriorität des Prozesses dar, und der kleinere Wert stellt den höheren Vorrang dar. Ein Planfragezähler Src 324 bezeichnet die Nummer der Zählung, so daß der zur Ausführung anstehende Prozeß als nächster auszu­ führender Prozeß ausgewählt ist. Ein Planfrageschwellenwert Sth 325 bezeichnet einen oberen Wert von "Src". Die Rechner­ affinität Paf wird aus dem Planfragezähler Src der Planfrage­ schwelle Sth auf die folgende Weise errechnet:
Rechneraffinität Paf = Sth - Src
Obwohl bei diesem Ausführungsbeispiel der Wert von "Src" und "Sth" auf die oben festgestellte Weise definiert sind, kann auch eine andere Definition vorgenommen werden. Es kann beispielsweise "Src" als ein Zeitraum definiert werden, wäh­ renddessen der Prozeß zur Ausführung ansteht, und "Sth" kann als obere Grenze hierfür definiert werden. Es kann aber auch "Src" als Datenmenge für den Prozeß definiert werden, der im Pufferspeicher des Rechners verbleibt, der durch "procid" be­ zeichnet ist, und "Sth" kann als untere Grenze hierfür defi­ niert werden. Ferner kann "Src" als Datenmenge für den Prozeß definiert werden, die im Speicher verbleibt, und "Sth" kann als untere Grenze hierfür definiert werden.
Fig. 16 zeigt ein Flußdiagramm, das die Bearbeitung des Planers in diesem Ausführungsbeispiel darstellt.
Nachdem man die Rechnernummer P # des Rechners erhalten hat, an welchem der Planer betrieben wird (Stufe 261-1), wird der Prozeß mit dem höchsten Vorrang unter den zur Ausführung anstehenden Prozessen ausgewählt (Schritt 261-2), und dann werden der Rechner-Identifizierer procid und die Rechnerkon­ trollbetriebsart "mode" von der Prozeßführungstabelle für den gewählten Prozeß abgeleitet (Schritt 261-3). Dann wird der Rechner-Identifizierer "procid" überprüft (Schritt 261-4). Dieser Schritt ist identisch dem Schritt 311-2, der in Fig. 2 gezeigt ist. Zu diesem Zeitpunkt wird, wenn der gewählte Rech­ ner zurückgewiesen wird, und "mode" = 3 vorliegt (Schritt 261-6), nach Ändern von "Src" um einen Schritt (Schritt 261-7) die Rechneraffinität Paf überprüft (Schritt 261-8). Wenn die Rechneraffinität Paf negativ wird, dann wird die zugeordnete Rechnernummer P # als neuer Rechner-Identifizierer "procid" herangezogen (Schritt 261-9), und nachdem der Planfragezähler Src in Gang gesetzt wurde (auf ′0′ zurückgesetzt), wird der Prozeß dem Rechner zugeteilt (Schritt 261-5). Wenn im Schritt 261-8 der Wert von "Paf" nicht negativ ist, dann wird der Pro­ zeß mit nächsthöherem Vorrang gewählt (Schritt 261-10) und dieselbe Operation wie oben beschrieben wird wiederholt. Nach Fertigstellung der Überprüfung all der zur Ausführung anste­ henden Prozesse wird die Auswahl des Prozesses mit dem höch­ sten Vorrang wieder aufgenommen.
Nun wird der Betrieb des Planers zur Zeit "mode" = 3 be­ schrieben. Der Betrieb des Planers "mode" = 0, 1 und 2 erfolgt auf dieselbe Weise wie bei dem oben erwähnten Ausführungsbei­ spiel.
Es wird davon ausgegangen, daß nur ein einziger Prozeß zur Ausführung ansteht, die Prozeßüberwachungstabelle 32 die Werte aufweist, wie sie in Fig. 1(a) gezeigt sind, und der Prozeßplaner mit dem Rechner P 3 betrieben wird; es ist dann die Entscheidung des Rechner-Identifizierers "procid" (Schritt 261-4) negativ, so daß der Planfragezähler Src einen Schritt durchführt, so daß er ′1′ ist, und die Rechneraffinität Paf wird errechnet (Schritt 261-8). Zu diesem Zeitpunkt ist der Wert von "Paf" positiv, so daß der Prozeß mit dem nächsthöhe­ ren Vorrang ausgewählt wird (Schritt 261-10). Weil aber nur ein einziger Prozeß zur Ausführung in diesem Beispiel ansteht, wird derselbe Prozeß wiedergewählt und dieselbe Operation wird wiederholt. Schließlich wird bei der sechsten Auswahl des Pro­ zesses die Rechneraffinität Paf negativ. Dann wird der Rech­ ner-Identifizierer "procid" so eingestellt, daß er ′3′ beträgt und der Prozeß wird dem Rechner zugeteilt. Wenn die Planfrage­ schwelle Sth zunimmt, dann wird der Ausgangswert der Rechner­ affinität Paf höher, so daß sich die Anzahl von Malen, bei denen die Zuordnung des Prozesses zu einem anderen Rechner ab­ gelehnt wird, erhöht.
In anderen Worten, je größer die Planfrageschwelle, umso größer ist die Rechneraffinität, die zwischen dem Prozeß und dem entsprechenden Rechner definiert ist. Während die Zuord­ nung des Prozesses zu anderen Rechnern als dem angestrebten Rechner wiederholt abgelehnt wird, kann der angestrebte Rech­ ner freigesetzt werden, so daß er bereit ist. Dann wird der Prozeß unmittelbar dem angestrebten Rechner unter der Prozeß­ planung mit diesem Rechner zugeteilt. Es muß vermerkt werden, daß, obwohl diese neue Kontrollbetriebsart gemeinsam mit der oben beschriebenen Kontrollbetriebsart verwendet werden kann, diese neue Kontrollbetriebsart unabhängig verwendet werden kann.
Gemäß der neuen Kontrollbetriebsart kann ein Prozeß von dem Rechner, der einmal hierfür bestimmt wurde, mit einer höheren Wahrscheinlichkeit ausgeführt werden, indem man die Rechneraffinität auf einen höheren Wert ansetzt. Wenn somit der Rechner mit einem Pufferspeicher versehen ist, der eine große Menge von hierin gespeicherten Daten aufweist, kann ein beträchtlicher Vorteil dadurch erzielt werden, daß eine uner­ wünschte Prozeßwanderung unterdrückt wird und eine "Treffer­ rate" des Pufferspeichers erhöht wird. Gemeinsam hiermit kann die Begrenzung der Rechnerzuteilung infolge des Erreichens eines bestimmten Zustandes verringert werden, wobei eine unbe­ absichtigte Verschlechterung der Betriebsfähigkeit des Rech­ ners verhindert wird.
Ein fünftes Ausführungsbeispiel der vorliegenden Erfin­ dung wird unten beschrieben, wobei die Anzahl der Rechner, die vom Rechner-Identifizierer bezeichnet ist, sich von der Anzahl tatsächlicher Rechner unterscheidet, die tatsächlich inner­ halb des Mehrfach-Rechners betrieben werden können.
Im allgemeinen ist beschrieben, daß die Bestimmung des Rechners vom Prozeß (der Software) hier nicht abhängt von der Anzahl tatsächlicher Rechner. Deshalb kann, wenn man Bezug auf Fig. 19 nimmt, der Rechner-Identifizierer, der vom Prozeß be­ zeichnet wird, als logischer Rechner-Identifizierer 290-1 de­ finiert werden, und der Rechner-Identifizierer, der der Rech­ nernummer entspricht, wird als physikalischer Rechner-Iden­ tifizierer 290-2 bezeichnet. Eine Zuordnungstabelle 290 ist vorgesehen, die dazu dient, diese beiden Rechner-Identifizie­ rer einander zuzuordnen. Diese Zuordnungstabelle 290 ist beim gemeinsamen Speicher 5 ausgebildet, wenn man den Mehrfach- Rechner in Gang setzt. Im allgemeinen ist die Nummer des Wer­ tes des logischen Rechner-Identifizierers größer als jene des physikalischen Rechner-Identifizierers, so daß ein Wert des physikalischen Rechner-Identifizierers mehreren Wertes des logischen Rechner-Identifizierers zugeordnet wird. Bei dem in Fig. 19 gezeigten Beispiel umfaßt der logische Rechner-Identi­ fizierer die Werte ′0′ bis ′9′ (′0′ meint einen Code für den allgemeinen Zweck), während der physikalische Rechner-Identi­ fizierer Werte von ′0′ bis ′3′ umfaßt, weil nur drei Rechner tatsächlich vorliegen. Somit werden der Wert der physikali­ schen Rechner-Identifizierer, die den Werten ′4′ bis ′9′ des logischen Rechner-Identifizierers zugeordnet sind, gleichzei­ tig auch den anderen Werten des logischen Rechner-Identifizie­ rers zugeordnet.
Fig. 17 ist ein detailliertes Flußdiagramm, das die Ver­ wendung der Zuordnungstabelle 290 für den Betrieb des Planers (Fig. 2 oder Fig. 16) darstellt. Wenn die Zuordnungstabelle 290 bereits vorbereitet ist (Schritt 270-1), dann wird der Rechner-Identifizierer in der Rechenführungstabelle als logi­ scher Rechner-Identifizierer aufgefaßt, und der entsprechende physikalische Rechner-Identifizierer 290-2 wird aus der Zu­ ordnungstabelle 290 entnommen (Stufe 270-2). Diese werden nachfolgend als Rechner-Identifizierer verwendet (Schritt 270-3 und 270-4).
Fig. 18 ist ein anderes, detailliertes Flußdiagramm, wel­ ches die Zuordnungstabelle 290 zum Einstellen des zu bearbei­ tenden Rechners (Fig. 4) benutzt. Wenn die Zuordnungstabelle 290 bereits bereitgestellt ist (Schritt 280-1), dann wird der bezeichnete Rechner-Identifizierer als logischer Rechner-Iden­ tifizierer aufgefaßt, und der entsprechende physikalische Rechner-Identifizierer 290-2 "(PROCID)" wird von der Zuordnungs­ tabelle 290 entnommen (Schritt 280-2). Der Rechner-Identifi­ zierer wird in die Prozeßführungstabelle als Rechner-Identifi­ zierer 321 eingegeben. Da in diesem Fall kein Erfordernis für den Planer vorliegt, auf die Zuordnungstabelle 290 zurückzu­ greifen, wird die in Fig. 2 gezeigte Ablauffolge ohne jede Modifizierung verwendet.
Es ist aus dem Vorangehenden ersichtlich, daß der Rech­ ner-Identifizierer in zwei Typen von Rechner-Identifizierers eingestuft wird, nämlich logische Rechner-Identifizierer, von der Software her gesehen, und physikalische Rechner-Identifi­ zierer, in Abhängigkeit von der Hardware, und daß dann die Zuordnungstabelle 290 für die Zuordnung beider Rechner-Identi­ fizierer gebildet wird, wobei man die Software ohne jeden Zwang seitens der Hardware-Ausbildung vorbereiten kann. Wenn somit die Anzahl von Rechnern erhöht wird, ist es lediglich erforderlich, daß die Anzahl von Werten der tatsächlichen Rechner-Identifizierer erhöht wird und die Zuordnungstabelle entsprechend auf Stand gebracht wird, ohne daß irgendeine Än­ derung der vorliegenden Software vorgenommen wird.
Nun wird ein sechstes Ausführungsbeispiel gemäß der vor­ liegenden Erfindung beschrieben, worin die Rechner unter Ver­ wendung eines Typenidentifizierers 1021 bis 1023 statt der Rechnernummern, wie oben beschrieben, spezifiziert werden. Der Begriff "Prozeß", wie er oben beschrieben ist, wird nachfol­ gend als "Arbeit" bezeichnet. Jede der Arbeiten weist einen ausführbaren/nicht-ausführbaren Merker auf, der darstellt, ob die Arbeit für jeden Rechnertyp ausführbar oder nicht ausführ­ bar ist. Die Arbeiten, die zur Ausführung anstehen, bilden eine Wartereihe. Bei diesem Ausführungsbeispiel ist eine sol­ che Anordnung getroffen, daß das Planerprogramm in jedem Rech­ ner vorgesehen ist. Es wird näher auf Fig. 20 Bezug genommen; alle Rechner 1011 bis 1013 sind für einen Hauptspeicher 104 über eine gemeinsame Sammelleitung 103 zugänglich. Die Rechner 1011 und 1012 sind "Typ-0-Rechner", die jeweils einen Satz gleicher Instruktionen aufweisen, und der Rechner 1013 ist ein "Typ-1-Rechner", der einen anderen Satz von Anweisungen auf­ weist. Die Typen der Rechner werden mit den Rechnertypen-Iden­ tifizierern 1021 bis 1023 identifiziert. Es ist auch mög­ lich, daß dieselbe Art der Rechner unterschiedlichen Rechner­ typ-Identifizierern zugeordnet sein kann, wie es im oben er­ wähnten Ausführungsbeispiel der Fall ist.
Der Hauptspeicher 104 weist eine Wartereihe von Arbeiten 1061 bis 1063 auf, die hierin gespeichert sind und zur Aus­ führung anstehen. Die Wartereihe wird dadurch angeordnet, daß man die Arbeiten miteinander durch Hinweiseadressen 1561 und 1562 verbindet, die jede Arbeit aufweist. Die Wartereihe hat an ihrem obersten Abschnitt eine Startkennung (header) 105. Es wird davon ausgegangen, daß die Arbeiten 1064 bis 1066 sich in der laufenden Ausführung durch die Rechner 1011 bis 1013 be­ finden. Wie oben beschrieben, sind die Arbeiten 1061 bis 1063 mit ausführbaren/nicht-ausführbaren Merkern 1071 bis 1073 so versehen, daß jeder Merker in jeder Bit-Position jedem Rech­ nertyp entspricht. Wenn der Merker auf ′1′ eingestellt ist, dann ist die Arbeit durch die entsprechende Art von Rechner ausführbar, während dann, wenn der Merker auf ′0′ eingesetzt ist, sie nicht ausführbar ist. Beispielsweise bezeichnet der ausführbare/nicht-ausführbare Merker 1071 (Fig. 20), daß die Arbeit 1061 durch Rechner des Typs 1 und des Typs 2 ausführ­ bar ist, aber nicht durch einen Rechner des Typs 0.
Fig. 21 zeigt den Inhalt der Rechnertyp-Identifizierer 1021 bis 1023, die aus drei Bits bestehen, wobei lediglich ein Bit von diesen auf ′1′ eingestellt ist. Die Rechnertyp-Identi­ fizierer 1021 bis 1023 sind so angeordnet, daß die Bestimmung, ob die Aufgabe durch ihre Art von Rechner durchführbar ist oder nicht, durch eine logische UND-ODER-Entscheidung über diese Rechnertyp-Identifizierer und ausführbaren/nicht-aus­ führbaren Merker 1071 bis 1073 durchgeführt werden kann.
Fig. 22 ist ein Flußdiagramm des Planerprogramms (nach­ folgend einfach als "Planer" bezeichnet). Gemäß diesem Aus­ führungsbeispiel ist dieser Planer in jedem der Rechner 1011 bis 1013 angeordnet und wird dann aktiviert, wenn die vom Rechner gerade durchgeführte Arbeit fertiggestellt ist und wenn eine Zeitgeber-Unterbrechung stattfindet. Die Zeitgeber­ unterbrechung für jeden Rechner findet bei einem festliegenden Zeitintervall statt. Wenn man davon ausgeht, daß die Zeitge­ ber-Unterbrechung für den Rechner 1011 nun stattgefunden hat und der Planer gestartet wurde, dann wird im Schritt 201 der Identifizierer 1021, der die Art des eigenen Rechners anzeigt, wieder aufgefunden. In diesem Fall ist der abgelesene Wert ′100′. Im Schritt 202 wird dann die Arbeit 1061 gesucht, die durch die Startkennung 105 der Wartereihe bezeichnet ist. Nachfolgend wird im Schritt 203 die Wartereihe überprüft, um festzustellen, ob hierin irgendeine Arbeit angeordnet ist und ob nicht die Reihenfolge auf den Schritt 204 für den Leerbe­ trieb überführt wurde. Es wird nun auf Fig. 22 Bezug genommen; weil die Arbeit 1061, die hier angeordnet ist, eine logische UND-ODER-Entscheidung ist, wird S des ausführbaren/nicht-aus­ führbaren Merkers und des Rechnertyp-Identifizierers im Schritt 205 abgenommen. Dies wird auf eine solche Weise er­ reicht, daß die logische Addierung des ausführbaren/nicht-aus­ führbaren Merkers und des Rechnertyp-Identifizierers zunächst für jedes Bit durchgeführt wird und dann die logische ODER- Entscheidung der Resultate, die hiervon erhalten werden, durchgeführt wird. Wenn die logische Addierung irgendeine Kombination zweier Bits ′1′ erzeugt, dann bezeichnet dies, daß die Arbeit vom entsprechenden Rechner durchführbar ist. In diesem Fall erzeugt, weil ′110′ für den ausführbaren/nicht­ ausführbaren Merker 1071 und ′001′ für den Rechnertyp-Identi­ fizierer 1021 steht, dann die logische Addierung für jedes Bit ′0′. Deswegen wird S = 0 abgeleitet, was anzeigt, daß die Auf­ gabe 1061 vom Rechner 1011 nicht durchführbar ist. Dann läuft die Folge bis zum Schritt 207 weiter, um die nächste Arbeit in der Wartereihe nachzusehen. Der nachfolgende Schritt 203 be­ stimmt, ob irgendeine Arbeit in der Reihe vorliegt und wenn die Arbeit 1062 gefunden wird, dann werden die logische UND-/ ODER-Entscheidung ′S′ des Merkers 1072 für die Ausführbarkeit oder Nichtausführbarkeit und der Rechnertyp-Identifizierer 1021 in den Schritten 205 entnommen. Zu diesem Zeitpunkt er­ zeugt, weil ′001′ für den Merker 1072 und ′001′ für den Iden­ tifizierer 1021 vorliegen, die logische Addition für jeden Bit ′0′. ′0′, ′1′ und das logische ODER hiervon erzeugt ′1′ was anzeigt, daß die Aufgabe ausführbar ist. Dann wird die Aufgabe 1062 aus der Wartereihe in dem Schritt 208 entfernt. Danach wird die Aufgabe, die vom Rechner 1011 ausgeführt war (und die infolge der Unterbrechung des Zeitablaufs suspendiert war) in den unteren Abschnitt der Wartereihe im Schritt 209 einge­ rückt. Das Einrücken und Entfernen der Aufgabe in die Warte­ reihe und aus dieser wird durch Ändern der Hinweisadresse durchgeführt. Dann wird die aus der Wartereihe entfernte Auf­ gabe 1062 im Schritt 210 ausgeführt.
Fig. 23 zeigt Zeitablaufpläne P 0, P 1 und P 2, die jeweils ein Beispiel darstellen, in welchem Arbeiten durch jeden Rech­ ner ausgeführt werden. Die Zeitablaufpläne P 0, P 1 und P 2 be­ zeichnen die Zeitfolge von Operationen, die von den Rechnern 1011 bis 1013 ausgeführt werden, wobei das Planerprogramm in­ folge der Zeitsteuerunterbrechungen 301 bis 309 und infolge des Endes 350 einer Arbeit gestartet wird, und die Arbeiten 360 bis 370 werden bei den zugeordneten Rechnern durchgeführt. Genauer gesagt, es wird davon ausgegangen, daß zuerst die Rechner 1011 bis 1013 die Arbeiten T 3, T 4 bzw. T 5 ausführen. Wenn die Zeitunterbrechung 301 in den Rechner 1011 eingegeben wird, dann wird die Arbeit T 1 dem Rechner zugeteilt, wie oben unter Bezugnahme auf Fig. 22 beschrieben. Dann wird die Zeit­ unterbrechung 304 in den Rechner 1012 zur Ausführung der Ar­ beit T 2 eingegeben, und die Zeitunterbrechung 307 wird in den Rechner 1013 zur Durchführung der Arbeit T 0 eingegeben. Infolge des Endes 350 der Arbeit T 2, die ausgeführt ist, nimmt der Rechner 1012 wieder die Ausführung der Arbeit T 3 auf, usw.
Fig. 24 ist eine Arbeitstabelle zum Auflisten der Arbei­ ten 1061 bis 1066, die in Fig. 20 gezeigt sind, welche äqui­ valent ist der Prozeßführungstabelle im vorangehenden Ausfüh­ rungsbeispiel. Ein Arbeitsidentifizierer 150 ist eine laufende Nummer, die an der Arbeit vorgesehen ist, die verwendet wird, um die Arbeit zu identifizieren, wenn an diese ein Signal ab­ gegeben wird. Ein Arbeitsstatus 151 bezeichnet einen der lau­ fenden Arbeitszustände, wie unten gezeigt.
Benutzerlauf:
Status, in welchem die Arbeit des Benutzerprogramms vom Rechner ausge­ führt wird;
Kernlauf:
Status, in welchem das Systemprogramm infolge der Tatsache ausgeführt werden muß, daß der Systemruf ohne die Unter­ brechung ausgeführt wird, während das Benutzerprogramm vom Rechner ausgeführt wird;
Bereit zum Start:
Status, in welchem die Arbeit bereit ist zur Durchführung, während sie war­ tet, einem Rechner zugeteilt zu werden. Die Arbeit befindet sich noch in der Wartereihe; und
Ruhe:
Status, der für das Auftreten bestimm­ ter Ereignisse wartet, wie einer Ein­ gang-/Ausgang-Antwort usw.
Der Vorrang 152 bezeichnet einen Ausführungsvorrang für die Arbeit, und der höhere Wert hiervon führt dazu, daß die Arbeit von einem Rechner früher ausgeführt werden muß. Die Wartereihe der Arbeiten, die zur Zuordnung zu den Rechnern anstehen, ist so angeordnet, daß sie die Arbeiten in abfallen­ der Reihenfolge, nach dem Vorrang geordnet, anordnet.
Ein Merker 107 für die Ausführbarkeit/Nicht-Ausführbar­ keit, der auf dieselbe Weise wie die Merker 1071 bis 1073 in Fig. 20 angeordnet ist, ist auch vorgesehen, um die vorliegende Erfindung zu realisieren. Dieser Merker enthält die Infor­ mation, die anzeigt, welche Art von Rechner den Prozeß aus­ führen kann. Ein Signalfeld 153 enthält das Signal, das zwi­ schen den Arbeiten informiert über die Unterbrechung der Ar­ beit, Fertigstellung der Arbeit, einen Fehler, der aufgetreten ist, u. dgl. Ein Zeitgeber bzw. Zeitfeld 108 (timer) ist ein Feld, in welches die Zeitinformation eingegeben wird, wie etwa die Ausführungszeit einer Aufgabe, die Ausführungszeit eines Systems o. dgl. Eine Bereichstabelle 154 speichert eine Hin­ weisadresseninformation, um auf eine Seitentabelle eines Bereichs hinzuweisen, wo das Programm und die Daten, die mit der Arbeit verwendet sind, gespeichert sind, sowie eine Be­ messungsinformation dieses Bereichs. Ein Registerbewahrungs­ bereich 155 wird verwendet, um zeitweise die Information zu bewahren, die im Arbeitsregister vor der Unterbrechung ent­ halten ist, beispielsweise, wenn eine Arbeit infolge der Zeit­ geber-Unterbrechung unterbrochen wird. Nachfolgend wird in­ folge der Wiederaufnahme der unterbrochenen Arbeit unter dem Plan die Arbeit wieder ausgeführt, und zwar auf der Grundlage der Information, die in diesem Bewahrungsbereich abgespeichert ist. Schließlich sind die Hinweisadressen 156 und 157 solche Hinweisadressen, die die Arbeiten in der Wartereihe positio­ nieren, wie in Fig. 20 gezeigt.
Wie oben unter Bezugnahme auf Fig. 20 beschrieben, ist das hier offenbarte Ausführungsbeispiel 2 so eingerichtet, daß jeder der Rechner mit dem Planerprogramm versehen ist, so daß jeder Rechner imstande ist, seine eigene Arbeitsplanung vorzu­ nehmen. Es ist jedoch auch möglich, daß die Planung der Arbeit durch einen solchen Rechner durchgeführt wird, auf den die geringste Belastung übertragen wurde. Fig. 25 zeigt ein sieb­ tes Ausführungsbeispiel der vorliegenden Erfindung, das auf diese Weise aufgebaut ist. Die Anordnung der Fig. 25 ist iden­ tisch jener der Fig. 20, mit der Ausnahme, daß der Hauptspei­ cher eine Liste 110 zum Speichern der Arten von Rechnern im System aufweist. Infolge der Initiierung des Systems liest jeder Rechner seinen eigenen Rechnertyp-Identifizierer 1021 bis 1023 ab und trägt ihn dann in diese Liste 110 ein. Dann ist der Planer 109 imstande, den Typ des Rechners zu identi­ fizieren, der nun die Planung vornimmt.
Fig. 26 ist ein Flußdiagramm, das eine Folge von Schrit­ ten für ein Planerprogramm bei diesem Ausführungsbeispiel dar­ stellt, wobei die Zeitgeberunterbrechung zur Planung durch irgendeinen Rechner durchgeführt wird, der eine niedrigere Belastung aufweist. Es wird davon ausgegangen, daß in Fig. 25 die Zeitunterbrechung in den Rechner 1012 eingegeben wird, und das Planerprogramm ausgeführt wird, und dann auf den ersten Schritt 701 in Fig. 26 zugegriffen wird, um die Arbeit 1061 nachzuschlagen, die durch die Startkennung 105 der Wartereihe bezeichnet ist. Dann wird im Schritt 702 eine Überprüfung vor­ genommen, ob die Arbeit gegenwärtig vorliegt oder nicht. Wenn hier keine Arbeit vorliegt, dann wird vom Planerprogramm auch keine Operation bewirkt, aber wenn man davon ausgeht, daß hier die Arbeit 1061 vorliegt, dann schreitet die Folge auf den Schritt 703 fort. In diesem Schritt 703 wird ein leerlaufender Rechner, wenn es einen gibt, unter den Rechnern ausgewählt, die in die Lage versetzt wurden, die Arbeit auszuführen, und zwar infolge von Merkern über die Ausführbarkeit/Nicht-Aus­ führbarkeit (durch Überprüfen der Liste 110 im Hauptspeicher 104). Wenn hier jedoch kein solcher leerlaufender Rechner vor­ liegt, dann wird das Zeitfeld 108 in Fig. 24 überprüft, um die Bearbeitungszeit jener Arbeit zu bestimmen, die gegenwärtig gerade ausgeführt wird, und ein Rechner wird gewählt, der die längste Bearbeitungszeit aufweist. Genauer gesagt, im Ausfüh­ rungsbeispiel der Fig. 25 sind, wegen des ′110′ des Merkers für die Ausführbarkeit/Nicht-Ausführbarkeit, die Rechner, die zur Ausführung der Arbeit geeignet sind, Rechner der Typen 1 und 2. In diesem Fall ist der Rechner 1013 alleine der Rech­ ner, der diesen entspricht, so daß die Auswahl dieses Rechners vorgenommen wird. Dann wird im Schritt 704 die Arbeit, die vom Rechner durchgeführt wird, der auf diese Weise ausgewählt wur­ de, unterbrochen und der Status der Arbeit wird bewahrt. Ge­ nauer gesagt, der gewählte Rechner führt gerade eine Arbeit T 5 aus, so daß diese Arbeit unterbrochen wird und der Status des Registers infolge der Unterbrechung auf den Registerbewah­ rungsbereich 155 in der Arbeitstabelle von der Arbeit T 5 her übertragen wird. Anschließend wird im Schritt 705 die unter­ brochene Arbeit T 5 in die Wartereihe eingereiht. Die Lage in der Wartereihe, in welche die Arbeit eingereiht wurde, wird so bestimmt, daß die Arbeiten in abfallender Reihenfolge erledigt werden, auf den Vorrang 152 bezogen, der in die Arbeitstabelle eingetragen ist. Ferner wird die Arbeit 1061 (T 6), die im Schritt 706 ausgewählt wurde, aus der Wartereihe entnommen und wird durch den ausgewählten Rechner 1013 ausgeführt.
Fig. 27 zeigt Zeitablaufpläne P 0, P 1 und P 2, die jeweils ein Beispiel darstellen, bei welchem durch jeden Rechner Ar­ beiten durchgeführt werden. Die Zeitablaufpläne P 0, P 1 und P 2 bezeichnen Zeitfolgen von Operationen, die von den Rechnern 1011 bis 1013 ausgeführt werden, wobei zum Zeitpunkt der Fer­ tigstellung 330 bis 332 des Planerprogramms die ausführbaren Arbeiten durch programmabhängige Schalter (context switches) 340 bis 342 geschaltet werden. Genauer gesagt, es wird davon ausgegangen, daß zuerst die Rechner 1011 bis 1013 die Aufgabe T 3, das Planungsprogramm S bzw. die Aufgabe T 5 ausführen. Der Planer S veranlaßt eine Unterbrechung der Aufgabe T 5, die vom Rechner 1013 ausgeführt wird, mit dem textabhängigen Schalter 342 und startet stattdessen die Durchführung der Aufgabe T 0 durch diesen Rechner, wie dies unter Bezugnahme auf Fig. 26 beschrieben ist. Am Ende des Planers S nimmt der Rechner 1012 die Ausführung der Aufgabe T 4 wieder auf, bei deren Ausführung er war. Nach dem festen Zeitraum wird die Zeitunterbrechung 310 wiederum in den Rechner eingegeben, und der Planer S wird ausgeführt. Der Planer S dient dazu, die Aufgabe T 1 in Fig. 25 aus der Wartereihe zu nehmen. Weil ′001′ des Merkers für die Ausführbarkeit/Nicht-Ausführbarkeit 1072 für die Aufgabe T 1 ist, können Rechner des Typs 0 verwendet werden, um die Auf­ gabe durchzuführen. Obwohl die Rechner 1011 und 1012 Rechner des Typs 0 sind, arbeiten sie jetzt gegenwärtig andere Aufga­ ben aus, so daß einer von den Rechnern, der die längere Bear­ beitungszeit von den Aufgaben aufweist, die auszuführen ist, gewählt wird. Insbesondere in Fig. 27 wird davon ausgegangen, daß der Rechner 1011 die längere Bearbeitungszeit als jene des Rechners 1012 aufweist, und der Rechner 1011 wird für die Aus­ führung der Arbeit T 1 ausgewählt. Danach und infolge der Zeit­ unterbrechung zu dem festen Zeitintervall wird der Planer durch irgendeinen anderen Rechner ausgeführt, und die Planung der Arbeiten in der Wartereihe wird auf dieselbe Weise durch­ geführt.
Fig. 28 zeigt ein achtes Ausführungsbeispiel gemäß der vorliegenden Erfindung, worin Rechner 1011 bis 1013 unter­ schiedliche Ausbildungen aufweisen, wie durch die Identifizie­ rer 1021 bis 1023 jeweils angezeigt ist, und sie habe Anwei­ sungssätze, die sich teilweise voneinander unterscheiden. Ein Hauptspeicher 104 weist eine Wartereihe mit Arbeiten 1061 bis 1063 auf, die hierin angeordnet sind. Diese Arbeiten sind jeweils mit Tabellen 1081 bis 1083 versehen, damit der Vorrang einer jeden Art von Rechner für jede Aufgabe eingespeichert wird. Die erste Reihe der Tabelle 1081 zeigt an, daß der Rech­ ner des Typs 0, der den Rechnertyp-Identifizierer ′001′ auf­ weist, den Vorrang ′0′ für die Arbeit 1061 aufweist, in ande­ ren Worten, ein Rechner des Typs 0 kann diese Aufgabe nicht ausführen. Die folgenden Reihen der Tabelle 1081 besagen, daß der Rechner des Typs 1 den Vorrang ′10′ aufweist und der Rech­ ner des Typs 2 den Vorrang ′20′.
Fig. 29 ist ein Flußdiagramm, das das Planerprogramm dar­ stellt, das in dem in Fig. 28 gezeigten Ausführungsbeispiel benutzt wird. Das Planerprogramm wird zum Zeitpunkt der Fer­ tigstellung der Arbeit und beim Auftreten der Zeitunterbre­ chung für die Planung ausgeführt, so wie beim Planerprogramm, das in Fig. 22 gezeigt ist. Die Zeitgeber-Unterbrechungen wer­ den in die einzelnen Rechner im festen Zeitintervall einge­ bracht. Nun wird Bezug auf den Fall genommen, in welchem die Zeitgeber-Unterbrechung in den Rechner 1103 eingebracht ist und das Planerprogramm unter der Bedingung ausgeführt ist, wie sie in Fig. 28 gezeigt ist. Als erstes liest im Schritt 1001 der Rechner seinen eigenen Rechnertyp-Identifizierer 1021 ab. Der Wert des Rechnertyp-Identifizierers, der somit abgelesen ist, ist somit ′010′. Dann wird der Schritt 1002 ausgeführt, um zu bestimmen, ob die Arbeit mit der Startkennung 105 der Wartereihe verbunden ist. Wenn nicht, wird die Anzeige ausge­ führt, daß keine Arbeit ausgeführt werden soll, dann wird ein Leerprozeßschritt 1003 durchgeführt. Weil in diesem Beispiel jedoch die Arbeit 1061 angeschlossen ist, ist die Antwort des Schrittes 1002 "JA". Deshalb wird im Schritt 1004 die Arbeit mit dem höchsten Vorrang entsprechend dem Rechnertyp-Identi­ fizierer aus den in der Wartereihe angeordneten Arbeiten aus­ gewählt. Wie in Fig. 28 gezeigt, sind die Arbeiten 1061 bis 1063 in der Wartereihe mit den Vorrängen ′10′, ′0′ bzw. ′20′ angeordnet, jeweils ensprechend dem Rechneridentifizierer ′010′. Somit wird die Arbeit 1063 mit dem Vorrang ′20′ ausge­ wählt. Weil der Vorrang der somit ausgewählten Arbeit nicht ′0′ ist, wird die Folgeanzeige durchgeführt, daß keine Arbeit mit dem Typ des eigenen Rechners ausführbar ist, dann wird der Leerbetrieb 1003 durchgeführt. Im Schritt 1006 wird die Arbeit 1063 der Wartereihe entnommen. In anderen Worten, die Hinweis­ adresse 1562 wird gelöscht. Schließlich wird im Schritt 1007 die Arbeit 1063 ausgeführt.
Fig. 30 zeigt eine Arbeitstabelle 106 zum Realisieren jene der Arbeiten, die in Fig. 28 gezeigt sind. Die Arbeits­ tabelle 106 ist identisch mit jener, die in Fig. 24 gezeigt ist, ausgenommen die Tatsache, daß der Merker 107 für die Aus­ führung/Nicht-Ausführung in Fig. 24 gestrichen ist und der Vorrang 152 in Fig. 24 ersetzt ist durch den Vorrang 158 für jeden Rechnertyp. Deshalb wird die Information, die die Aus­ führbarkeit der Arbeit betrifft, welche durch den Merker für die Ausführbarkeit/Nicht-Ausführbarkeit ausgedrückt ist, in diesem Ausführungsbeispiel dadurch dargestellt, ob der Vor­ rang 158 ′0′ ist oder nicht.
Fig. 31 zeigt ein neuntes Ausführungsbeispiel gemäß der vorliegenden Erfindung. Obwohl im Ausführungsbeispiel der Fig. 28 jeder Rechner ein Planerprogramm aufweist, welches dazu eingerichtet ist, die Planung des Rechners vorzunehmen, ist im Ausführungsbeispiel der Fig. 31 ein Hauptspeicher 104 mit einer Liste 110 versehen, um die Typen der Rechner zu spei­ chern, und jeder der Rechner führt unter Benutzung dieser Liste die Planung so durch, wie es erforderlich ist. Zu diesem Zweck kann nach dem Ingangsetzen des Systems jeder Rechner seinen eigenen Rechnertyp-Identifizierer 1021 bis 1023 ablesen und sich in die Liste 110 eintragen.
Fig. 32 ist ein Flußdiagramm, das die Wirkungsweise des Planers gemäß der vorliegenden Erfindung darstellt. Das Planerprogramm wird durch jeden Rechner ausgeführt, der eine niedrige Last aufweist, die auf diesen aufgebracht ist, wenn die Zeitsteuer-Unterbrechung für die Planung aufgenommen ist. Es wird beispielsweise, wie in Fig. 31 gezeigt, davon ausge­ gangen, daß die Zeitsteuer-Unterbrechung in den Rechner 1011 eingegeben wird und dann das Planerprogramm 109 ausgeführt wird. In einem solchen Fall wird im Schritt 1301 die Arbeit 1061, die von der Startkennung 105 in der Wartereihe bezeich­ net ist, nachgesehen. Wenn im Schritt 1032 keine unbearbeitete Arbeit gefunden wird, wird das Planerprogramm ohne jede Wir­ kun beendet. Wenn man davon ausgeht, daß eine Arbeit 1061 gefunden wird, dann geht die Folge auf den Schritt 1303 wei­ ter, wo unter Bezugnahme auf die Vorrangtabelle 1081 für die Arbeit 1061 der Rechnertyp mit dem höchsten Vorrang ausge­ wählt wird. In einem solchen Fall wird der Rechnertyp-Identi­ fizierer ′100′ (Typ 2) mit dem Vorrang ′20′ ausgewählt. Dann wird im Schritt 1304 der Rechnertyp in der Liste 110 nachgese­ hen, und für den Rechner 1012 wird herausgefunden, daß er dieser Typ von Rechner ist. In diesem Zusammenhang muß ver­ merkt werden, daß, obwohl Bezug nur auf einen Rechner dieses Typs in diesem Fall genommen wurde, dann, wenn mehrere Rechner dieses Typs vorliegen, jener Rechner mit der längsten Ausfüh­ rungszeit jener Arbeit, die gerade von ihm ausgeführt wird, ausgewählt wird. Dann wird im Schritt 1305 die Arbeit, die vom ausgewählten Rechner ausgeführt wird, unterbrochen und der Status der Arbeit wird bewahrt. Genauer gesagt, wegen der Arbeit T 4, die vom Rechner 1012 ausgeführt wird, wird die Arbeit T 4 unterbrochen und der Status des Registers bei der Unterbrechung wird in den Registerbewahrungsbereich 155 (Fig. 30) der Arbeitstabelle für die Arbeit 1065 (T 4) eingegeben und dort bewahrt. Im Schritt 1306 wird die unterbrochene Arbeit T 4 in die Unterseite bzw. Rückseite der Wartereihe eingegeben. Schließlich wird im Schritt 1307 die ausgewählte Arbeit 1061 aus der Wartereihe entnommen und wird durch den gewählten Rechner 1012 ausgeführt.
Fig. 33 zeigt ein weiteres erfindungsgemäßes Ausführungs­ beispiel, in welchem drei Rechner 1011 bis 1013 mit örtlichen Speichern 3101 bis 3103 jeweils mit einem Netzwerk 300 verbun­ den sind. Obwohl in den in Fig. 20, 25, 28 und 31 gezeigten Ausführungsbeispielen die Wartereihe im Hauptspeicher 104 ge­ speichert ist, der von allen Rechnern her zugänglich ist, wird gemäß dem Ausführungsbeispiel der Fig. 33 die Wartereihe je­ doch im örtlichen Speicher 3101 des übergeordneten Rechners 1011 gespeichert. Wenn deshalb das Erfordernis für einen ande­ ren Rechner als den Rechner 1011 besteht, Zugang zur Warte­ reihe für die Planung zu nehmen, dann muß der Rechner den Zu­ gang zum örtlichen Speicher 3101 durch das Netzwerk 300 und den Rechner 1011 nehmen. Die Bestimmung der Ausführbarkeit und die Planung auf der Grundlage des Vorranges werden auf die­ selbe Weise wie in den oben beschriebenen Ausführungsbeispie­ len vorgenommen.
Fig. 34 zeigt ein weiteres Ausführungsbeispiel gemäß der vorliegenden Erfindung, welches eine Modifizierung des Ausfüh­ rungsbeispieles ist, das in Fig. 33 gezeigt ist. In diesem Ausführungsbeispiel liegt kein übergeordneter Rechner vor, so daß dieselbe Wartereihe in allen örtlichen Speichern gespei­ chert ist. In anderen Worten, dieselben Arbeiten 1061 und 1062 sind mit den Startkennungen 1051 bis 1053 aller örtlichen Speicher 3101 bis 3103 so verbunden, daß jeder Rechner so an­ geordnet ist, daß er unter Bezug auf seinen eigenen örtlichen Speicher die Planung vornimmt. Wenn irgendein Rechner wünscht, seine Wartereihe zu aktualisieren, dann muß der Rechner die Ermächtigung zur Aktualisierung von allen anderen Rechnern erhalten und die Aktualisierung dann innerhalb des eigenen örtlichen Speichers vornehmen. Zusätzlich muß, um dieselbe Aktualisierung der Wartereihe für alle anderen Rechner durch­ zuführen, die Nachricht, die die Aktualisierung betrifft, über das Netzwerk 300 allen anderen Rechnern zugesandt werden.
Fig. 35 zeigt ein weiteres Ausführungsbeispiel der vor­ liegenden Erfindung, in welchem örtliche Speicher 3101 bis 3103 im Ausführungsbeispiel, das in Fig. 34 gezeigt ist, als ein einziger, virtueller, gemeinsamer Speicher 320 angeordnet sind. Bei dieser Anordnung kann jeder der Rechner Zugang zu jedem der örtlichen Speicher nehmen, und die Wartereihe, die zur Planung verwendet wird, ist in diesem virtuellen gemein­ samen Speicher 320 abgespeichert.
Fig. 36 zeigt ein Beispiel, das die Auflistung (mapping) der logischen Adressen innerhalb des virtuellen, gemeinsamen Speichers 320 und die physikalischen Adressen darstellt. Die Adressenbereiche des logischen Adressenraums 500 für den vir­ tuellen, gemeinsamen Speicher sind jenem der physikalischen Adressenräume 5101 bis 5103 für die örtlichen Speicher 3101 bis 3103 wechselweise zugeordnet, wie in der Fig. 36 bezeich­ net. Fig. 37 zeigt eine Adressen-Umrechnungstabelle, um die gegenseitige Zuordnung sowohl logischer als auch physikali­ scher Adressenräume zu bewirken. Es wird beispielsweise davon ausgegangen, daß irgendein Rechner einen Zugang zu einer Seite mit der logischen Adresse ′0′ nimmt und daß die Rechnerzahl ′ID 0′ für diese Seite gleich ist der Rechnerzahl des Rech­ ners. Dann liest der Rechner die Seite bei der physikalischen Adresse ′0′ innerhalb des eigenen Speichers ab. Wenn jedoch die Rechnerzahl für diese Seite nicht gleich ist der Rechner­ zahl des eigenen Rechners, dann sendet der Rechner, der den Zugang genommen hat, eine Nachricht durch das Netzwerk 300, die anfordert, daß der Rechner mit der Nummer ′ID 0′ die Seite zur physikalischen Adresse ′0′ übertragen soll. Der Rechner, der die Nachricht empfängt, gibt dann die angeforderte Seite an den anfragenden Rechner in Form einer Nachricht zurück. In diesem Ausführungsbeispiel werden die Bestimmung der Ausführ­ barkeit der Arbeit und die Kontrolle auf der Grundlage des Vorganges auf dieselbe Weise wie bei den oben beschriebenen Ausführungsbeispielen ausgeführt.
Während die Erfindung hinsichtlich bevorzugter Ausfüh­ rungsbeispiele beschrieben wurde, ist es ersichtlich, daß verschiedenartige Änderungen vorgenommen werden können, ohne daß man den Umfang der Erfindung verläßt.
Soweit Unklarheiten über gewählte Begriffe vorliegen, wird ausdrücklich auf die in der Zeichnung ver­ wendeten Begriffe Bezug genommen.
Insgesamt ist ein Prozeß-Planungsverfahren für einen Vielfach-Rechner offenbart, der eine Anzahl von Rechnern auf­ weist, wobei das Planungsverfahren so angeordnet ist, daß es einen zur Durchführung anstehenden Prozeß einem eigentlichen Rechner zuordnet. Jeder der Prozesse weist einen Rechner-Iden­ tifizierer auf, um einen Rechner zu identifizieren, der den Prozeß ausführen kann. Bei der Zuordnung eines Prozesses zu einem bestimmten Rechner wird der Rechner-Identifizierer des Prozesses als ein Bezug verwendet, um zu überprüfen, ob der Prozeß vom Rechner ausführbar ist. Dieses Prozeß-Planungs­ system kann nicht nur bei einem System Anwendung finden, in dem Rechner mit verschiedenem Aufbau enthalten sind, sondern auch bei einem System, in welchem Rechner mit dem gleichen Aufbau enthalten sind.

Claims (49)

1. Planungsverfahren für einen Mehrfach-Rechner, der eine Anzahl von Rechnern und einen gemeinsamen Speicher aufweist, in den sich die Anzahl von Rechnern teilt, um Programm und Daten abzuspeichern, wobei im Verfahren ein Prozeßplaner irgendeinen der Rechner jedem der Prozesse zuteilt, gekennzeichnet durch die folgenden Schritte:
  • - Erstellen einer Prozeßführungstabelle zum Führen eines jeden der Prozesse,
  • - Eingeben einer Rechner-Zuteilungsinformation für jeden der Prozesse in die Prozeßführungstabelle, wobei die Rechner­ zuteilungsinformation einen Rechner bezeichnet, dem es ge­ stattet ist, jeden der Prozesse auszuführen,
  • - Betreiben des Prozeßplaners, um einen Rückgriff auf die Prozeßführungstabelle für einen Prozeß vorzunehmen, der für die nächste Durchführung ausgewählt ist, und
  • - Durchführen des Prozesses durch jenen Rechner, der die­ sem auf der Grundlage der Prozeßführungsinformation für den Prozeß zugeteilt ist.
2. Prozeß-Planungsverfahren nach Anspruch 1, dadurch gekenn­ zeichnet, daß die Rechner-Zuteilungsinformation einen Code für einen allgemeinen Zweck aufweist, der anzeigt, daß der Prozeß durch jeden der Rechner ausführbar ist.
3. Prozeß-Planungsverfahren nach Anspruch 1, dadurch gekenn­ zeichnet, daß die Rechner-Zuteilungsinformation einen anderen Code aufweist, der anzeigt, daß der Prozeß durch die Rechner ausführbar ist, ein spezieller Rechner augenommen.
4. Prozeß-Planungsverfahren nach Anspruch 2, dadurch gekenn­ zeichnet, daß das Verfahren die folgenden Schritte aufweist:
  • - Umwandeln der Rechner-Zuteilungsinformation für den Prozeß, die den Code für den allgemeinen Zweck als Rechner- Zuteilungsinformation aufweist, in einen Code zum Bezeichnen jenes Rechners, der ausgewählt ist, um den Prozeß auszuführen, wobei die Umwandlung zur Zeit nach der Bestimmung des Rech­ ners, aber vor dem Beginn der Prozeßausführung durchgeführt wird, und
  • - Rückumwandeln der Rechner-Zuteilungsinformation in den Code mit dem allgemeinen Zweck zur Zeit nach Ende der Prozeß­ durchführung.
5. Prozeß-Planungsverfahren nach Anspruch 1, ferner gekenn­ zeichnet durch die folgenden Schritte:
  • - Bereitstellen eines Speicherbereichs zum Speichern von Kontrollbetriebsarten für jeden Prozeß in der Prozeßführungs­ tabelle, und
  • - Festlegen eines Codes zur Zuteilung des Prozeß-Pla­ nungsverfahrens nach Anspruch 4 als eine der Kontrollbetriebs­ arten.
6. Prozeß-Planungsverfahren nach Anspruch 5, dadurch gekenn­ zeichnet, daß ein anderer Code, der ständig die Rechner-Zu­ teilungsinformation festlegt, als eine der Kontrollbetriebs­ arten definiert wird und daß für den Prozeß, dem der genannte andere Code zugeteilt ist, die Rechner-Zuteilungsinformation während sowie unmittelbar vor und nach der Prozeßdurchführung nicht geändert wird.
7. Prozeß-Planungsverfahren nach Anspruch 1, ferner gekenn­ zeichnet durch die folgenden Schritte:
  • - Festlegen des Ausmaßes, bis zu welchem die anderen Rechner als der eine der von der Rechner-Zuordnungsinfor­ mation für einen Prozeß bezeichnet ist, zurückgewiesen werden, wobei das Ausmaß dem Prozeß als Wert zuzuteilen ist, der eine Affinität zwischen dem bezeichneten Rechner und dem Prozeß darstellt, und zwar für jeden der Prozesse,
  • - Vergleichen des Wertes mit einem Wert, der das Ausmaß der Wartezeit eines Prozesses für dessen Ausführung darstellt, und
  • - Ausführen des Prozesses durch den anderen als den durch die Rechner-Zuteilungsinformation bezeichneten Rechner gemäß dem Ergebnis des Vergleichungsschrittes.
8. Prozeß-Planungsverfahren nach Anspruch 7, dadurch gekenn­ zeichnet, daß der Wert, der das Ausmaß der Wartezeit zur Durchführung des Prozesses darstellt, entweder die Anzahl der Male ist, die die Zuteilung des Rechners zurückgewiesen ist, oder die Menge der Daten des Prozesses, der zur Ausführung ansteht.
9. Prozeß-Planungsverfahren für einen Mehrfach-Rechner, der eine Anzahl numerierter Rechner und einen Hauptspeicher auf­ weist, in den sich die Anzahl von Rechnern teilt, gekennzeich­ net durch die folgenden Schritte:
  • - Einrichten einer Prozeßführungstabelle im gemeinsamen Speicher zur Führung der Prozesse, die auf den Rechnern lau­ fen,
  • - Speichern einer Rechner-Zuteilungsinformation zum Bezeichnen der Nummer des Rechners, dem es erlaubt ist, einen Prozeß auszuführen, im Speicher für jeden der Prozesse,
  • - Betreiben des Prozeßplaners, um einen Rückgriff auf die Prozeßführungstabelle für den als nächsten auszuführenden Prozeß vorzunehmen, und
  • - Ausführen des Prozesses durch jenen Rechner, dessen Nummer durch die Rechner-Zuteilungsinformation für den Prozeß bezeichnet wurde.
10. Prozeß-Planungsverfahren nach Anspruch 9, dadurch gekenn­ zeichnet, daß infolge einer Überlappung die Zuteilung der­ selben Nummer auf zwei oder mehr Rechner beim Numerieren der Rechner gestattet ist.
11. Prozeß-Planungsverfahren nach Anspruch 9, ferner gekenn­ zeichnet durch die folgenden Schritte:
  • - Festlegen eines Codes für einen allgemeinen Zweck als eine der Rechnernummern, und
  • - Ausführen eines jeden der Prozesse auf einem solchen Rechner, der die Nummer aufweist, die durch die Rechner-Zuord­ nungsinformation für den Prozeß zugeteilt ist, oder der die Nummer hat, die den Code für den allgemeinen Zweck darstellt.
12. Prozeß-Planungsverfahren nach Anspruch 9, ferner gekenn­ zeichnet durch die folgenden Schritte:
  • - Festlegen eines logischen Rechner-Identifizierers für die Rechner-Zuteilungsinformation, wenn man vom Prozeß her einen Rechner bezeichnet,
  • - Erstellen einer Zuordnungstabelle im gemeinsamen Spei­ cher, um den logischen Rechner-Identifizierer und einen physi­ kalischen Rechner-Identifizierer, der dem tatsächlichen Rech­ ner entspricht, einander zuzuordnen, und
  • - Umwandeln des logischen Rechner-Identifizierers in den physikalischen Rechner-Identifizierer, um die Planung vorzu­ nehmen.
13. Prozeß-Planungsverfahren zum Zuteilen irgendeines der Rechner zu jedem der Prozesse in einem Vielfach-Rechner, der eine Anzahl von Rechnern sowie einen gemeinsamen Speicher auf­ weist, in den sich die Rechner teilen, gekennzeichnet durch die folgenden Schritte:
  • - Speichern einer Rechner-Zuordnungsinformation im ge­ meinsamen Speicher, um einen solchen Rechner zu bezeichnen, dem es ermöglicht ist, den Prozeß auszuführen, und zwar für jeden der Prozesse,
  • - Herstellen eines Rückgriffs auf die Rechner-Zuteilungs­ information für den Prozeß, wenn man jenen Prozeß, der für die Ausführung ansteht, dem Rechner zuteilt, und
  • - Bestimmen, ob die Zuteilung des Prozesses zu dem Rech­ ner zulässig ist oder nicht, und zwar in Abhängigkeit von der Rechner-Zuteilungsinformation.
14. Rechner-Planungsverfahren nach Anspruch 13, dadurch ge­ kennzeichnet, daß für jeden der Prozesse eine Prozeß-Zutei­ lungsinformation zum Bezeichnen jenes Prozesses verwendet wird, dem es gestattet ist, von einem Rechner ausgeführt zu werden, anstelle der Rechner-Zuteilungsinformation für jeden der Prozesse, um den Rechner zu bezeichnen, dem es gestattet ist, einen Prozeß auszuführen.
15. Prozeß-Planungsverfahren für ein Betriebssystem eines Mehrfach-Rechners, gekennzeichnet durch die folgenden Schrit­ te:
  • - es wird vorab eine Zuordnung eines jeden der Prozesse und eines jeden Rechners durchgeführt, dem es gestattet ist, den zugeordneten Prozeß durchzuführen, und
  • - es wird, wenn man einen leerlaufenden Rechner einem für die Durchführung anstehenden Prozeß zuteilt, bestimmt, ob die Zuteilung des leerlaufenden Rechners zu einem Prozeß auf der Grundlage der vorläufig erfolgten Zuordnung zulässig ist.
16. Prozeß-Planungsverfahren für einen Mehrfach-Rechner, der mehrere Rechner aufweist, gekennzeichnet durch die folgenden Schritte:
  • - Vorbestimmen des Vorrangbereiches eines Prozesses, dem es gestattet ist, von dem Rechner ausgeführt zu werden, und zwar für jeden der Anzahl von Rechnern, und
  • - Auswählen des Prozesses mit dem höchsten Vorrang unter den Prozessen, die zur Ausführung anstehen, wobei die Prozesse jeweils einen Vorrang innerhalb des Bereichs aufweisen, der für einen Rechner bestimmt ist, als nächsten Prozeß, der vom Rechner auszuführen ist.
17. Prozeß-Planungsverfahren für einen Mehrfach-Rechner mit einer Anzahl von Rechnern, gekennzeichnet durch die folgenden Schritte:
  • - Vorbestimmen eines Vorrangs für jeden Prozeß für jeden der Anzahl von Rechnern, und
  • - Auswählen des Prozesses mit dem höchsten Vorrang unter den zur Ausführung anstehenden Prozessen, wobei die Prozesse jeweils einen für einen Rechner vorbestimmten Vorrang aufwei­ sen, als nächster Prozeß, der vom Rechner ausgeführt werden soll.
18. Prozeß-Planungsverfahren für einen Mehrfach-Rechner, der mindestens zwei Rechner aufweist und imstande ist, durch jeden der Rechner einen speziellen Prozeß auszuführen, gekennzeich­ net durch den folgenden Schritt:
  • - Festlegen eines der mindestens zwei Rechner für einen solchen Rechner, der den speziellen Prozeß ausführt, so daß eine Software für einen Einzelrechner ohne jede Abwandlung be­ nutzt werden kann.
19. Prozeß-Planungsverfahren für einen Mehrfach-Rechner, der mindestens zwei Rechner aufweist und imstande ist, einen spe­ ziellen Prozeß durch jeden der Rechner auszuführen, gekenn­ zeichnet durch den folgenden Schritt:
  • - Festlegen eines der mindestens zwei Rechner für einen solchen Rechner, der den speziellen Prozeß ausführt, und zwar mindestens während eines Zeitraums von Beginn bis Ende von dessen Ausführung, um die Änderung des ausführenden Rechners mitten in der Ausführung des speziellen Prozesses zu verhin­ dern, und wobei der Prozeß ohne jede Abänderung ausgeführt wird.
20. Prozeß-Planungsverfahren für einen Mehrfach-Rechner, der mindestens zwei Rechner aufweist und imstande ist, durch einen speziellen Rechner verschiedenartige Prozesse durchzuführen, gekennzeichnet durch den folgenden Schritt:
  • - Begrenzen der Anzahl von Prozessen, die durch den spe­ ziellen Rechner aufzuführen sind, so daß die Ansprechzeit des Rechners innerhalb eines festen Zeitraums fallen kann.
21. Prozeß-Planungsverfahren für einen Vielfach-Rechner, der mindestens zwei Rechner aufweist und imstande ist, durch einen speziellen Rechner verschiedenartige Prozesse auszuführen, ge­ kennzeichnet durch den folgenden Schritt:
  • - Begrenzen der Typen von Prozessen, die durch den spe­ ziellen Rechner ausgeführt werden sollen, so daß eine Fehler­ beeinflussung des speziellen Rechners lokalisiert werden kann.
22. Mehrfach-Rechner, der zur Kontrolle durch ein einziges Betriebssystem eingerichtet ist, gekennzeichnet durch die folgenden Merkmale:
  • - mindestens zwei Rechner, von denen jeder imstande ist, einen speziellen Prozeß auszuführen,
  • - ein gemeinsamer Speicher, in den sich die mindestens zwei Rechner teilen, um ein Programm und Daten hierin zu spei­ chern, und
  • - der gemeinsame Speicher weist einen Speicherbereich auf, um eine Rechner-Zuteilungsinformation zu speichern, die das Betriebssystem veranlaßt, es dem speziellen Prozeß zu gestatten, von einem speziellen Rechner ausgeführt zu werden, der aus den mindestens zwei Rechnern ausgewählt ist.
23. Mehrfach-Rechner, der zur Kontrolle durch ein einziges Betriebssystem eingerichtet ist, gekennzeichnet durch die fol­ genden Merkmale:
  • - eine Anzahl von Rechnern,
  • - ein gemeinsamer Speicher, in den sich die Anzahl von Rechnern teilt, um ein Programm und Daten hierin zu speichern, und
  • - der gemeinsame Speicher enthält eine Prozeßführungs­ tabelle, um den Status eines jeden der Prozesse beizubehalten, und die Prozeßführungstabelle weist einen Speicherbereich auf, um eine Rechner-Zuteilungsinformation zu speichern, die für jeden der Prozesse einen oder mehrere Rechner bezeichnet, die aus der Anzahl von Rechnern ausgewählt sind, welchen es ge­ stattet ist, jeden der Prozesse durchzuführen.
24. Mehrfach-Rechner nach Anspruch 23, dadurch gekennzeich­ net, daß die Prozeßführungstabelle ferner einen Speicherbe­ reich aufweist, um Kontrollbetriebsarten zu speichern, die eine dynamische Änderung der Rechner-Zuteilungsinformation für jeden Prozeß kontrollieren.
25. Mehrfach-Rechner nach Anspruch 24, dadurch gekennzeich­ net, daß die Kontrollbetriebsarten eine erste Betriebsart auf­ weisen, in welcher der Prozeß durch jeden Rechner ausgeführt werden kann und ein Code für allgemeinen Zweck zum Bestimmen eines jeden Rechners als die genannte Rechner-Zuteilungsinfor­ mation eingestellt ist, und eine zweite Betriebsart, in wel­ cher der Prozeß nur von einem speziellen Rechner während eines Zeitraums vom Beginn bis zum Ende der Prozeßdurchführung durchgeführt werden kann, wobei der spezielle Rechner als Rechner-Zuteilungsinformation vor dem Beginn der Ausführung des Prozesses durch den speziellen Rechner bezeichnet wird und die Rechner-Zuteilungsinformation in den Code für den allge­ meinen Zweck rückumgewandelt wird, nachdem die Ausführung des Prozesses beendet ist.
26. Mehrfach-Rechner nach Anspruch 25, dadurch gekennzeich­ net, daß die Kontrollbetriebsarten eine dritte Kontrollbe­ triebsart umfassen, in der die Rechner-Zuteilungsinformation zur Bezeichnung des speziellen Rechners nach der Erzeugung des Prozesses nicht geändert wird.
27. Verfahren zur Verwendung eines Mehrfach-Rechners, wie er in Anspruch 23 beschrieben ist, gekennzeichnet durch den fol­ genden Schritt:
  • - Einstellen derselben Rechner-Zuteilungsinformation für eine Gruppe von Prozessen, die eine Exklusivkontrolle erfor­ dern, für den gemeinsamen Speicher so daß die Gruppe von Prozessen von demselben Rechner ausgeführt wird.
28. Verfahren zur Verwendung eines Mehrfach-Rechners, wie er in Anspruch 23 bezeichnet ist, gekennzeichnet durch den folgenden Schritt:
  • - Einstellen der unterschiedlichen Rechner-Zuteilungs­ information für zwei Gruppen von Prozessen, die höhere und niedrigere Signifikanz aufweisen, so daß beide Gruppen von Prozessen auf den unterschiedlichen Rechnern ausgeführt wer­ den.
29. Verfahren zur Verwendung eines Mehrfach-Rechners, wie er in Anspruch 25 bezeichnet ist, gekennzeichnet durch den folgenden Schritt:
  • - Einstellen der zweiten Steuerbetriebsart auf eine sol­ che Weise, daß die Änderung des ausführenden Rechners mitten innerhalb der Ausführung eines einzigen Prozesses verhindert wird.
30. Verfahren zur Verwendung eines Mehrfach-Rechners, wie er in Anspruch 26 bezeichnet ist, gekennzeichnet durch den folgenden Schritt:
  • - Einstellen der dritten Kontrollbetriebsart für eine Gruppe von Prozessen, die eine Exklusivkontrolle erfordern, für den gemeinsamen Speicher, so daß die Gruppe von Prozessen auf demselben Rechner ausgeführt wird.
31. Verfahren zur Verwendung eines Mehrfach-Rechners, wie er in Anspruch 26 bezeichnet ist, gekennzeichnet durch die fol­ genden Schritte:
  • - Klassifizieren der Prozesse in zwei Gruppen von Pro­ zessen mit höherer und niedrigerer Signifikanz,
  • - Einstellen der dritten Kontrollbetriebsart für beide Gruppen von Prozessen, und
  • - Einstellen der unterschiedlichen Rechner-Zuteilungs­ information für beide Gruppen von Prozessen, so daß sie auf unterschiedlichen Rechnern ausgeführt wird.
32. Prozeß-Planungsverfahren für einen Mehrfach-Rechner, der eine Anzahl von Rechnern aufweist, von denen mindestens zwei unterschiedliche Ausbildungen aufweisen, sowie einen Haupt­ speicher, der von jedem der Rechner her zugänglich ist, wobei die Rechner und der Hauptspeicher über eine gemeinsame Sammel­ leitung verbunden sind, gekennzeichnet durch die folgenden Schritte:
  • - Versehen eines jeden Rechners mit einer Planungsein­ richtung für den Rechner sowie einer Erkennungseinrichtung, um einen Identifizierer zu erkennen, der einen Typ eines Rechners darstellt,
  • - Einspeichern einer Wartereihe zum Anordnen von Pro­ zessen, die zur Ausführung anstehen, im Hauptspeicher,
  • - Versehen eines jeden der Prozesse mit einer Prozeß­ tabelle, die einen Merker über die Ausführbarkeit/Nicht-Aus­ führbarkeit aufweist, um den Typ eines Rechners zu bezeichnen, der imstande ist, den Prozeß durchzuführen,
  • - Betreiben der Planungseinrichtung eines Rechners, wenn der Rechner eine Prozeßplanung hierfür benötigt,
  • - aufeinanderfolgendes Ablesen der Prozesse, die in der Wartereihe des Hauptspeichers angeordnet sind,
  • - Vergleichen des Identifizierers des Prozessors mit dem Merker über die Ausführbarkeit/Nicht-Ausführbarkeit des abge­ lesenen Prozesses, und
  • - Bestimmen des Prozesses, dem es als ersten durch den Rechner entsprechend dem Vergleich gestattet ist, als ein Prozeß für die Ausführung ausgeführt zu werden.
33. Prozeß-Planungsverfahren nach Anspruch 32, ferner gekenn­ zeichnet durch die folgenden Schritte:
  • - Versehen eines jeden Rechners mit einem örtlichen Spei­ cher statt des Hauptspeichers,
  • - Errichten eines Netzwerks zur Verbindung der Rechner statt der gemeinsamen Sammelleitung,
  • - Speichern der Wartereihe im örtlichen Speicher eines der Rechner, der als übergeordneter Rechner bezeichnet ist, und
  • - Schaffen eines Zugangs zur Wartereihe von den anderen, nicht-übergeordneten Rechnern her über das Netzwerk.
34. Prozeß-Planungsverfahren nach Anspruch 32, ferner gekenn­ zeichnet durch die folgenden Schritte:
  • - Versehen eines jeden Rechners mit einem örtlichen Spei­ cher statt des Hauptspeichers,
  • - Einrichten eines Netzwerks zur Verbindung der Rechner statt der gemeinsamen Sammelleitung,
  • - Einspeichern der Reihe in die örtlichen Speicher aller Rechner, und
  • - die Vornahme einer Aktualisierung der Wartereihe für alle örtlichen Speicher über das Netzwerk, wenn eine solche Aktualisierung der Wartereihe angefordert wird.
35. Prozeß-Planungsverfahren nach Anspruch 32, ferner gekenn­ zeichnet durch die folgenden Schritte:
  • - Versehen eines jeden Rechners mit einem örtlichen Spei­ cher statt des Hauptspeichers,
  • - Einrichten eines Netzwerks zum Verbinden der Rechner statt der gemeinsamen Verbindungs-Sammelleitung,
  • - Versehen eines jeden Rechners mit einer Adressen-Um­ wandlungseinrichtung zur Zuordnung der Adressen zwischen phy­ sikalischen und logischen in allen örtlichen Speichern, so daß ein virtueller Signalspeicher gebildet wird, und
  • - Benutzen des virtuellen Speichers als gemeinsamen Spei­ cher für alle die Rechner.
36. Prozeß-Planungsverfahren für einen Mehrfach-Rechner, der eine Anzahl von Rechnern aufweist, von denen mindestens zwei unterschiedliche Ausbildungen aufweisen, sowie einen Haupt­ speicher, der von jedem der Rechner her zugänglich ist, wobei die Rechner und der Hauptspeicher über eine gemeinsame Sam­ melleitung verbunden sind, gekennzeichnet durch die folgenden Schritte:
  • - Versehen einiger der Rechner mit einer Planungseinrich­ tung,
  • - Speichern einer Wartereihe zur Anordnung von Prozessen, die zur Ausführung anstehen, und einer Identifiziererliste zur Anzeige des Typs eines jeden Prozesses im gemeinsamen Spei­ cher,
  • - Versehen eines jeden der Prozesse mit einer Prozeß­ tabelle, die einen Merker für die Ausführbarkeit/Nicht-Aus­ führbarkeit aufweist, um den Typ eines Rechners zu bezeichnen, der imstande ist, den Prozeß auszuführen,
  • - Betreiben eines der Rechner, der die Planungseinrich­ tung aufweist, wenn dort das Erfordernis für irgendeinen Rechner vorliegt, um die Planung vorzunehmen,
  • - Unterbrechen des Prozesses, wenn er gerade vom genann­ ten einen Rechner durchgeführt wird, und Aktivieren der Pla­ nungseinrichtung,
  • - aufeinanderfolgendes Ablesen der Prozesses, die in der Wartereihe des Hauptspeichers angeordnet sind,
  • - Vergleichen des Merkers für die Ausführbarkeit/Nicht- Ausführbarkeit der abgelesenen Prozesse mit dem Identifizie­ rer, der ebenfalls von der Identifiziererliste jenes Rechners abgelesen wird, der die Planung erfordert, und
  • - Bestimmen jenes Prozesses, dem es als erstem gestattet ist, durchgeführt zu werden, entsprechend der Vergleichung, als Prozeß für die Durchführung.
37. Prozeß-Planungsverfahren nach Anspruch 36, ferner gekenn­ zeichnet durch die folgenden Schritte:
  • - Versehen eines jeden Rechners mit einem örtlichen Spei­ chers statt des Hauptspeichers,
  • - Einrichten eines Netzwerks zum Anschließen der Rechner statt der gemeinsamen Verbindungsleitung,
  • - Abspeichern der Wartereihe im örtlichen Speicher eines der Rechner, der als übergeordneter Rechner bezeichnet ist, und
  • - Herstellen eines Zugangs zur Wartereihe von allen nicht-übergeordneten Rechnern her über das Netzwerk.
38. Prozeß-Planungsverfahren nach Anspruch 36, ferner gekenn­ zeichnet durch die folgenden Schritte:
  • - Versehen eines jeden Rechners mit einem örtlichen Spei­ cher statt des Hauptspeichers,
  • - Einrichten eines Netzwerks zum Anschließen der Rechner anstelle der gemeinsamen Verbindungsleitung,
  • - Abspeichern der Wartereihe in den örtlichen Speichern aller Rechner, und
  • - Vornehmen einer Aktualisierung der Wartereihe für alle örtlichen Speicher über das Netzwerk, wenn eine solche Aktua­ lisierung der Wartereihe gefordert wird.
39. Prozeß-Planungsverfahren nach Anspruch 36, ferner gekenn­ zeichnet durch die folgenden Schritte:
  • - Versehen eines jeden der Rechner mit einem örtlichen Speicher statt des Hauptspeichers,
  • - Einrichten eines Netzwerks zum Verbinden der Rechner statt der gemeinsamen Sammelleitung,
  • - Versehen eines jeden Rechners mit einer Adressen-Um­ wandlungseinrichtung, um die Adressen zwischen physikalischen und logischen Räumen in allen örtlichen Speichern so in Zu­ ordnung zu bringen, daß ein einziger virtueller Speicher ge­ bildet wird, und
  • - Benutzen des virtuellen Speichers als gemeinsamen Speicher für alle Rechner.
40. Prozeß-Planungsverfahren für einen Mehrfach-Rechner, der mehrere Rechner aufweist, von denen mindestens zwei unter­ schiedliche Ausbildungen aufweisen, sowie einen Hauptspeicher, der von jedem der Rechner her zugänglich ist, wobei die Rech­ ner und der Hauptspeicher über eine gemeinsame Sammelleitung verbunden sind, gekennzeichnet durch die folgenden Schritte:
  • - Versehen eines jeden der Rechner mit einer Planungs­ einrichtung für den Rechner, sowie einer Erkennungseinrich­ tung, um einen Typ des Rechners zu erkennen,
  • - Abspeichern einer Wartereihe zum Anordnen der Prozesse, die für die Durchführung anstehen, im Hauptspeicher,
  • - Versehen eines jeden der Prozesse mit einer Prozeß­ tabelle, die eine Vorrangtabelle zum Bezeichnen des Vorranges für einen jeden Typ des Rechners beim Durchführen des Prozesses umfaßt,
  • - Betreiben der Planungseinrichtung des Rechners, wenn das Erfordernis für irgendeinen Rechner vorliegt, eine Planung vorzunehmen,
  • - aufeinanderfolgendes Ablesen der Prozesse, die in der Wartereihe des Hauptspeichers angeordnet sind,
  • - Auswählen eines Prozesses, der den höchsten Vorrang in Bezug auf den Identifizierer des Speichers aufweist, unter Rückgriff auf die Vorrangtabelle des Prozesses, und
  • - Bestimmen des somit ausgewählten Prozesses als einen Prozeß für die Ausführung.
41. Prozeß-Planungsverfahren nach Anspruch 40, ferner gekenn­ zeichnet durch die folgenden Schritte:
  • - Versehen eines jeden Rechners mit einem örtlichen Spei­ cher statt des Hauptspeichers,
  • - Einrichten eines Netzwerks zum Anschließen der Rechner statt der gemeinsamen Verbindungsleitung,
  • - Einspeichern der Wartereihe im örtlichen Speicher eines der Rechner, der als übergeordneter Rechner bezeichnet ist, und
  • - Herstellen eines Zugangs zur Wartereihe von den nicht­ übergeordneten Rechnern über das Netzwerk.
42. Prozeß-Planungsverfahren nach Anspruch 40, ferner gekenn­ zeichnet durch die folgenden Schritte:
  • - Versehen eines jeden Rechners mit einem örtlichen Spei­ cher statt des gemeinsamen Speichers,
  • - Einrichten eines Netzwerks zum Anschließen der Rechner statt der gemeinsamen Verbindungsleitung,
  • - Abspeichern der Wartereihe in den örtlichen Speichern aller Rechner, und
  • - Vornehmen einer Aktualisierung der Wartereihe für alle örtlichen Speicher über das Netzwerk, wenn eine solche Aktua­ lisierung der Wartereihe gefordert wird.
43. Prozeß-Planungsverfahren nach Anspruch 40, ferner gekenn­ zeichnet durch die folgenden Schritte:
  • - Versehen eines jeden der Rechner mit einem örtlichen Speicher anstelle des Hauptspeichers,
  • - Einrichten eines Netzwerks zum Anschluß der Rechner statt der gemeinsamen Sammelleitung,
  • - Versehen eines jeden Rechners mit einer Adressen-Um­ wandlungseinrichtung, um die Adressen zwischen physikalischen und logischen Räumen in allen örtlichen Speichern in Zuordnung zu bringen, so daß ein einziger virtueller Speicher gebildet wird, und
  • - Bestimmen des virtuellen Speichers als gemeinsamen Speicher für alle Rechner.
44. Prozeß-Planungsverfahren nach Anspruch 40, ferner gekenn­ zeichnet durch den folgenden Schritt:
  • - Eingeben eines Werts, der anzeigt, daß der Prozeß un­ ausführbar ist, in die Vorrangtabelle, so daß der Prozeß nicht einer solchen Art von Rechner zugeteilt wird, der dieser Wert zugeteilt ist.
45. Prozeß-Planungsverfahren für einen Mehrfach-Rechner, der eine Anzahl von Rechnern aufweist, von denen mindestens zwei unterschiedliche Ausbildung aufweisen, sowie einen Hauptspei­ cher, der von jedem der Rechner her zugänglich ist, wobei der Rechner und der Hauptspeicher über eine gemeinsame Sammellei­ tung verbunden sind, gekennzeichnet durch die folgenden Schritte:
  • - Versehen einiger der Rechner mit einer Planungseinrich­ tung,
  • - Speichern einer Wartereihe zur Anordnung von Prozessen, die für die Durchführung anstehen, und einer Identifizierer­ tabelle zum Anzeigen der Rechnertypen im Hauptspeicher,
  • - Versehen eines jeden der Prozesse mit einer Prozeß­ tabelle, die eine Vorrangtabelle zum Bezeichnen des Vorranges für jeden Rechnertyp beim Durchführen der Prozesse umfaßt,
  • - Betreiben eines der Rechner, der die Planungseinrich­ tung aufweist, wenn ein Erfordernis für irgendeinen Rechner vorliegt, eine Planung vorzunehmen,
  • - Unterbrechen des Prozesses, wenn er gerade vom einen Rechner ausgeführt ist, und Aktivieren der Planungseinrich­ tung,
  • - aufeinanderfolgendes Ablesen der Prozesse, die in der Wartereihe des Hauptspeichers abgespeichert sind,
  • - Auswählen eines Prozesses, der den höchsten Vorrang relativ zur Identifizierungseinrichtung jenes Rechners auf­ weist, der die Planung anfordert, unter Rückgriff auf die Vor­ rangtabelle des Prozesses, und
  • - Bestimmen des somit ausgewählten Prozesses als Prozeß für die Durchführung.
46. Prozeß-Planungsverfahren nach Anspruch 45, ferner gekenn­ zeichnet durch die folgenden Schritte:
  • - Versehen eines jeden Rechners mit einem örtlichen Spei­ cher statt des Hauptspeichers,
  • - Einrichten eines Netzwerks zum Anschließen der Rechner statt der gemeinsamen Sammelleitung,
  • - Speichern der Wartereihe im örtlichen Speicher eines der Rechner, der als übergeordneter Rechner bestimmt ist, und
  • - Herstellen eines Zugangs zur Wartereihe von den nicht­ übergeordneten Rechnern her über das Netzwerk.
47. Prozeß-Planungsverfahren nach Anspruch 45, ferner gekenn­ zeichnet durch die folgenden Schritte:
  • - Versehen eines jeden Rechners mit einem örtlichen Speicher statt des Hauptspeichers,
  • - Einrichten eines Netzwerks zum Anschließen der Rechner anstelle der gemeinsamen Verbindungsleitung,
  • - Speichern der Wartereihe in den örtlichen Speichern aller Rechner, und
  • - Herstellen einer Aktualisierung der Wartereihe für alle örtlichen Speicher über das Netzwerk, wenn eine solche Aktua­ lisierung der Wartereihe gefordert wird.
48. Prozeß-Planungsverfahren nach Anspruch 45, ferner gekenn­ zeichnet durch die folgenden Schritte:
  • - Versehen eines jeden Rechners mit einem örtlichen Spei­ cher statt des Hauptspeichers,
  • - Einrichten eines Netzwerks zum Anschließen der Rechner anstelle der gemeinsamen Verbindungsleitung,
  • - Versehen eines jeden Rechners mit einer Adressen-Um­ wandlungseinrichtung, um die Adressen zwischen physikalischen und logischen Räumen zwischen allen örtlichen Speichern so in Zuordnung zu bringen, daß ein einziger virtueller Speicher gebildet ist, und
  • - Bestimmen des virtuellen Speichers als gemeinsamen Speicher für alle Rechner.
49. Prozeß-Planungsverfahren nach Anspruch 45, ferner gekenn­ zeichnet durch den folgenden Schritt:
  • - Eingeben eines Werts, der anzeigt, daß der Prozeß un­ ausführbar ist, in die Vorrangtabelle, so daß der Prozeß nicht einem solchen Rechnertyp zugeteilt wird, welchem der Wert zu­ geteilt ist.
DE4007998A 1989-03-13 1990-03-13 Prozess-planungsverfahren und mehrfach-rechner Withdrawn DE4007998A1 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP1060092A JP3019317B2 (ja) 1989-03-13 1989-03-13 プロセススケジューリング方法
JP6221689A JPH02242434A (ja) 1989-03-16 1989-03-16 タスクのスケジューリング方法

Publications (1)

Publication Number Publication Date
DE4007998A1 true DE4007998A1 (de) 1990-09-20

Family

ID=26401162

Family Applications (1)

Application Number Title Priority Date Filing Date
DE4007998A Withdrawn DE4007998A1 (de) 1989-03-13 1990-03-13 Prozess-planungsverfahren und mehrfach-rechner

Country Status (1)

Country Link
DE (1) DE4007998A1 (de)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0521265A2 (de) * 1991-07-02 1993-01-07 International Business Machines Corporation Paralleles Datenverarbeitungssystem
DE4414171A1 (de) * 1994-04-22 1995-10-26 Paul Bantzer Verfahren und System zur Steuerung von Prozessen in einem Computer-Netzwerk
EP0756233A1 (de) * 1992-10-30 1997-01-29 Tao Group Limited Datenverarbeitung und Betriebssystem mit dynamischer Belastungsteilung in einem Netzwerk von verknüpften Prozessoren
WO2001014970A2 (de) * 1999-08-25 2001-03-01 Infineon Technologies Ag Eventscheduler und verfahren zur zerlegung von ereignisorientiertem programmcode

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0273742A2 (de) * 1986-12-26 1988-07-06 Kabushiki Kaisha Toshiba System und Verfahren für die Zuweisungsbestimmung zwischen Auftragen und Betriebsmittel

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0273742A2 (de) * 1986-12-26 1988-07-06 Kabushiki Kaisha Toshiba System und Verfahren für die Zuweisungsbestimmung zwischen Auftragen und Betriebsmittel

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
JP 62-123 552 A. In: Patents Abstr. of Japan, 1987, Nr. 134 (P634) *
JP 62-123 553 A. In: Patents Abstr. of Japan, 1987, Nr. 134 (P634) *
JP 62-208 157 A. In: Patents Abstr. of Japan, 1987, Nr. 42 (P672) *

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0521265A2 (de) * 1991-07-02 1993-01-07 International Business Machines Corporation Paralleles Datenverarbeitungssystem
EP0521265A3 (en) * 1991-07-02 1993-09-29 International Business Machines Corporation Parallel processing system
EP0756233A1 (de) * 1992-10-30 1997-01-29 Tao Group Limited Datenverarbeitung und Betriebssystem mit dynamischer Belastungsteilung in einem Netzwerk von verknüpften Prozessoren
EP0756232A1 (de) * 1992-10-30 1997-01-29 Tao Group Limited Datenverarbeitung und Betriebssystem mit dynamischer Bindung über zwei oder mehrere Prozessoren
DE4414171A1 (de) * 1994-04-22 1995-10-26 Paul Bantzer Verfahren und System zur Steuerung von Prozessen in einem Computer-Netzwerk
WO2001014970A2 (de) * 1999-08-25 2001-03-01 Infineon Technologies Ag Eventscheduler und verfahren zur zerlegung von ereignisorientiertem programmcode
WO2001014970A3 (de) * 1999-08-25 2002-08-01 Infineon Technologies Ag Eventscheduler und verfahren zur zerlegung von ereignisorientiertem programmcode

Similar Documents

Publication Publication Date Title
DE60034170T2 (de) Protokoll zum Koordinieren der Verteilung von gemeinsamem Speicher
DE3611223C2 (de)
DE69229909T2 (de) Multimediarechnerbetriebssystem und -verfahren
DE69229365T2 (de) Verfahren und Anordnung zur kostenbezogenen heuristischen Befehlsreihenfolgeplanung
DE69028061T2 (de) Bearbeitung von Ablaufdaten paralleler Verarbeitung
DE69529365T2 (de) Brauchersteuerbare Gleichzeitigkeitsfunktionalität
DE68927375T2 (de) Arbitrierung von Übertragungsanforderungen in einem Multiprozessor-Rechnersystem
DE68925646T2 (de) Pipeline-multiprozessorsystem
DE10110504B4 (de) Verfahren und Computersystem zur Verwaltung von Threads
DE69811790T2 (de) Ableitung von Prozessmodellen aus Rechnungsprüfvorgängen für Systeme zur Verwaltung von Arbeitsflüssen
EP0771444B1 (de) Verfahren zur steuerung von technischen vorgängen oder prozessen
DE60223394T2 (de) Verfahren und vorrichtung zum einteilen von anforderungen für einen dynamischen direktzugriffsspeicherbaustein
DE69803860T2 (de) Direktspeicherzugriffseinheit
DE69715328T2 (de) System und Verfahren zur Parallelisierung der Durchführung von Speichertransaktionen mittels mehreren Speichermodellen
DE60224432T2 (de) Dynamische und automatische speicherverwaltung
DE2243956A1 (de) Speicherprogrammierte datenverarbeitungsanlage
EP1146432A2 (de) Umkonfigurierungs-Verfahren für programmierbare Bausteine während der Laufzeit
DE1499288B2 (de) Datenverarbeitungsanlage
DE4011745A1 (de) Taskverfolgungseinrichtung
DE102012210895A1 (de) Vorhersage der ungeordneten Parallelverarbeitung der Befehle von Threads in einem Multithread-Prozessor
DE102012206301A1 (de) Anzeigen einer Vielzahl von Kalendereinträgen
DE3886756T2 (de) Betriebsmittelzugriff für Multiprozessorrechnersystem.
DE2054835A1 (de) Prozessor fur ein Informationsver arbeitungssystem und ein Betriebsver fahren fur diesen Prozessor
DE102016007651B4 (de) Numerische Steuerung mit Funktion zur automatischen Auswahl eines Speicherungsziels für ein Bearbeitungsprogramm
DE69202688T2 (de) Verfahren zum Testen und gegebenenfalls zur Bewertung von Primitiven eines Echtzeitsteuerprogrammes.

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law
8139 Disposal/non-payment of the annual fee