WO1997044731A1 - Verfahren zur synchronisation von programmen auf unterschiedlichen computern eines verbundes - Google Patents

Verfahren zur synchronisation von programmen auf unterschiedlichen computern eines verbundes Download PDF

Info

Publication number
WO1997044731A1
WO1997044731A1 PCT/DE1997/001023 DE9701023W WO9744731A1 WO 1997044731 A1 WO1997044731 A1 WO 1997044731A1 DE 9701023 W DE9701023 W DE 9701023W WO 9744731 A1 WO9744731 A1 WO 9744731A1
Authority
WO
WIPO (PCT)
Prior art keywords
computer
processing
computers
network
synchronization
Prior art date
Application number
PCT/DE1997/001023
Other languages
English (en)
French (fr)
Inventor
Bernd Opgenoorth
Original Assignee
Siemens Aktiengesellschaft
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Siemens Aktiengesellschaft filed Critical Siemens Aktiengesellschaft
Priority to DE59700733T priority Critical patent/DE59700733D1/de
Priority to EP97926963A priority patent/EP0898744B1/de
Priority to JP09541383A priority patent/JP2000510976A/ja
Publication of WO1997044731A1 publication Critical patent/WO1997044731A1/de
Priority to US09/197,509 priority patent/US6308223B1/en

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
    • 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/52Program synchronisation; Mutual exclusion, e.g. by means of semaphores

Definitions

  • Computer systems are increasingly networked with one another via communication devices. In some applications, particular attention must be paid to the synchronization of the data processing systems combined in a network.
  • the synchronicity required by the computers of a network can be predominantly of a temporal nature.
  • the computers should work as parallel as possible, i.e. are always in the same processing state as far as possible with respect to the processing of the commands of a current program.
  • the computers should therefore process the same processing sequence whenever possible.
  • the synchronicity of computers in a network can result in the additional requirement that the respective processing sequences in the computers should also have the same data-technical meaning as possible.
  • the computers of a network should achieve the same possible result values when the command processing takes place at approximately the same time on the basis of as identical as possible initial values.
  • the comparison of the initial values or selected current processing values of the individual programs on the computers is also advantageous in the context of the temporal synchronization.
  • two connected computers with identical programs should have the same output data, e.g. Process measured values under the boundary condition of high computer system availability. It must be regularly ensured that the processing status of the two computers may be due to Even slightly different processing speeds do not diverge too much in the medium term. Furthermore, it must be regularly ensured that both computers have matching processing results. This is a prerequisite for the fact that in the case where the two computers e.g. be used to control a technical process that requires high availability and one of the two computers fails, the other computer can continue to control the technical process virtually without jump. In such a "one of two" system, the two computers involved must be synchronized in time by special synchronization measures. Furthermore, their current processing contents must be checked regularly for equality.
  • Comparable boundary conditions are also present in a so-called “two out of three” system.
  • this system the requirements of high availability of the system on the one hand and high processing security of the data on the other hand can be fulfilled at the same time.
  • three connected computers can be used The same output data must be processed with the aid of identical programs, in which case it must also be ensured at regular intervals that the processing states of the three computers do not diverge too much and that, in particular, the same processing results are available in each computer If processing results detect inequalities, one computer can be regarded as faulty and must leave the network if its current processing result suddenly and permanently deviates from the matching processing results of the other two computers As if one of the three computers failed, both processing reliability and availability.
  • the invention is therefore based on the object of specifying a method for synchronizing at least two programs, in particular user programs, on computers connected to one another which is as simple, robust and, in particular, requires little processing time.
  • FIG. 3 shows a first time schedule, on which the sequence of the synchronization method according to the invention is explained using the example of two computers in a network which can form a so-called "one of two” or "two of two” computer system, and
  • FIG. 1 shows a first example of a communication link between two data processing systems, hereinafter abbreviated to computers.
  • a first computer A which can be operated via a keyboard and a screen 4, is connected via a first coupling 3, and a second computer B, which can be operated via a keyboard and a screen 6, via a second coupling 6 with a data bus 1 connected.
  • a standing communication link 8 is set up between these two computers, which is indicated in FIG. 1 by a dotted line 8. Via such a fixed, connection-oriented communication link, data can be continuously exchanged directly between the two computers.
  • Each computer is set up to send and receive data exactly from the other computer.
  • FIG. 2 shows a further example of a communication connection between the two data processing systems A and B.
  • No communication connection is permanently established between the two computers. Rather, this communication is based on the so-called "broadcast principle".
  • computer A feeds a message 10, ie a so-called broadcast, into data bus 1 when required.
  • All other computers connected to data bus 1, in the example of the figure 1, the computer B and possibly other computers (not shown in FIG. 1) are in an operating mode which enables data to be received via the data bus 1. All other computers initially receive this Broadcast fed into the data bus by computer A and then check whether the data of the broadcast are addressed to them or have usable content.
  • the synchronization method according to the invention can be used without restriction at least for the two types of connection shown in FIGS. 1 and 2 and will be explained in detail below using the example of FIG. 3.
  • a general time axis 14 with time stamps Tl ... TU is shown on the left side.
  • These points in time represent the starting points of processing states of the two computers A and B, which occur when the synchronization method according to the invention is carried out.
  • These processing states are represented for computer A on a time axis 15 to the right of the general time axis 14 and for computer B on a time axis 15 lying to the far right of FIG. 3 in the form of function boxes.
  • the time axes 15, 16 for computers A, B symbolize the sequence or progress in the
  • the processing states required for the synchronization method according to the invention are inserted into the natural sequence of processing the commands from task A and B and thus each cause an at least temporary interruption in the processing sequence of the command instructions from task A and B.
  • the method according to the invention has the advantage that the additional processing states caused by the synchronization and inserted into the course of the individual tasks are as short as possible.
  • the two tasks running on the computers A, B are therefore only interrupted for the purpose of mutual synchronization for as long as is absolutely necessary.
  • the synchronization process triggered at time T2 is therefore necessary. According to the invention, this is initiated so that the computer of the network, in the example of FIG. 3, computer A, is the first to reach a synchronization point during the processing of the corresponding task, that is to say, when processing the command, it reaches a command that synchronizes with another computer or the other computers in the network.
  • the further processing of the commands of the current user program is first interrupted by computer A and at least one set of synchronization data for at least one other computer in the network is Interface fed. In the example in FIG. 15, this is represented by processing block 17, which is labeled "send syncdata x" and has an arrow 35 going away from it.
  • the computer which triggers the synchronization switches immediately to a reception state immediately after the synchronization data set has been fed in, i.e. in a mode of operation that enables the receipt of corresponding data records from programs on other computers in the network.
  • the program of the sending computer is not expected to receive acknowledgment messages from the programs on receiving computers of the network for completing the feeding-in process.
  • a switch is immediately made to a data reception state, and the further processing of the current task is interrupted by a program of another computer in the network until a corresponding synchronization data set in particular arrives.
  • this is symbolized by the processing block 19 labeled “receive wait” on the time axis 15 of computer A.
  • the scope of the data to be transferred can be significantly reduced by means of a so-called signature formation.
  • signature formation a data record is opened by a type of compression reduced a unique identifier, which can have a much smaller size compared to the data set.
  • Computer B Symbolizes time axis 16 of computer B and an arrow 36 emanating therefrom.
  • Computer B preferably switches to a data receiving state immediately after the synchronization data record has been fed in. Since the other computer A of the network in the example already fed in its synchronization data record at time T2, after switching from computer B to the processing state “receive”, no “wait” phase occurs, but the synchronization data record that is already pending can syncdata x can be received directly from computer A. This is symbolized in FIG. 3 at time T8 by the processing block 26 labeled “receive / receive syncdata x” on computer B's time axis 16.
  • Time axis 15 by processing block 24 "processing sync data y", and computer B this is shown on time axis 16 by processing block 28 "processing sync data x". These two edits now also run almost simultaneously.
  • the content of the respective synchronization data record plays no role in the synchronization method according to the invention.
  • the mutually transmitted synchronization data sets syncdata x and syncdata y can each consist of a single bit, for example. This has the function of a time stamp.
  • a temporal synchronization of the processing states of computers can already be achieved in this way using the method according to the invention.
  • the synchronization data records can of course contain any additional information that can be used, for example, to compare the processing results of the two computers. In the example in FIG.
  • processing syndata y the processing of the instruction instructions of the interrupted task can be continued A are triggered ("return to / ...: task A"), especially if a match between the two synchronization data records has been detected. On the other hand, the further processing interrupted or no longer recorded (“... / stop: task A").
  • processing syndata y the processing of the instruction instructions of the interrupted task can be continued A are triggered ("return to / ...: task A"), especially if a match between the two synchronization data records has been detected.
  • the further processing interrupted or no longer recorded (“... / stop: task A").
  • the method according to the invention has the particular advantage that synchronization can take place particularly quickly, since none of the computers in the network which feed synchronization data into the data interface, e.g. the acknowledgment of the correct receipt of this data by another computer in the network is necessary and expected. Rather, another computer in the network virtually "answers", in which it itself feeds synchronization data into the data interface. In this way, there is minimal time loss and a minimal additional load on the data transmission link between computers in a network due to the additional exchange In the example in FIG.
  • this synchronization that has been achieved or restored is achieved by a further synchronization, at the time TU almost simultaneously, both in the course of the instruction instructions from task A on the time axis 15 and in the sequence of the instruction instructions "B syncpoint x + 1" or "syncpoint y + 1" are displayed by task B on the time axis 16.
  • an expiry time is advantageously started by a computer after at least one set of synchronization data has been fed in for at least one other computer in the network, and one computer in the event that up to At the end of the expiry time, no set of synchronization data could be received from at least one other computer, specified command instructions were carried out, in particular a message was generated or normal command processing was continued.
  • This measure serves to ensure, on the other hand, that a computer requesting synchronization does not constantly and possibly in vain wait for the arrival of a synchronization data record from this other computer when an error occurs in another computer in the network. If the computer requesting synchronization by feeding in its own synchronization data record could not receive a synchronization data record from another computer when the specified expiry time had expired, suitable measures can be initiated by the requesting computer. For example, you can try the
  • Synchronization with other computers in the network is interrupted and the processing of the commands of the current user program which is suspended for the duration of the synchronization attempt is continued.
  • the sequence of the synchronization method according to the invention is explained.
  • the synchronization method according to the invention can also be used without restriction for a larger number of computers interconnected in a network.
  • the sequence of a user program “task A” and in particular a synchronization routine “sync routine A” constructed in accordance with the invention are in the left area in a first processing block for computer A, in the central area of FIG. 4 in one second processing block for computer B the execution of a user program “task B” and in particular a synchronization routine “sync routine B” constructed according to the invention and finally in the right area of FIG.
  • a third processing block for computer C the execution of a user program “task C” "and in particular a synchronization routine” sync routine C "constructed according to the invention.
  • the computers are coupled to one another in a network, in particular via a data network.
  • the user programs task A, task B and task C can consist of identical instruction instructions, so that the network shown in FIG. 4 then represents a so-called "two out of three" computer network system.
  • computers A, B and C each reach a program point in which synchronization with the other computers in the network is requested and triggered.
  • these are the program point "syncpoint X" in the course of "task A”, the program point “syncpoint Y” in the course of "task B” and the program point “syncpoint Z" in the course of "task C”.
  • Each of these program items is followed by a error routine with the designation "write syncdata x", "write syncdata y” or "write syncdata z".
  • the synchronization routine "sync routine A" from computer A has the following command instructions in the example of FIG. 4:
  • the synchronization routine “sync routine B” from computer B has the following command instructions in the example of FIG. 4:
  • Computer A feeds a synchronization data record x, which is directed to the computer C of the network, into the data interface (see dotted arrow with reference number 29).
  • Computer A feeds a synchronization data record x, which is directed to the computer B of the network, into the data interface (see solid arrow with reference number 32).
  • Computer A starts an expiry time A within which the synchronization telegrams y, z of the other computers B, C of the network are expected to be received.
  • Computer A switches to a receive state and interrupts further command processing.
  • Computer A receives a synchronization data record addressed to it and fed in by computer B. y (see solid arrow with the reference symbol 31).
  • Computer A remains in the receive state and continues to interrupt command processing.
  • Computer A receives a synchronization data record z directed to it and fed in by computer C ⁇ see dash-dotted arrow with reference symbol 30).
  • Computer A resets the expiry time A before the predetermined expiry time is reached, since in the meantime the expected synchronization data records from computers B and C could be received in time.
  • Computer A carries out processing operations of its own synchronization data record x and the received synchronization data records y, z.
  • the content of the synchronization data records x, y, z is checked for the presence of identity. If the desired result occurs during the processing operations, the further processing of task a is continued. Otherwise, command processing from task A to computer A remains interrupted and application-specific error handling can be triggered.
  • Computer B feeds a synchronization data record y, which is directed to computer A of the network, into the data interface (see solid arrow with reference number 31).
  • Computer B feeds a synchronization data record y, which is directed to the computer C of the network, into the data interface (see solid arrow with reference number 34). 12. Computer B starts an expiry time B within which the synchronization telegrams x, z of the other computers A, C of the network are expected to be received.
  • Computer B switches to a receive state and interrupts further command processing.
  • Computer B receives a synchronization data record z addressed to it and fed in by computer C (see solid arrow with reference numeral 33).
  • Computer B remains in the receive state and continues to interrupt command processing.
  • Computer B receives a synchronization data record x addressed to it and fed in by computer A (see solid arrow with reference numeral 32).
  • Computer B resets the expiry time B before reaching the specified expiry time, since in the meantime the expected synchronization data records from computers A and C could be received in good time.
  • Computer B carries out processing operations of its own synchronization data set y and the received synchronization data sets x, z. In particular, the content of the synchronization data records x, y, z is checked for the presence of identity. If the desired result occurs during the processing operations, the further processing of task b is continued. Otherwise the command processing from task B on computer B remains interrupted and it can be application-dependent
  • Computer C feeds a synchronization data record z, which is directed to computer B of the network, into the data interface (see solid arrow with reference number 33).
  • Computer C feeds a synchronization data record z, which is directed to computer A of the network, into the data interface (see dash-dotted arrow with reference numeral 30).
  • Computer C starts an expiration time C within which reception of the synchronization telegrams x, y from the other computers A, B of the network is expected.
  • Computer C switches to a receive state and interrupts further command processing.
  • Computer C receives a synchronization data record x addressed to it and fed in by computer A (see dotted arrow with reference symbol 29).
  • Computer C remains in the receiving state and continues to interrupt command processing.
  • Computer C receives a message addressed to it from
  • Computer B fed synchronization data set y (see dotted arrow with reference numeral 29).
  • Computer C resets the expiry time C before reaching the predetermined expiry time, since in the meantime the expected synchronization data records from computers A and B could be received in good time.
  • Computer C carries out processing operations of its own synchronization data record z and the received synchronization data records x, y.
  • the content of the synchronization data records x, y, z is checked for the presence of identity. If the desired result occurs during the processing operations, the further processing of task c is continued. Otherwise the command processing from task C on computer C remains interrupted and application-specific error handling can be triggered.
  • each computer A, B or C each sends one to the feeds another set of synchronization data to another computer in the network, and this computer expects to receive a corresponding set of synchronization data from the other computers in the network in an order reverse to the previous feed.
  • Computer A each send a synchronization data record x directed to computer C and computer B (send C, x and send B, x).
  • the computer A is then expected to receive the synchronization data sets y and z from the computers B and C (receive B, y and receive C, z).
  • the synchronization method according to the invention can also be used unchanged if the tasks of the connected computers do not consist of identical sequences of command instructions, but are only set up to exchange data in certain program points or even only a computer on the Receiving data from the other computer is set up.

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)
  • Hardware Redundancy (AREA)

Abstract

Bei dem Verfahren wird die Bearbeitung der Befehle eines Programmes in einem Computer unterbrochen, wenn bei der Bearbeitung ein Befehl auftritt, der eine Synchronisation mit einem Programm auf einem anderen Computer anfordert. Dann wird von jedem beteiligten Programm ein Satz von Synchronisationsdaten für ein Partnerprogramm auf mindestens einem anderen Computer in die Datenschnittstelle eingespeist, in einen Empfangszustand umgeschaltet und die Bearbeitung der Befehle eine Programmes solange unterbrochen, bis ein Satz von Synchronisationsdaten von Programmen der anderen Computer empfangen wurde.

Description

Beschreibung
Verfahren zur Synchronisation von Programmen auf unterschied¬ lichen Computern eines Verbundes
In zunehmendem Maß werden Computeranlagen über Kommunikati¬ onseinrichtungen miteinander vernetzt. Bei manchen Anwendun¬ gen muß der Synchronisation der in einem Verbund zusammenge¬ schlossenen Datenverarbeitungsanlagen besondere Beachtung ge- schenkt werden.
Dabei können bezüglich der Art der Synchronisation verschie¬ dene Anforderungen bestehen. Zum einen kann die von den Com¬ putern eines Verbundes geforderte Synchronität überwiegend zeitlicher Natur sein. In diesem Fall sollen die Computer möglichst parallel arbeiten, d.h. sich bezüglich der Bearbei¬ tung der Befehle eines aktuellen Programmes zeitlich mög¬ lichst immer im gleichen Bearbeitungszustand befinden. Die Computer sollen also in jedem Moment jeweils möglichst die gleiche Bearbeitungssequenz verarbeiten.
Über die reine zeitliche Parallelität hinausgehend kann bei der Synchronität von Computern in einem Verbund die zusätzli¬ che Anforderung auftreten, daß die jeweiligen Bearbeitungsse- quenzen in den Computern auch möglichst den gleichen daten¬ technischen Bedeutungsinhalt aufweisen sollen. Dies bedeutet, daß die Computer eines Verbundes bei einer annähernd zeit¬ gleichen Befehlsbearbeitung auf Grund von möglichst identi¬ schen Ausgangswerten auch möglichst identische Ergebniswerte erzielen sollen. In einem solchen Fall ist im Rahmen der zeitlichen Synchronisation auch der Vergleich der Ausgangs- werte bzw. ausgewählter aktueller Bearbeitungswerte der ein¬ zelnen Programme auf den Computern von Vorteil . In der praktischen technischen Anwendung wird es auf Grund von verschiedenartigsten störenden Einflüssen nicht zu errei¬ chen sein, daß die Befehlsverarbeitung in verschiedenen, mit¬ einander vernetzten Computern in einem Verbund über einen längeren Zeitraum eine zeitliche und / oder logisch inhaltli¬ che Synchronität beibehält. Vielmehr müssen in der Regel zy¬ klisch besondere technische Maßnahmen durchgeführt werden, um die Synchronität der Befehlsverarbeitungen in den Computern aufrechtzuerhalten bzw. wieder herzustellen.
Dies ist besonders dann wichtig, wenn die Computer eines Ver¬ bundes ein sogenanntes hochverfügbares oder ausfallsicheres System bilden sollen. Beispiele hierfür sind sogenannte "eins von zwei" oder „zwei von zwei" Systeme.
Bei einem "eins von zwei" System zum Beispiel sollen zwei verbundene Computer mit identischen Programmen die gleichen Ausgangsdaten, wie z.B. Meßwerte, unter der Randbedingung ei¬ ner hohen Computersystemverfügbarkeit bearbeiten. Es muß re- gelmäßig sichergestellt werden, daß die Bearbeitungszustände der beiden Computer auf Grund von u.U. auch nur geringfügig unterschiedlichen Bearbeitungsgeschwindigkeiten mittelfristig nicht zu stark divergieren. Ferner muß regelmäßig sicherge¬ stellt sein, daß beide Computer übereinstimmende Bearbei- tungsergebnisse aufweisen. Dies ist Voraussetzung dafür, daß in dem Fall, in dem die beiden Computer z.B. zur Steuerung eines technischen Prozesses eingesetzt werden, welcher eine hohe Verfügbarkeit erfordert, und einer der beiden Computer ausfällt, der andere Computer quasi sprungslos die Steuerung des technischen Prozesses fortführen kann. Bei einem derarti¬ gen „eins von zwei" System müssen also die beiden beteiligten Computer durch besondere Sychronisationsmaßnahmen zeitlich synchronisiert werden. Ferner müssen deren aktuelle Bearbei¬ tungsinhalte regelmäßig auf Gleichheit überprüft werden.
Sehr ähnlich zu dem "eins von zwei" ComputerSystem sind die Bedingungen auch bei einem sogenannten "zwei von zwei" Compu- tersystem. Dabei sollen zwei verbundene Computer mit identi¬ schen Programmen die gleichen Ausgangsdaten, wie z.B. Meßwer¬ te, unter der Randbedingung einer hohen Bearbeitungssicher¬ heit bearbeiten. Wird dabei aber eine plötzliche, nicht be- hebbare Ungleichheit der Bearbeitungsergebnisse detektiert, so ist die gewünschte Ergebnissicherheit nicht mehr gegeben. Bei einer sicherheitsrelevanten Bearbeitung müssen also die Anwenderprogramme auf beiden Computern in einen sicheren Zu¬ stand gebracht werden, z.B. den Stop Zustand. Eine weitere Bearbeitung des sicherheitsrelevanten Prozesses ist nicht mehr möglich, da nicht entschieden werden kann, welches Pro¬ gramm auf welchem der beiden Computer im Moment des plötzli¬ chen Auftretens der Ungleichheit die noch "richtigen" Bear- beitungsergebnisεe aufwies.
Vergleichbare Randbedingungen liegen auch bei einem sogenann¬ ten „zwei von drei" System vor. Bei diesem können die Anfor¬ derungen einer Hochverfügbarkeit des Systems zum einen und einer hohen Bearbeitungssicherheit der Daten zum anderen gleichzeitig erfüllt werden. In einem solchen Fall können drei verbundene Computer die gleichen Ausgangsdaten mit Hilfe von identischen Programmen bearbeiten. Auch hierbei muß in regelmäßigen Zeitabständen sichergestellt werden, daß die Be- arbeitungszustände der drei Computer nicht zu stark divergie- ren und daß insbesondere in jedem Computer gleiche Bearbei¬ tungsergebnisse vorliegen. Werden bei einem Vergleich aktuel¬ ler Bearbeitungsergebnisse Ungleichheiten detektiert, so kann ein Computer als gestört betrachtet werden und muß aus dem Verbund ausscheiden, wenn dessen aktuelles Bearbeitungsergeb- nis plötzlich und dauerhaft von den übereinstimmenden Bear- beitungseVgebnissen der beiden anderen Computer abweicht. Das System gewährt als bei Ausfall eines der drei Computer sowohl Bearbeitungssicherheit als auch Verfügbarkeit. Dieser Vorgang wird auch Mehrheitsentscheidung genannt . Im Anschluß an einen solchen Fall ist das ursprüngliche „drei von zwei" System dann quasi in ein „zwei von zwei" System oder eine "eins von zwei" System zurückgefallen abhängig davon, ob die beiden verbleibenden Computer des Systems die Daten der jeweiligen Programme mit hoher Ergebnissicherheit oder hoher Verfügbar¬ keit weiter bearbeiten sollen.
Bei ComputerSystemen der obigen Art muß durch in der Regel regelmäßig wiederkehrende Maßnahmen die zeitliche Paralleli¬ tät der internen Bearbeitungsfolge der Befehle sichergestellt bzw. wieder hergestellt werden. Dabei sollen die zu einer derartigen Synchronisierung notwendigen Maßnahmen den norma- len Betrieb eines jeden beteiligten Computers möglichst wenig beeinträchtigen und zumindest möglichst schnell ablaufen.
Der Erfindung liegt somit die Aufgabe zugrunde, ein möglichst einfaches, robustes und insbesondere wenig Bearbeitungszeit beanspruchendes Verfahren zur Synchronisation von mindestens zwei Programmen, insbesondere Anwenerprogrammen, auf mitein¬ ander verbundenen Computern anzugeben.
Die Aufgabe wird gelöst mit dem im Anspruch 1 angegebenen Synchronisationsverfahren. Weitere, vorteilhafte Ausführungs- formen der Erfindung sind in den Unteransprüchen angegeben.
Die Erfindung wird an Hand von in den nachfolgend kurz ange¬ führten Figuren dargestellten Ausführungsbeispielen näher er- läutert. Dabei zeigt
FIG 1 : beispielhaft zwei Computer, welche über einen Daten¬ bus mittels einer eingerichteten Kommunikationsver¬ bindung einen Verbund bilden,
FIG 2 : beispielhaft zwei Computer, welche über einen Daten¬ bus mittels sogenannter Broadcasts Daten austauschen,
FIG 3 : einen ersten Zeitablaufplan, an dem der Ablauf des erfindungsgemäßen Synchronisationsverfahrens am Bei¬ spiel von zwei Computern eines Verbundes erläutert wird, welche ein sogenanntes "eins von zwei" oder "zwei von zwei" Computersystem bilden können, und
FIG 4 : einen zweiten Zeitablaufplan, an dem der Ablauf des erfindungsgemäßen Synchronisationsverfahrens am Bei¬ spiel von drei Computern eines Verbundes erläutert wird, welche ein sogenanntes "zwei von drei" Compu¬ tersystem bilden können.
In der Figur 1 ist ein erstes Beispiel für eine Kommunikati¬ onsverbindung zwischen zwei Datenverarbeitungsanlagen, nach¬ folgend abgekürzt Computer genannt, dargestellt. Dabei sind ein erster, über eine Tastatur und einen Bildschirm 4 be¬ dienbarer Computer A über eine erste Ankopplung 3, und ein zweiter, über eine Tastatur und einen Bildschirm 6 bedienba¬ rer Computer B über eine zweite Ankopplung 6 mit einem Da¬ tenbus 1 verbunden. Zwischen diesen beiden Computern ist ei¬ ne stehende Kommunikationsverbindung 8 eingerichtet, welche in Figur 1 durch eine punktierte Linie 8 angedeutet ist. Über eine derartige, feste, verbindungsorientierte Kommuni¬ kationsverbindung können dauernd Daten direkt zwischen bei¬ den Computern ausgetauscht werden. Jeder Computer ist darauf eingerichtet, Daten genau an den anderen Computer zu senden bzw. von diesem zu empfangen.
Figur 2 zeigt ein weiteres Beispiel für eine Kommunikations- verbindung zwischen den beiden Datenverarbeitungsanlagen A und B. Dabei ist keine Kommunikationsverbindung fest zwi¬ schen beiden Rechnern eingerichtet. Vielmehr basiert diese Kommunikation auf dem sogenannten „Broadcastprinzip" . Dabei speist z.B. der Computer A bei Bedarf eine Nachricht 10, d.h. ein sogenanntes Broadcast, in den Datenbus 1 ein. Alle anderen, an dem Datenbus 1 angeschlossenen Computer, im Bei¬ spiel der Figur 1 der Computer B und gegebenenfalls weitere, in Figur 1 nicht dargestellte Computer, befinden sich in ei¬ ner Betriebsart, welche einen Datenempfang über den Datenbus 1 ermöglicht. Alle anderen Computer empfangen zunächst das von Computer A in den Datenbus eingespeiste Broadcast und überprüfen danach, ob die Daten des Broadcasts an sie ge¬ richtet sind oder verwertbare Inhalte aufweisen.
Das erfindungsgemäße Synchronisationsverfahren ist uneinge¬ schränkt zumindest für die beiden, an Hand der Figuren 1, 2 dargestellten Verbindungsarten verwendbar und soll nachfol¬ gend am Beispiel der Figur 3 im Detail erläutert werden.
Im Zeitablaufplan der Figur 3 ist auf der linken Seite eine allgemeine Zeitachse 14 mit Zeitmarken Tl ... TU darge¬ stellt. Diese Zeitpunkte repräsentieren die Startpunkte von Bearbeitungszuständen der beiden Computer A und B, welche beim Ablauf des erfindungsgemäßen Synchronisationsverfahrens auftreten. Diese Bearbeitungszustände sind für den Computer A auf einer rechts der allgemeinen Zeitachse 14 liegenden Zeit¬ achse 15 und für den Computer B auf einer ganz rechts von Fi¬ gur 3 liegenden Zeitachse 15 in Form von Funktionskästen dar¬ gestellt. Grundsätzlich symbolisieren die Zeitachsen 15,16 für die Computer A, B den Ablauf bzw. den Fortschritt in der
Bearbeitung von Befehlen aktueller Programme, insbesondere von Anwenderprogrammen, welche für den Computer A mit task A und für den Computer B mit task B bezeichnet sind. Die für das erfindungsgemäße Synchronisationsverfahren benötigten Be- arbeitungszustände werden in den natürlichen Ablauf der Bear¬ beitung der Befehle von task A und B eingeschoben und bewir¬ ken somit jeweils eine zumindest vorübergehende Unterbrechung in der Bearbeitungsfolge der Befehlsanweisungen von task A,B. Das erfindungsgemäße Verfahren hat den Vorteil, daß die durch die Synchronisation bedingten, in den Ablauf der einzelnen tasks eingeschobenen zusätzlichen Bearbeitungszustände mög¬ lichst kurz sind. Die beiden, auf den Computern A,B ablaufen¬ den tasks werden also zum Zwecke der wechselseitigen Synchro¬ nisation nur so lange wie unbedingt notwendig unterbrochen.
Bei dem in Figur 3 dargestellten Beispiel ist angenommen, daß während des Ablaufes eines tasks in einem Computer Bearbei- tungszustände auftreten, d.h. bei der Bearbeitung der Befehle des aktuellen Anwenderprogrammes im Computer z.B. ein Befehl auftritt, wodurch der Ablauf eines Synchronisationsvorganges zwischen beiden Computern angefordert wird. Auf der Zeitachse 15 für Computer A sind dies z.B. die Zeitpunkte T2 = syncpoint X und TU = syncpoint X+l. In entsprechender Weise sind auf der Zeitachse 16 für Computer B jeweils eine Syn¬ chronisation auslösende Zeitpunkte T6 = syncpoint Y und TU = syncpoint Y+l vorhanden. Es sei aus Gründen einer vereinfach- ten Erläuterung der Erfindung zunächst beispielhaft zusätz¬ lich angenommen, daß die in den Computern A und B ablaufenden tasks A und B jeweils aus übereinstimmenden Ketten von Be- fehlsanweisungen bestehen, d.h. daß folglich von den Compu¬ tern A,B die gleichen Anwenderprogramme bearbeitet werden. Dies bedeutet, daß z.B. die zu den Synchronisationszeitpunk¬ ten und T6 = syncpoint Y gehörigen Bearbeitungszustände in den jeweiligen tasks A,B inhaltlich identisch sind. Im Bei¬ spiel der Figur 3 ist jedoch die Bearbeitung dieser tasks auf den Computern A und B zeitlich auseinander gelaufen, d.h. die Bearbeitung erfolgt nicht mehr annähernd zeitgleich bzw. syn¬ chron. Dies ist in Figur 3 daran zu erkennen, daß der syncpoint X in task A zum Zeitpunkt T2 zeitlich früher als der entsprechende syncpoint Y in task B zum Zeitpunkt T6 auf¬ tritt.
Der im Zeitpunkt T2 ausgelöste Synchronisationsvorgang ist somit erforderlich. Dieser wird erfindungsgemäß damit einge¬ leitet, daß derjenige Computer des Verbundes, im Beispiel der Figur 3 der Computer A, als erster während der Bearbeitung des entsprechenden tasks an einen Synchronisationspunkt ge¬ langt, d.h. bei der Befehlsbearbeitung einen Befehl erreicht, der eine Synchronisation mit einem anderen Computer oder den anderen Computern des Verbundes anfordert. Dabei wird im Zeitpunkt T2 die weitere Bearbeitung der Befehle des aktuel- len Anwenderprogrammes zunächst vom Computer A unterbrochen und zumindest ein Satz von Synchronisationsdaten für minde¬ stens einen anderen Computer des Verbundes in die Daten- Schnittstelle eingespeist. Im Beispiel der Figur 15 ist dies durch den Bearbeitungsblock 17 dargestellt, welcher mit „send syncdata x" beschriftet ist, und einen davon abgehenden Pfeil 35 aufweist.
Erfindungsgemäß schaltet der die Synchronisation auslösende Computer unmittelbar nach Einspeisung des Synchronisationsda¬ tensatzes sofort in einen Empfangszustand um, d.h. in eine die Entgegennahme entsprechender Datensätze von Programmen auf anderer Computer des Verbundes ermöglichende Betriebsart. Insbesondere wird im Rahmen der Einspeisung des Synchronisa¬ tionsdatensatzes vom Programm des sendenden Computers für ei¬ nen Abschluß des Einspeisungsvorganges keine Entgegennahme von Quittierungsmeldungen von den Programmen auf empfangenden Computern des Verbundes erwartet. Vielmehr wird nach Einspei¬ sung des Synchronisationsdatensatzes sofort auf einen Daten¬ empfangszustand umgeschaltet und die weitere Bearbeitung des aktuellen tasks bis zum Eintreffen insbesondere eines ent¬ sprechenden Synchronisationsdatensatzes von einem Programm eines anderen Computer des Verbundes unterbrochen. In Figur 3 ist dies durch den mit „receive wait" bezeichneten Bearbei¬ tungsblock 19 auf der Zeitachse 15 von Computer A symboli¬ siert .
Zur Reduktion der Menge der im Rahmen der Synchronisation auszutauschenden und zu vergleichenden Daten kann durch eine sogenannte Signaturbildung der Umfang der zu transferierenden Daten deutlich reduziert werden. Bei der Bildung einer Signa¬ tur wird eine Datensatz durch eine Art von Komprimierung auf eine eindeutig kennzeichnende Kennung reduziert, welche eine im Vergleich zum Datensatz sehr viel kleinere Größe aufweisen kann.
Während dieses mit „receive wait" bezeichneten Bearbeitungε- blocks 19, welcher auch als ein sogenannter „Wartezustande mit Empfangsbereitschaft" angesehen werden kann, schreitet die Bearbeitung der Befehle des Anwenderprogrammes „task B" auf dem Computer B voran und erreicht im Zeitpunkt T6 einen entsprechenden, mit „syncpoint Y" bezeichneten Synchronisati¬ onszeitpunkt. Erfindungsgemäß unterbricht nun auch der Compu¬ ter B die Bearbeitung der Befehlsanweisungen des aktuellen Anwenderprogrammes und speist eineen Synchronisationsdaten¬ satz in den Datenbus ein. Dieser ist in Figur 3 durch den mit „send syncdata Y" bezeichneten Bearbeitungsblock 20 auf der
Zeitachse 16 von Computer B und einen davon ausgehenden Pfeil 36 symbolisiert. Bevorzugt unmittelbar nach der Einspeisung des Synchronisationsdatensatzes schaltet Computer B in einen Daten empfangenden Zustand. Da der im Beispiel andere Compu- ter A des Verbundes bereits im Zeitpunkt T2 seinen Synchroni- sationsdatensatz eingespeist hat, tritt nach Umschaltung von Computer B in den Bearbeitungszustand „receive" keine „wait" Phase auf, sondern es kann der bereits anstehende Synchroni¬ sationsdatensatz syncdata x vom Computer A unmittelbar entge- gen genommen werden. Dies ist in Figur 3 im Zeitpunkt T8 durch den mit „receive/receive syncdata x" bezeichneten Bear¬ beitungsblock 26 auf der Zeitachse 16 von Computer B symboli¬ siert.
Andererseits wird der vom Computer B abgesetzte Synchronisa¬ tionsdatensatz nach Ablauf der in Figur 3 durch den Pfeil 36 dargestellten Übertragungszeit von dem im Betriebszustand „receive" verharrenden Computer A sofort empfangen, was durch den mit „receive syncdata y" bezeichneten Bearbeitungsblock 22 auf der Zeitachse 15 von Computer A symbolisiert ist.
Hierdurch wird somit dessen „wait" Zustand beendet. Auf Grund der in aller Regel relativ geringen Übertragungsdauer des Synchronisationsdatensatzes „syncdata y" beginnt dieser Emp¬ fang ebenfalls annähernd im Zeitpunkt T8. Es ist nun zwischen beiden Computern A und B eine annähernde Synchronität von de¬ ren Bearbeitungszuständen erreicht, und eine weitere Befehls- bearbeitung erfolgt somit annähernd zeitgleich, so daß das angestrebte Synchronisationsziel erreicht ist.
Vorteilhaft wird von beiden Computern jeweils im Zeitpunkt T10 eine Analyse des jeweils empfangenen Synchronisationsda- tensatzes vorgenommen. Für den Computer A ist dies auf der
Zeitachse 15 durch den Bearbeitungsblock 24 „Bearbeitung sync data y", und den Computer B ist dies auf der Zeitachse 16 durch den Bearbeitungsblock 28 „Bearbeitung sync data x" dar¬ gestellt. Auch diese beiden Bearbeitungen laufen nun annä- hernd zeitgleich ab.
Für das erfindungsgemäße Synchronisationsverfahren spielt der Inhalt des jeweiligen Synchronisationsdatensatzes keine Rol¬ le. Im einfachsten Fall können die wechselseitig übertragenen Synchronisationsdatensätze syncdata x und syncdata y z.B. je¬ weils aus einem einzigen Bit bestehen. Dieses hat die Funkti¬ on einer Zeitmarke. Bereits damit kann eine zeitliche Syn¬ chronisation der Bearbeitungszustände von Computern unter An¬ wendung des erfindungsgemäßen Verfahrens erreicht werden. Darüber hinausgehend können die Synchronisationsdatensätze selbstverständlich beliebige zusätzliche Informationen bein¬ halten, die z.B. zum Abgleich von Bearbeitungsergebnisεen der beiden Computer dienen können. Im Beispiel der Figur 3 kann z.B. durch einen Vergleich des Synchronisationsdatensatzes syncdata x von Computer A mit dem Synchronisationsdatensatz syncdata y von Computer B im Bearbeitungsblock 24 ( „Bearbeitung syndata y" ) abhängig vom Vergleichsergebnis entweder eine Fortsetzung der Bearbeitung der Befehlsanwei¬ sungen des unterbrochenen tasks A ausgelöst werden ( „return to / ... : task A" ) , insbesondere wenn eine Übereinstimmung der beiden Synchronisationsdatensätze erkannt wurde. Anderer¬ seits kann insbesondere bei Vorliegen einer Ungleichheit die weitere Bearbeitung unterbrochen bzw. nicht mehr aufgenommen ( „ ... / stop : task A" ) . In der gleichen Weise kann durch einen Vergleich des Synchronisationsdatensatzes syncdata y von Computer B mit dem empfangenen Synchronisationsdatensat- zes syncdata x von Computer A im Bearbeitungsblock 28 (
„Bearbeitung syncdata x" ) entweder eine Fortsetzung der Be¬ arbeitung der Befehlsanweisungen des unterbrochenen tasks B ausgelöst werden ( „return to / ... : task B" ) , oder die weitere Bearbeitung endgültig abgebrochen werden( „ ... / stop : task B" } .
Das erfindungsgemäße Verfahren hat den besonderen Vorteil, daß die Synchronisation besonders schnell ablaufen kann, da von den Computern im Verbund, welche Synchronisationsdaten in die Datenschnittstelle einspeisen, keine, z.B. den ordnungs¬ gemäßen Empfang dieser Daten durch einen anderen Computer im Verbund quittierende Rückmeldungen notwendig sind und erwar¬ tet werden. Vielmehr „antwortet" quasi ein anderer Computer des Verbundes, in dem er selbst Synchronisationsdaten in die Datenschnittstelle einspeist. Auf diese Weise ist mit minima¬ len zeitlichen Verlusten und einer minimalen zusätzlichen Be¬ lastung der Datenübertragungsstrecke zwischen denn Computern eines Verbundes auf Grund der zusätzlich ausgetauschten Syn- chronisationsdatensätze eine sehr effektive Synchronisation erreichbar. Im Beispiel der Figur 3 ist diese erreichte oder wiederhergestellte Synchronisation durch je einen weiteren, im Zeitpunkt TU nahezu zeitgleich sowohl im Ablauf der Be¬ fehlsanweisungen von task A auf der Zeitachse 15 als auch im Ablauf der Befehlsanweisungen von task B auf der Zeitachse 16 auftretenden Synchronisationszeitpunkt „syncpoint x+1" bzw. „syncpoint y+1" dargestellt.
Gemäß einer weiteren Ausführungsform der Erfindung wird vor¬ teilhaft von einem Computer nach Einspeisung von zumindest einem Satz von Synchronisationsdaten für mindestens einen an¬ deren Computer des Verbundes eine Ablaufzeit gestartet, und es werden von dem einen Computer für den Fall, daß bis zum Ende der Abiaufzeit kein Satz von Synchronisationsdaten von mindestens einem anderen Computer empfangen werden konnte, vorgegebene Befehlsanweisungen ausgeführt, insbesondere eine Meldung generiert oder die normale Befehlsbearbeitung fort- setzt. Diese Maßnahme dient zur Sicherheit dagegen, daß ein, eine Synchronisation anfordernder Computer bei Auftreten ei¬ nes Fehlers in einem anderen Computer des Verbundes nicht dauernd und u.U. vergeblich auf das Eintreffen eines Synchro¬ nisationsdatensatzes von diesem anderen Computer wartet . Konnte mit Erreichen des Endes der vorgegebenen Abiaufzeit von dem Computer, der durch Einspeisung eines eigenen Syn¬ chronisationsdatensatzes eine Synchronisation anfordert, kein Synchronisationsdatensatz eines anderen Computers empfangen werden, so können von dem anfordernden Computer geeignete Maßnahmen eingeleitet werden. Es kann z.B. der Versuch der
Synchronisation mit anderen Computern des Verbundes abgebro¬ chen und die für die Dauer des Synchronisationsversuches aus¬ gesetzte Bearbeitung der Befehle des jeweils aktuellen Anwen¬ derprogrammes fortgesetzt werden.
Im Beispiel der Figur 3 ist diese Ausführung der Erfindung bereits dargestellt. So wird zum einen von Computer A im Zeitpunkt T3 unmittelbar im Anschluß an die Einspeisung des Synchronisationsdatensatzes „send syncdata x" eine derartige Abiaufzeit im Bearbeitungsblock 18 „Start timeout A" gestar¬ tet. Da ein anderer Synchronisationsdatensatz, im dargestell¬ ten Beispiel syncdata y von Computer B, im Zeitpunkt T8 nach Ablauf einer gewissen Wartezeit „wait" dennoch rechtzeitig empfangen werden konnte, wird die Ablaufzeit mit Erreichen des Zeitpunkts T10 im Bearbeitungsblock 23 „reset timeout A" wieder rückgesetzt. In der gleichen Weise wird von Computer B im Zeitpunkt T7 unmittelbar im Anschluß an die Einspeisung des Synchronisationsdatensatzes „send syncdata y" eine derar¬ tige Ablaufzeit im Bearbeitungsblock 25 „start timeout B" ge- startet. Da Computer B, wie oben schon erläutert wurde, den bereits anstehenden Synchronisationsdatensatz syncdata x von Computer A im Bearbeitungsblock 26 sofort entgegennehmen kann, kann die Ablaufzeit unmittelbar im Anschluß daran im Bearbeitungsblock 27 „reset timeout B" bereits wieder rückge¬ setzt werden.
Am Beispiel eines in der Figur 4 dargestellten zweiten
Zeitablaufplanes wird für drei Computer eines Verbundes der Ablauf des erfindungsgemäßen Synchronisationsverfahrens er¬ läutert. Das erfindungsgemäße Synchronisationsverfahren ist uneingeschränkt auch für eine größere Anzahl von in einem Verbund zusammengeschalteten Computern anwendbar. Im Beispiel der Figur 4 sind im linken Bereich in einem ersten Bearbei¬ tungsblock für Computer A der Ablauf eines Anwenderprogrammes „task A" und insbesondere einer gemäß der Erfindung aufgebau¬ ten Synchronisationsroutine „sync routine A" , im mittleren Bereich von Figur 4 in einem zweiten Bearbeitungsblock für Computer B der Ablauf eines Anwenderprogrammes „task B" und insbesondere einer gemäß der Erfindung aufgebauten Synchroni¬ sationsroutine „sync routine B" und schließlich im rechten Bereich von Figur 4 in einem dritten Bearbeitungsblock für Computer C der Ablauf eines Anwenderprogrammes „task C" und insbesondere einer gemäß der Erfindung aufgebauten Synchroni¬ sationsroutine „sync routine C" dargestellt. Die Computer sind in einem Verbund insbesondere über ein Datennetzwerk miteinander koppelt. In einem Anwendungsfall können die An- Wenderprogramme task A, task B und task C aus identischen Be¬ fehlsanweisungen bestehen, so daß der in Figur 4 dargestellte Verbund dann ein oben bereits erläutertes, sogenanntes „zwei aus drei" Computerverbundsystem darstellt.
Während der normalen Befehlsbearbeitung wird von Computer A, B bzw. C jeweils ein Programmpunkt erreicht, in dem eine Syn¬ chronisation mit den anderen Computern im Verbund angefordert und ausgelöst wird. In den Bearbeitungsblöcken von Figur 4 sind dies der Programmpunkt „syncpoint X" im Ablauf von „task A", der Programmpunkt „syncpoint Y" im Ablauf von „task B" und der Programmpunkt „syncpoint Z" im Ablauf von „task C". An jeden dieser Programmpunkte schließt sich jeweils eine Be- fehlsroutine mit der Bezeichnung „write syncdata x", „write syncdata y" bzw. „write syncdata z" an. Hiermit wird die Be¬ arbeitung des jeweiligen task A, task B bzw. task C unterbro¬ chen, es werden gegebenenfalls temporäre Daten für eine spä¬ tere Fortsetzung der Programmbearbeitung zwischengespeichert und es wird vom entsprechenden Computer A, B oder C ein Syn¬ chronisationsdatensatz „syncdata x", „syncdata y" bzw. „syncdata z" für die jeweilige Synchronisationsroutine und zur Einspeisung in die Datenschnittstelle generiert.
Die Synchronisationsroutine „sync routine A" von Computer A weist im Beispiel von Figur 4 folgende Befehlεanweisungen auf:
1. send C,x
2. send B,x
3. set timeout A
4. receive B,y
5. wait
6. receive C, z
7. wait
8. reset timeout A
9. bool = x eq y eq z
Die Synchronisationsroutine „sync routine B" von Computer B weist im Beispiel von Figur 4 folgende Befehlsanweisungen auf:
10. send A,y 11. send C,y
12. set t'imeout B
13. receive C, z
14. wait
15. receive A,x 16. wait
17. reset timeout B
18. bool = x eq y eq z Die Synchronisationsroutine „sync routine C" von Computer C weist im Beispiel von Figur 4 schließlich folgende Befehlsan¬ weisungen auf :
19. send B, z
20. send A, z
21. set timeout C
22. receive A,x 23. wait
24. receive B,y
25. wait
27. reset timeout C
28. bool = x eq y eq z
Die Bedeutung der einzelnen Befehlsanweisungen 1. bis 28. der Synchronisationsroutinen wird wie folgt erläutert :
1. Computer A speiεt einen Synchronisationsdatensatz x, welcher an den Computer C des Verbundes gerich¬ tet ist, in die Datenschnittstelle ein ( siehe punktierten Pfeil mit dem Bezugszeichen 29 ) .
2. Computer A speist einen Synchronisationsdatensatz x, welcher an den Computer B des Verbundes gerich- tet ist, in die Datenschnittεtelle ein { siehe durchgezogenen Pfeil mit dem Bezugszeichen 32 ) .
3. Computer A startet eine Ablaufzeit A, innerhalb der ein Empfang der Synchronisationstelegramme y, z der anderen Computer B, C des Verbundes erwartet wird.
4. Computer A schaltet in einen Empfangszustand um und unterbricht die weitere Befehlsbearbeitung.
5. Computer A empfängt einen an ihn gerichteten, von Computer B eingespeisten Synchronisationsdatensatz y ( siehe durchgezogenen Pfeil mit dem Bezugszei¬ chen 31 ) .
6. Computer A verbleibt im Empfangszustand und unter¬ bricht weiterhin die Befehlsbearbeitung.
7. Computer A empfängt einen an ihn gerichteten, von Computer C eingespeisten Synchronisationsdatensatz z { siehe strichpunktierten Pfeil mit dem Bezugs¬ zeichen 30 ) .
8. Computer A setzt die Ablaufzeit A vor dem Erreichen des vorgegebenen AblaufZeitpunktes zurück, da in der Zwischenzeit rechtzeitig die erwarteten Syn- chronisationsdatensätze von Computer B und C emp¬ fangen werden konnten.
9. Computer A führt Verarbeitungsoperationen des eige- nen Synchronisationsdatensatzes x und der empfange¬ nen Synchronisationsdatensätze y, z durch. Insbe¬ sondere wird der Inhalt der Synchronisationsdaten¬ sätze x, y, z auf das Vorliegen von Identität über¬ prüft. Tritt das gewünschte Ergebnis bei den Verar- beitungsoperationen auf, so wird die weitere Bear¬ beitung von task a fortgesetzt. Andernfalls bleibt die Befehlsbearbeitung von task A auf Computer A unterbrochen, und es kann eine anwendungsabhängige Fehlerbehandlung angestoßen werden.
10. Computer B speist einen Synchronisationsdatensatz y, welcher an den Computer A des Verbundes gerich¬ tet ist, in die Datenschnittstelle ein ( siehe durchgezogenen Pfeil mit dem Bezugszeichen 31 ) .
11. Computer B speist einen Synchronisationsdatensatz y, welcher an den Computer C des Verbundes gerich¬ tet ist, in die Datenschnittstelle ein ( siehe durchgezogenen Pfeil mit dem Bezugszeichen 34 ) . 12. Computer B startet eine Ablaufzeit B, innerhalb der ein Empfang der Synchronisationstelegramme x, z der anderen Computer A, C des Verbundes erwartet wird.
13. Computer B schaltet in einen Empfangszustand um und unterbricht die weitere Befehlsbearbeitung.
14. Computer B empfängt einen an ihn gerichteten, von Computer C eingespeisten Synchronisationsdatensatz z ( siehe durchgezogenen Pfeil mit dem Bezugszei¬ chen 33 ) .
15. Computer B verbleibt im Empfangszustand und unter¬ bricht weiterhin die Befehlsbearbeitung.
16. Computer B empfängt einen an ihn gerichteten, von Computer A eingespeiεten Synchronisationsdatensatz x ( siehe durchgezogenen Pfeil mit dem Bezugszei- chen 32 ) .
17. Computer B setzt die Ablaufzeit B vor dem Erreichen des vorgegebenen AblaufZeitpunktes zurück, da in der Zwischenzeit rechtzeitig die erwarteten Syn- chronisationsdatensätze von Computer A und C emp- fangen werden konnten.
18. Computer B führt Verarbeitungsoperationen des eige¬ nen Synchronisationsdatensatzeε y und der empfange¬ nen Synchronisationsdatensätze x, z durch. Insbe¬ sondere wird der Inhalt der Synchronisationεdaten- sätze x, y, z auf das Vorliegen von Identität über¬ prüft. Tritt das gewünschte Ergebnis bei den Verar¬ beitungsoperationen auf, so wird die weitere Bear¬ beitung von task b fortgesetzt. Andernfalls bleibt die Befehlsbearbeitung von task B auf Computer B unterbrochen, und es kann eine anwendungsabhängige
Fehlerbehandlung angestoßen werden. 19. Computer C speist einen Synchronisationsdatensatz z, welcher an den Computer B des Verbundes gerich¬ tet ist, in die Datenschnittstelle ein ( siehe durchgezogenen Pfeil mit dem Bezugszeichen 33 ) .
20. Computer C speist einen Synchronisationsdatensatz z, welcher an den Computer A des Verbundes gerich¬ tet ist, in die Datenschnittstelle ein ( siehe strichpunktierten Pfeil mit dem Bezugszeichen 30 ) .
21. Computer C startet eine Ablaufzeit C, innerhalb der ein Empfang der Synchronisationstelegramme x, y der anderen Computer A, B des Verbundes erwartet wird.
22. Computer C schaltet in einen Empfangszustand um und unterbricht die weitere Befehlsbearbeitung.
23. Computer C empfängt einen an ihn gerichteten, von Computer A eingespeisten Synchronisationsdatensatz x ( siehe punktierten Pfeil mit dem Bezugszeichen 29 ) .
24. Computer C verbleibt im Empfangszustand und unter¬ bricht weiterhin die Befehlsbearbeitung.
25. Computer C empfängt einen an ihn gerichteten, von
Computer B eingespeisten Synchronisationsdatensatz y ( siehe punktierten Pfeil mit dem Bezugszeichen 29 ) .
27. Computer C setzt die Ablaufzeit C vor dem Erreichen des vorgegebenen AblaufZeitpunktes zurück, da in der Zwischenzeit rechtzeitig die erwarteten Syn¬ chronisationsdatensätze von Computer A und B emp¬ fangen werden konnten.
28. Computer C führt Verarbeitungsoperationen des eige- nen Synchronisationsdatensatzes z und der empfange¬ nen Synchronisationsdatensätze x, y durch. Insbe- sondere wird der Inhalt der Synchronisationsdaten- sätze x, y, z auf das Vorliegen von Identität über¬ prüft. Tritt das gewünschte Ergebnis bei den Verar¬ beitungsoperationen auf, so wird die weitere Bear- beitung von task c fortgesetzt. Andernfalls bleibt die Befehlsbearbeitung von task C auf Computer C unterbrochen, und es kann eine anwendungsabhängige Fehlerbehandlung angestoßen werden.
Bei dem in Figur 4 dargestellten Ausführungsbeispiel ist ge¬ mäß einer weiteren Ausführungsform der Erfindung bereits be¬ rücksichtigt, daß für den Fall, daß mehr als zwei Computer über die Datenschnittstelle verbunden oder verbindbar sind, jeder Computer A, B oder C je einen an die anderen Computer im Verbund gerichteten Satz an Synchronisationsdaten ein¬ speist, und dieser Computer in einer zur vorangegangenen Ein¬ speisung umgekehrten Reihenfolge den Empfang eines entspre¬ chenden Satzes an Synchronisationsdaten von den anderen Com¬ putern im Verbund erwartet. So speist in Figur 4 z.B. der Computer A je einen an den Computer C und an den Computer B im Verbund gerichteten Synchronisationsdatensatz x ein ( send C,x und send B,x ) . Umgekehrt zu dieser Sendereihenfolge wird vom Computer A dann der Empfang der Synchronisationsdatensät¬ ze y und z der Computer B und C erwartet ( receive B,y und receive C,z ) .
Das erfindungsgemäße Synchronisationsverfahren ist unverän¬ dert auch dann anwendbar, wenn die tasks der verbundenen Com¬ puter nicht aus identischen Folgen von Befehlsanweisungen be- stehen, sondern lediglich dafür eingerichtet sind, in be¬ stimmten Programmpunkten Daten auszutauschen bzw. sogar nur ein Computer auf die Entgegennahme von Daten vom anderen Com¬ puter eingerichtet ist.

Claims

Patentansprüche
1. Verfahren zur Synchronisation von Programmen auf minde¬ stens zwei Computern (A,B,C) eines Verbundes, welche über ei- ne Datenschnittstelle (1,3,6) miteinander verbunden oder ver¬ bindbar sind, wobei ein Computer (A) des Verbundes
a) die weitere Bearbeitung der Befehle eines aktuellen Pro¬ grammes (task A) unterbricht, wenn bei der Bearbeitung ein Befehl (syncpoint X, ...) auftritt, der eine Synchronisati¬ on des Programmes (task A) in dem Computer (A) mit minde¬ stens einem Programm (task B, task C) auf mindestenε einem anderen Computer (B,C) des Verbundes anfordert,
b) zumindest einen Satz von Synchronisationsdaten (syncdata x, ...) für den mindestens einen anderen Computer (C,D) des Verbundes in die Datenschnittstelle (1,3,6) einspeiεt,
c) nach Einεpeiεung des zumindest einen Satzes von Synchroni- sationsdaten ( syncdata x, ... ) in einen Empfangszustand
(receive) umschaltet, und
d) die weitere Bearbeitung der Befehle eines aktuellen Pro¬ grammes (task A) solange unterbricht (wait) , bis von dem Computer (A) zumindest ein Satz von Synchronisationsdaten (syncdata y, syncdata z) von den Programmen (task B, task C) auf mindestens einem anderen Computer (B,C) des Verbun¬ des über die Datenschnittstelle (1,3,6) empfangen wurde.
2. Verfahren nach Anspruch 1, wobei
a) von einem Computer (A,B,C) des Verbundes nach Einspeisung von zumindest einem Satz von Synchronisationsdaten (syncdata x, ... ) für mindestenε einen anderen Computer des Verbundes eine interne Ablaufzeit (timeout A, ... ) ge¬ startet wird, und b) von dem einen Computer (A,B,C) für den Fall, daß bis zum Ende der Ablaufzeit (timeout A, timeout B) kein Satz von Synchronisationsdaten von mindestenε einem anderen Compu¬ ter (A,B,C) empfangen wurde, vorgegebene Befehlsanweisun- gen ausgeführt werden, insbesondere eine Meldung generiert und/oder die Bearbeitung der Befehle des aktuellen Pro¬ grammes (task A) endgültig abgebrochen wird, bzw.
c) andernfalls von dem einen Computer (A,B,C) die interne Ab- laufzeit (timeout A) rückgesetzt und die Bearbeitung der
Befehle des aktuellen Programmes (task A, ... ) fortgesetzt wird.
3. Verfahren nach einem der vorangegangenen Ansprüche, wobei für den Fall, daß mehr als zwei Computer über die Daten¬ schnittstelle verbunden oder verbindbar sind,
a) ein Computer (A, ... ) im Verbund jeweils mindestens einen an je einen anderen Computer (B,C) im Verbund gerichteten Satz an Synchronisationsdaten ( send 3,x , send 2,x , ... ) einspeist, und
b) dieser Computer (A, ... ) in einer zur vorangegangenen Ein¬ speisung umgekehrten Reihenfolge den Empfang eines ent- sprechenden Satz an Synchronisationsdaten von den anderen Computer im Verbund erwartet ( receive 2,x , receive 3,x , ... ) .
PCT/DE1997/001023 1996-05-22 1997-05-21 Verfahren zur synchronisation von programmen auf unterschiedlichen computern eines verbundes WO1997044731A1 (de)

Priority Applications (4)

Application Number Priority Date Filing Date Title
DE59700733T DE59700733D1 (de) 1996-05-22 1997-05-21 Verfahren zur synchronisation von programmen auf unterschiedlichen computern eines verbundes
EP97926963A EP0898744B1 (de) 1996-05-22 1997-05-21 Verfahren zur synchronisation von programmen auf unterschiedlichen computern eines verbundes
JP09541383A JP2000510976A (ja) 1996-05-22 1997-05-21 相互接続システムの相い異なるコンピュータ上のプログラムを同期化するための方法
US09/197,509 US6308223B1 (en) 1996-05-22 1998-11-23 Process for the synchronization of programs on different computers of an interconnected system

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
DE19620622A DE19620622A1 (de) 1996-05-22 1996-05-22 Verfahren zur Synchronisation von Programmen auf unterschiedlichen Computern eines Verbundes
DE19620622.7 1996-05-22

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US09/197,509 Continuation US6308223B1 (en) 1996-05-22 1998-11-23 Process for the synchronization of programs on different computers of an interconnected system

Publications (1)

Publication Number Publication Date
WO1997044731A1 true WO1997044731A1 (de) 1997-11-27

Family

ID=7795027

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/DE1997/001023 WO1997044731A1 (de) 1996-05-22 1997-05-21 Verfahren zur synchronisation von programmen auf unterschiedlichen computern eines verbundes

Country Status (9)

Country Link
US (1) US6308223B1 (de)
EP (1) EP0898744B1 (de)
JP (1) JP2000510976A (de)
KR (1) KR20000015819A (de)
CN (1) CN1217798A (de)
AT (1) ATE186790T1 (de)
DE (2) DE19620622A1 (de)
ES (1) ES2140241T3 (de)
WO (1) WO1997044731A1 (de)

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE19831720A1 (de) * 1998-07-15 2000-01-20 Alcatel Sa Verfahren zur Ermittlung einer einheitlichen globalen Sicht vom Systemzustand eines verteilten Rechnernetzwerks
JP3831154B2 (ja) * 1999-08-13 2006-10-11 株式会社東芝 プログラム多重化拡大方法
US6470329B1 (en) * 2000-07-11 2002-10-22 Sun Microsystems, Inc. One-way hash functions for distributed data synchronization
US7024214B2 (en) * 2002-02-26 2006-04-04 Microsoft Corporation Synchronizing over a number of synchronization mechanisms using flexible rules
EP1787196B1 (de) * 2004-08-16 2014-07-23 National Instruments Corporation Synchronisierung der ausführung von auf verschiedenen computersystemen ausgeführten graphischen programmen
US7346793B2 (en) * 2005-02-10 2008-03-18 Northrop Grumman Corporation Synchronization of multiple operational flight programs
US8010997B2 (en) * 2005-06-30 2011-08-30 Microsoft Corporation Enforcing device settings for mobile devices
US8626128B2 (en) 2011-04-07 2014-01-07 Microsoft Corporation Enforcing device settings for mobile devices
US7472261B2 (en) * 2005-11-08 2008-12-30 International Business Machines Corporation Method for performing externally assisted calls in a heterogeneous processing complex
US7934063B2 (en) * 2007-03-29 2011-04-26 International Business Machines Corporation Invoking externally assisted calls from an isolated environment
US20090307610A1 (en) * 2008-06-10 2009-12-10 Melonie Elizabeth Ryan Method for a plurality of users to be simultaneously matched to interact one on one in a live controlled environment
US8495403B2 (en) 2008-12-31 2013-07-23 Intel Corporation Platform and processor power management
SG166014A1 (en) * 2009-04-14 2010-11-29 Electron Database Corp Pte Ltd Server architecture for multi-core systems
WO2012019617A1 (de) * 2010-08-09 2012-02-16 Siemens Aktiengesellschaft Verfahren und vorrichtung zum synchronisieren von ereignissen autarker systeme
CN102857383A (zh) * 2011-06-28 2013-01-02 鸿富锦精密工业(深圳)有限公司 同步测试控制方法及系统
JP5819184B2 (ja) * 2011-12-28 2015-11-18 富士通株式会社 情報処理装置及び情報処理装置の制御方法
KR101920278B1 (ko) 2012-06-08 2019-02-08 삼성전자주식회사 디스플레이 장치, 디스플레이 동기화 장치, 디스플레이 동기화 시스템 및 디스플레이 장치의 동기화 방법,
US9706508B2 (en) * 2013-04-05 2017-07-11 Honeywell International Inc. Integrated avionics systems and methods

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE4101623A1 (de) * 1990-01-23 1991-07-25 Hitachi Ltd Informationsverarbeitungssystem

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4099241A (en) * 1973-10-30 1978-07-04 Telefonaktiebolaget L M Ericsson Apparatus for facilitating a cooperation between an executive computer and a reserve computer
US4584643A (en) * 1983-08-31 1986-04-22 International Business Machines Corporation Decentralized synchronization of clocks
US5041966A (en) * 1987-10-06 1991-08-20 Nec Corporation Partially distributed method for clock synchronization
JPH0640324B2 (ja) * 1989-10-26 1994-05-25 インターナショナル・ビジネス・マシーンズ・コーポレーション マルチプロセッサ・システムおよびそのプロセス同期方法
ATE127598T1 (de) * 1990-06-01 1995-09-15 Bell Telephone Mfg Verfahren zum modifizieren eines fehlertoleranten datenverarbeitungssystems.
EP0543821B1 (de) * 1990-08-14 1995-02-22 Siemens Aktiengesellschaft Einrichtung zur funktionsüberwachung externer synchronisations-baugruppen in einem mehrrechnersystem
DE59102665D1 (de) * 1990-08-14 1994-09-29 Siemens Ag Einrichtung zur interruptverteilung in einem mehrrechnersystem.
GB2271251B (en) * 1992-10-01 1996-08-14 Digital Equipment Int Timer synchronisation system
US5428645A (en) * 1992-11-03 1995-06-27 International Business Machines Corporation Anonymous time synchronization method
US5689688A (en) * 1993-11-16 1997-11-18 International Business Machines Corporation Probabilistic anonymous clock synchronization method and apparatus for synchronizing a local time scale with a reference time scale
US5727154A (en) * 1995-04-28 1998-03-10 Fry; Shawn C. Program synchronization on first and second computers by determining whether information transmitted by first computer is an acceptable or unacceptable input to second computer program
US5761439A (en) * 1995-09-25 1998-06-02 Intel Corporation Method and apparatus for synchronizing communications between networked computers
US5887143A (en) * 1995-10-26 1999-03-23 Hitachi, Ltd. Apparatus and method for synchronizing execution of programs in a distributed real-time computing system

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE4101623A1 (de) * 1990-01-23 1991-07-25 Hitachi Ltd Informationsverarbeitungssystem

Also Published As

Publication number Publication date
CN1217798A (zh) 1999-05-26
EP0898744B1 (de) 1999-11-17
ES2140241T3 (es) 2000-02-16
DE19620622A1 (de) 1997-11-27
US6308223B1 (en) 2001-10-23
EP0898744A1 (de) 1999-03-03
DE59700733D1 (de) 1999-12-23
JP2000510976A (ja) 2000-08-22
KR20000015819A (ko) 2000-03-15
ATE186790T1 (de) 1999-12-15

Similar Documents

Publication Publication Date Title
WO1997044731A1 (de) Verfahren zur synchronisation von programmen auf unterschiedlichen computern eines verbundes
EP2657797B1 (de) Verfahren zum Betreiben eines redundanten Automatisierungssystems
DE19832060C2 (de) Doppelbare Prozessoreinrichtung
DE3486116T2 (de) Taktsynchronisation in einem verteilten Rechnernetz.
DE60220418T2 (de) Verfahren und Anbieter zur Systemsynchronisation
DE19539519A1 (de) Antriebssteuerbefehlseinheit, Synchronsteuersystem für eine Vielzahl von Antriebssteuerbefehlseinheiten, und Synchronsteuerverfahren für die Einheiten
DE112011104471T5 (de) Verfahren zur Failover-Verwaltung von virtuellen Maschinen und System zum Unterstützen desselben
DE4101623A1 (de) Informationsverarbeitungssystem
EP0543821B1 (de) Einrichtung zur funktionsüberwachung externer synchronisations-baugruppen in einem mehrrechnersystem
EP2667269A1 (de) Verfahren zum Betreiben eines redundanten Automatisierungssystems
DE3235762A1 (de) Verfahren und vorrichtung zur synchronisation von datenverarbeitungsanlagen
DE10065117A1 (de) Verfahren und Kommunikationssystem zum Austausch von Daten zwischen mindestens zwei Teilnehmern über ein Bussystem
EP0720337A2 (de) Verfahren zur hochzuverlässigen und konsistenten Nachrichtenübertragung
DE10062995A1 (de) Unterbrecher-Steuereinrichtung
DE102015218898A1 (de) Verfahren zur redundanten Verarbeitung von Daten
EP2520989B1 (de) Verfahren zum Betrieb eines hochverfügbaren Systems mit funktionaler Sicherheit sowie ein hochverfügbares System mit funktionaler Sicherheit
EP2615511A1 (de) Verfahren zur synchronen Ausführung von Programmen in einem redundanten Automatisierungssystem
EP1526420B1 (de) Synchronisationsverfahren für ein hochverfügbares Automatisierungssystem
WO2017220305A1 (de) Verfahren zum synchronisierten betrieb von mehrkernprozessoren
DE2838887C2 (de) Datenverarbeitungsanlage mit einer Schaltung für Unterbrechungsanforderungen zur Übernahme des gemeinsamen Busses
WO2002071223A1 (de) Fehlertolerante rechneranordnung und verfahren zum betrieb einer derartigen anordnung
EP1287435B1 (de) Vorrichtung und verfahren zur synchronisation eines systems von gekoppelten datenverarbeitungsanlagen
DE19801992C2 (de) Verfahren zur Verbesserung der Systemverfügbarkeit nach dem Ausfall von Prozessoren einer Prozessorplattform
DE10319903B4 (de) Eigensichere Rechneranordnung
EP1426862B1 (de) Synchronisation der Datenverarbeitung in redundanten Datenverarbeitungseinheiten eines Datenverarbeitungssystems

Legal Events

Date Code Title Description
WWE Wipo information: entry into national phase

Ref document number: 97194435.0

Country of ref document: CN

AK Designated states

Kind code of ref document: A1

Designated state(s): CN JP KR SG US

AL Designated countries for regional patents

Kind code of ref document: A1

Designated state(s): AT BE CH DE DK ES FI FR GB GR IE IT LU MC NL PT SE

DFPE Request for preliminary examination filed prior to expiration of 19th month from priority date (pct application filed before 20040101)
121 Ep: the epo has been informed by wipo that ep was designated in this application
WWE Wipo information: entry into national phase

Ref document number: 1997926963

Country of ref document: EP

WWE Wipo information: entry into national phase

Ref document number: 1019980709369

Country of ref document: KR

WWE Wipo information: entry into national phase

Ref document number: 09197509

Country of ref document: US

WWP Wipo information: published in national office

Ref document number: 1997926963

Country of ref document: EP

WWG Wipo information: grant in national office

Ref document number: 1997926963

Country of ref document: EP

WWP Wipo information: published in national office

Ref document number: 1019980709369

Country of ref document: KR

WWW Wipo information: withdrawn in national office

Ref document number: 1019980709369

Country of ref document: KR