EP2801030A1 - Verfahren und apparat zur bildung von software fault-containment units (swfcus) in einem verteilten echtzeitsystem - Google Patents
Verfahren und apparat zur bildung von software fault-containment units (swfcus) in einem verteilten echtzeitsystemInfo
- Publication number
- EP2801030A1 EP2801030A1 EP13716172.5A EP13716172A EP2801030A1 EP 2801030 A1 EP2801030 A1 EP 2801030A1 EP 13716172 A EP13716172 A EP 13716172A EP 2801030 A1 EP2801030 A1 EP 2801030A1
- Authority
- EP
- European Patent Office
- Prior art keywords
- encapsulated
- communication
- time
- communication controller
- swfcu
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/0703—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
- G06F11/0793—Remedial or corrective actions
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/004—Error avoidance
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/0703—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
- G06F11/0706—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
- G06F11/0709—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a distributed system consisting of a plurality of standalone computer nodes, e.g. clusters, client-server systems
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/0703—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
- G06F11/0706—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
- G06F11/0712—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a virtual computing platform, e.g. logically partitioned systems
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/0703—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
- G06F11/0706—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
- G06F11/0736—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in functional embedded systems, i.e. in a data processing system designed as a combination of hardware and software dedicated to performing a certain function
- G06F11/0739—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in functional embedded systems, i.e. in a data processing system designed as a combination of hardware and software dedicated to performing a certain function in a data processing system embedded in automotive or aircraft systems
Definitions
- the invention relates to a method for limiting the effects of software errors in a distributed real-time system in which multiple distributed application systems are executed simultaneously.
- the invention relates to a communication controller for a physical computer node for carrying out such a method.
- the invention relates to a communication controller for a personal computer for carrying out such a method.
- the present invention is in the field of computer technology. It describes an innovative method and the supporting hardware that can be formed in a distributed real-time computer software fault containment unit (SWFCU) to isolate the consequences of occurring software errors on clearly demarcated areas.
- SWFCU distributed real-time computer software fault containment unit
- each application system forms an encapsulated software fault containment unit (SWFCU), wherein a SWFCU comprises the software of a distributed application system that is based on one or more virtual computer nodes and one or more Dedicated computer node is executed, and communicate over one or more encapsulated virtual communication systems, wherein a communication system of communication controllers, switching units and physical connections, exchange messages, and the immediate effects of software error of a SWFCU remain limited to the SWFCU.
- SWFCU software fault containment unit
- a physical computer node is a computer with CPU, memory and communication interface, eg a personal computer.
- a shared computer node is a physical computer node on which several application systems are implemented, for example a personal computer on which a plurality of virtual machines are installed by means of a hypervisor or a corresponding partitioned operating system, as defined by the ARINC 653 standard [6].
- the hypervisor encapsulates the virtual machines spatially and temporally.
- a virtual compute node is one of the virtual machines of a shared compute node, including the associated communication controller, which decapsulates the messages of the virtual machines.
- a dedicated compute node is a physical compute node (including the communication controller) on which only a single application system is implemented.
- a physical communication system enables the message transport between the communication controllers of the physical computer nodes.
- a physical communication system consists of the communication controllers installed in the computers, the physical lines and the switching units.
- partitions ie virtual communication systems, can be set up by means of time control.
- a partition is active when sending messages. If several partitions are active within a given time interval, the physical communication system controls which messages of which partitions are sent on the physical lines at what times.
- a partition is encapsulated if the temporal guarantees regarding the communication behavior of one partition can not be influenced by the behavior of the other simultaneously active partitions.
- Encapsulated partitions are present when the physical communication system is implemented as a timed communication system. Since the periodic time slots for the transmission of the data and thus the bandwidths are allocated a priori to the individual subscribers in a time-controlled communication system, a mutual temporal influence on the partitions set up on a physical communication system is excluded.
- Messages are assigned to predefined virtual links, where Virtual link ⁇ identifier> is the name of the virtual link.
- Virtual links have exactly one predefined station and one predefined group of receivers.
- Messages can either be time-triggered, rate-constrained, or transmitted according to the best-effort principle.
- Time-triggered means that the messages are sent at predefined times using a synchronized time base.
- Rate-constrained means that a predefined minimum distance is maintained between two messages of a virtual link. Best effort means that the transmission of messages is not guaranteed [4].
- messages can be sent from one or more virtual links. According to the way the messages are communicated, we speak of time-triggered partition, rate-constrained partition, or best-effort partition.
- partitions are possible that send messages according to different principles; such partitions are called mixed partitions.
- an identified communication channel in the communication system is named as follows: Virtual link ⁇ identifier>, where ⁇ identifier> specifies the name of the virtual link. In one partition several virtual links can be active at the same time.
- a physical communication system that is implemented as a time-controlled communication system and in which one or more rate-constrained partitions and / or best-effort partitions and / or mixed partitions are active does not show each individual message the rate-constrained / best-effort / mixed Partition to a time slot, but only one time slot for the sum of all messages of the corresponding partition. This ensures that messages from different partitions can not be influenced over time.
- FCU fault-containment unit
- An FCU is understood to mean an encapsulated set of subsystems, with the immediate effects of an error cause in a subsystem of the entirety limited to the specified entity.
- An application system constitutes such an entity, which may consist of the following subsystems: (i) the software running on one or more virtual machine nodes, (ii) the software running on one or more dedicated computer nodes, and (iii) one or more virtual encapsulated ones Communication systems that perform message transport between the virtual and dedicated compute nodes of the application system.
- SWFCU Software Fault-Containment Unit
- the present invention discloses an innovative method of how software fault containment units (SWFCUs) distributed in a distributed real-time system can be formed. It is proposed that each of the application systems realized on a distributed real-time system forms its own SWFCU. This ensures that a software error in a SWFCU can not affect the correct function of the other SWFCUs.
- SWFCUs software fault containment units
- a virtual computer node to consist of a virtual machine (VM) managed by a hypervisor on a computer and an encapsulated partition of a communication controller exclusively assigned to the VM.
- VM virtual machine
- the communication controller converts the spatially encapsulated output data in the memory area into an associated time-encapsulated message and places the content of an incoming time-encapsulated message in a spatially encapsulated memory area associated with the message.
- virtual link identifiers are used to establish the association between time-encapsulated messages and associated encapsulated partitions of a communication controller.
- the switching unit supports multicast communication so that the messages exchanged between the SWFCUs can be monitored by an independent monitor component.
- the above-mentioned object is also realized with a communication controller for a physical computer node for carrying out a method as described above, wherein the communication controller encapsulates the output data spatially encapsulated in the memory area of a virtual machine into an associated time-encapsulated one Message converts and enters the data arriving in a timed message data in an associated spatially encapsulated memory area of a virtual machine.
- the above-mentioned object is realized with a communication controller for a personal computer for performing a method described above, wherein the communication controller supports the PCI interface standard and the incoming data in a timed message are stored in an associated spatially encapsulated memory area of a virtual machine.
- the above-mentioned object is also realized with a communication controller for a personal computer for performing a method as described above, wherein, alternatively or as a modification of the communication controller described above, the communication controller supports the TTEthernet standard.
- FIG. 1 shows a physical computer node on which three virtual computer nodes are realized
- FIG. 2 shows a SWFCU consisting of two virtual computer nodes, a virtual communication system and two dedicated computer nodes.
- FIG. 1 shows a physical computer node on which three virtual machines 101, 102, 103 are realized.
- a dedicated storage area 111 of the virtual machine 101 can be addressed by both the virtual machine 101 and the communication controller 120.
- This dedicated memory area 111 is the end point of a virtual communication channel realized on the physical communication channel 130.
- On the physical communication channel 130 several time-encapsulated virtual communication channels can be set up by time control.
- the communication controller 120 maps the spatially encapsulated data lying in the memory area 111 into a temporally assigned encapsulated message (and vice versa). versa).
- the communication controller 120 provides the three encapsulated partitions 111, 112, 113, with one partition each being exclusively associated with one of the three hypervisor-managed virtual machines (VMs) 101, 102, 103.
- VMs hypervisor-managed virtual machines
- the storage areas 111, 112, 113 associated with the virtual machines 101, 102, 103 form the endpoints of these virtual communication systems.
- ZSW certified system software
- the methodology of building hypervisor virtual machines has already been disclosed in [1]. In the meantime, there are methods that make it possible to formally prove the correctness of the software of a hypervisor [2].
- the interface of the communication controller 120 to the CPU and / or memory of the physical computer node may be designed according to the PCI standard [3].
- the interface of the communication controller 120 to the timed communication system 130 may be designed according to the TTEthernet standard [5].
- SWFCU software fault-containment unit
- This selected SWFCU comprises the virtual machine 211, the communication controller 213 and the shared memory 212, the communication channel 251 to the switching unit 250, the virtual machine 221, the communication controller 223 and the shared memory 222 therebetween, the communication channel 252 to the switching unit 250, and the dedicated computer node 230 with the sensor 215 and the dedicated computer node 233 with the actuator 216 including the corresponding connections 256 and 253 to the switching unit 250.
- the two hypervisors in the physical computer nodes 210 and 220, the communication controllers 213 and 223 and the communication protocol in the Switching unit 250 prevents a software error outside of this SWFCU from affecting the operation of that SWFCU can.
- the TTEthernet protocol [5] can be used to encapsulate the communication of this SWFCU.
- This protocol supports deterministic timed communication, as well as rate-constrained communication and best effort event-driven communication.
- another protocol that time-caps the communication channels may also be used in the switching unit 250.
- the communication between different SWFCUs realized on a distributed real-time system is to be done via messages, whereby it is advantageous if these messages can be observed by an independent monitor. This can be achieved if the switching unit 250 supports multicast communication.
- PCI Peripheral Component Interconnect
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Quality & Reliability (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Computer Hardware Design (AREA)
- Hardware Redundancy (AREA)
- Computer And Data Communications (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
Die Erfindung betrifft ein Verfahren zur Eingrenzung der Auswirkungen von Softwarefehlern in einem verteilten Echtzeitsystem, in dem mehrere verteilte Anwendungssysteme gleichzeitig exekutiert werden, wobei jedes Anwendungssystem eine abgekapselte Software-Fault-Containment-Unit (SWFCU) bildet, wobei eine SWFCU die Software eines verteilten Anwendungssystems umfasst, die auf einem oder mehreren virtuellen Rechnerknoten und einem oder mehreren dedizierten Rechnerknoten exekutiert wird, und die über einen oder mehrere abgekapselte virtuelle Kommunikationssysteme, wobei ein Kommunikationssystem aus Kommunikationskontrollern, Vermittlungseinheiten und physikalischen Verbindungen besteht, Nachrichten austauschen, und wobei die unmittelbaren Auswirkungen eines Softwarefehler einer SWFCU auf die SWFCU beschränkt bleiben.
Description
VERFAHREN UND APPARAT ZUR BILDUNG VON SOFTWARE FAULT-CONTAINMENT UNITS (SWFCU S) IN EINEM VERTEILTEN ECHTZEITSYSTEM
Die Erfindung betrifft ein Verfahren zur Eingrenzung der Auswirkungen von Softwarefehlern in einem verteilten Echtzeitsystem, in dem mehrere verteilte Anwendungssysteme gleichzeitig exekutiert werden.
Weiters betrifft die Erfindung einen Kommunikationskontroller für einen physikalischen Rechnerknoten zum Durchführen eines solchen Verfahrens.
Außerdem betrifft die Erfindung einen Kommunikationskontroller für einen Personal Computer zum Durchführen eines solchen Verfahrens.
Die vorliegende Erfindung liegt im Bereich der Computertechnik. Sie beschreibt ein innovatives Verfahren und die unterstützende Hardware, wie in einem verteilten Echtzeitcomputersystem Software Fault Containment Units (SWFCU) gebildet werden können, um die Folgen von auftretenden Softwarefehlern auf klar abgegrenzte Bereiche einzugrenzen.
In vielen Echtzeitanwendungen müssen Aufgaben von unterschiedlicher Kritikalität durchgeführt werden. In einer federated Computer Architektur wird jede dieser Aufgaben auf einem verteilten Hardwaresystem mit dedizierten Rechnerknoten und einem eigenen Kommunikationssystemen gelöst, um zu verhindern, dass Fehler von einem System einer unteren Kritikalitätsklasse ein System einer höheren Kritikalitätsklasse beeinflussen können. Dieser Lösungsansatz führt zu einer Vielzahl von Rechnern, einem hohen Verkabelungsaufwand für die Kommunikation und damit zu hohen Kosten.
Die aufgrund der höheren Integrationsdichte zunehmende Leistungssteigerung der Rechnerhardware ermöglicht es — aus der Sicht der Performanz — , viele Anwendungssysteme unterschiedlicher Kritikalität auf einem einzigen leistungsfähigen verteilten Computersystem zu integrieren. Dies ist jedoch nur machbar, wenn durch die Systemarchitektur und die zertifizierte Systemsoftware die Anwendungssoftware eines verteilten Anwendungssystems so abgekapselt werden kann, dass gewährleistet ist, dass ein beliebiger Softwarefehler in einem
Anwendungssystem die Funktionalität eines anderen Anwendungssystems weder im Zeitbereich noch im Wertebereich beeinflussen kann.
Es ist eine Aufgabe der Erfindung, ein neues Verfahren offenzulegen, wie eine räumliche und zeitliche Abkapselung eines verteilten Anwendungssystems innerhalb eines verteilten Computersystems realisiert werden kann, sodass auf einem einzigen verteilten Computersystem mehrere verteilte Anwendungssysteme von unterschiedlicher Kritikalität integriert werden können.
Diese Aufgabe wird mit einem eingangs erwähnten Verfahren dadurch gelöst, dass erfindungsgemäß jedes Anwendungssystem eine abgekapselte Software-Fault-Containment-Unit (SWFCU) bildet, wobei eine SWFCU die Software eines verteilten Anwendungssystems umfasst, die auf einem oder mehreren virtuellen Rechnerknoten und einem oder mehreren dedizierten Rechnerknoten exekutiert wird, und die über einen oder mehrere abgekapselte virtuelle Kommunikationssysteme, wobei ein Kommunikationssystem aus Kommunikationskontrollern, Vermittlungseinheiten und physikalischen Verbindungen besteht, Nachrichten austauschen, und wobei die unmittelbaren Auswirkungen eines Softwarefehler einer SWFCU auf die SWFCU beschränkt bleiben.
Wenn mehrere Anwendungssysteme auf einer verteilten Computerarchitektur realisiert werden, so ist es zweckmäßig, zwischen folgenden Arten von Rechnerknoten zu unterscheiden: Ein physikalischer Rechnerknoten ist ein Computer mit CPU, Speicher und Kommunikationsinterface, z.B. ein Personal Computer. Ein shared Rechnerknoten ist ein physikalischer Rechner knoten, auf dem mehrere Anwendungssysteme realisiert sind, z.B. ein Personal Computer, auf dem mittels eines Hypervisors oder eines entsprechenden partitionierten Betriebssystems, wie z.B. vom ARINC 653 Standard definiert [6], mehrere virtuelle Maschinen installiert sind. Der Hypervisor kapselt die virtuellen Maschinen räumlich und zeitlich voneinander ab. Ein virtueller Rechnerknoten ist eine der virtuellen Maschinen eines shared Rechnerknotens einschließlich des dazugehörigen Kommunikationskontrollers, der die Nachrichten der virtuellen Maschinen abkapselt. Ein dedizierter Rechnerknoten ist ein physikalischer Rechnerknoten (einschließlich des Kommunikationskontrollers), auf dem nur ein einziges Anwendungssystem realisiert ist.
Ein physikalisches Kommunikationssystem ermöglicht den Nachrichtentransport zwischen den Kommunikationskontrollern der physikalischen Rechnerknoten. Ein physikalisches Kommunikationssystem besteht aus den in den Rechnern installierten Kommunikationskontrollern, den physikalischen Leitungen und den Vermittlungseinheiten. Auf einem physikalischen Kommunikationssystem können mittels Zeitsteuerung eine Anzahl von Partitions, d.s. virtuelle Kommunikationssysteme, eingerichtet werden. Eine Partition ist aktiv, wenn sie Nachrichten versendet. Wenn innerhalb eines gegebenen Zeitintervalls mehrere Partitions aktiv sind, so regelt das physikalische Kommunikationssystem welche Nachrichten welcher Partitions auf den physikalischen Leitungen zu welchen Zeitpunkten versendet werden.
Eine Partition ist abgekapselt, wenn die zeitlichen Garantien in Bezug auf das Kommunikationsverhalten einer Partition von dem Verhalten der anderen gleichzeitig aktiven Partitions nicht beeinflusst werden kann. Abgekapselte Partitions sind vorhanden, wenn das physikalisches Kommunikationssystem als zeitgesteuertes Kommunikationssystem realisiert ist. Da in einem zeitgesteuerten Kommunikationssystem die periodischen Zeitschlitze zur Übertragung der Daten und damit die Bandbreiten a priori den einzelnen Teilnehmern zugeordnet werden, ist eine wechselseitige zeitliche Beeinflussung der auf einem physikalischen Kommunikationssystem eingerichteten Partitions ausgeschlossen.
Nachrichten werden vordefinierten so genannten Virtual links zugeordnet, wobei Virtual link <identifier> den Namen des Virtual links angibt. Virtual links haben genau einen vordefinierten Sender und eine vordefinierte Gruppe an Empfängern. Nachrichten können entweder time-triggered, rate-constrained, oder nach dem best-effort Prinzip übertragen werden. Time- triggered bedeutet, dass die Nachrichten zu vordefinierten Zeitpunkten anhand einer synchronisierten Zeitbasis versendet werden. Rate-constrained bedeutet, dass zwischen zwei Nachrichten eines Virtual links ein vordefinierter Mindestabstand eingehalten wird. Best- effort bedeutet, dass die Übertragung von Nachrichten nicht garantiert wird [4].
In einer Partition können Nachrichten von einem oder mehreren Virtual links gesendet werden. Entsprechend der Art der Kommunikation der Nachrichten sprechen wir von time- triggered Partition, rate-constrained Partition, oder best-effort Partition. Außerdem sind Partitions möglich, die Nachrichten nach unterschiedlichen Prinzipien verschicken; solche Partitions werden mixed Partitions genannt. Im folgenden wird ein identifizierter Kommunikationskanal im Kommunikationssystem wie folgt benannt: Virtual link <identifier>, wobei
<identifier> den Namen des Virtual links angibt. In einer Partition können mehrere Virtual links gleichzeitig aktiv sein.
Ein physikalisches Kommunikationssystem, das als zeitgesteuertes Kommunikationssystem realisiert ist und in dem eine oder mehrere rate-constrained Partitions und/ oder best-effort Partitions und/ oder mixed Partitions aktiv sind, weist nicht jeder einzelnen Nachricht der rate-constrained/best-effort /mixed Partition einen Zeitschlitz zu, sondern nur einen Zeitschlitz für die Summe aller Nachrichten der entsprechenden Partition. Damit wird gewährleistet dass sich Nachrichten unterschiedlicher Partitions zeitlich nicht beeinflussen können.
Im Bereich der Computerzuverlässigkeit hat der Begriff einer Fault-Containment Unit (FCU) eine zentrale Bedeutung [4, S. 136] . Unter einer FCU wird eine abgekapselte Gesamtheit von Subsystemen verstanden, wobei die unmittelbaren Auswirkungen einer Fehlerursache in einem Subsystem der Gesamtheit auf die spezifizierte Gesamtheit eingegrenzt sind. Ein Anwendungssystem bildet eine solche Gesamtheit, die aus folgenden Subsystemen bestehen kann: (i) der Software die auf einem oder mehreren virtuelle Rechnerknoten abläuft, (ii) der Software die auf einem oder mehreren dedizierten Rechnerknoten abläuft und (iii) ein oder mehrere abgekapselte virtuelle Kommunikationssysteme, die den Nachrichtentransport zwischen den virtuellen und dedizierten Rechnerknoten des Anwendungssystems vornehmen. Wir bezeichnen eine abgekapselte Gesamtheit der Software eines verteilten Anwendungssystems, die auf einem oder mehreren virtuellen Rechnerknoten und einem oder mehreren dedizierten Rechnerknoten exekutiert wird, und wo die unmittelbaren Auswirkungen eines Softwarefehlers dieser Gesamtheit abgekapselt sind eine Software Fault-Containment Unit (SWFCU). Die unmittelbaren Folgen eines Fehler einer SWFCU sind somit auf diese SWFCU eingegrenzt und können eine andere im verteilten Echtzeitsystem realisierte SWFCU weder im Wertebereich noch im Zeitbereich beeinflussen. Wenn in einem integrierten verteilten Echtzeitsystem jedes Anwendungssystem eine eigene verteilte SWFCU bildet, so kann die wechselseitige Beeinflussung der Anwendungssysteme durch Softwarefehler in den Anwendungssystemen ausgeschlossen werden.
Die vorliegende Erfindung legt ein innovatives Verfahren offen, wie in einem verteilten Echtzeitsystem verteilte Software-Fault-Containment Units (SWFCUs) gebildet werden können. Es wird vorgeschlagen, dass jedes der auf einem verteilten Echtzeitsystem realisierten Anwendungssysteme eine eigene SWFCU bildet. Somit wird gewährleistet, dass ein Soft-
warefehler in einer SWFCU die richtige Funktion der anderen SWFCUs nicht beeinflussen kann.
Weitere vorteilhafte Ausgestaltungen des erfindungsgemäßen Verfahrens sind in den Unteransprüchen beschrieben. Beispielsweise ist es von Vorteil, wenn ein virtueller Rechnerknoten aus einer auf einem Computer durch einen Hypervisor verwalteten Virtual Machine (VM) und einer der VM exklusiv zugeordneten abgekapselten Partition eines Kommunikationskontrollers besteht.
Weiters kann es von Vorteil sein, wenn der Kommunikationskontroller die im Speicherbereich räumlich abgekapselten Ausgangsdaten in eine zugeordnete zeitlich abgekapselte Nachricht umsetzt und den Inhalt einer eintreffenden zeitlich abgekapselten Nachricht in einen der Nachricht zugeordneten räumlich abgekapselten Speicherbereich legt.
Außerdem kann vorgesehen sein, dass Virtual link Identifier genutzt werden, um die Zuordnung zwischen zeitlich abgekapselten Nachrichten und zugeordneten abgekapselten Partitions eines Kommunikationskontrollers herzustellen.
Zweckmäßig ist es, wenn in einem zeitgesteuerten Kommunikationssystem ein Zeitschlitz für die Summe aller Nachrichten (time-triggered, rate constrainted, best effort) einer mixed Partition vorgesehen wird.
Weiters ist es vorteilhaft, wenn unterschiedliche SWFCUs ausschließlich über Nachrichten kommunizieren.
Dabei ist es zweckmäßig, wenn die Vermittlungseinheit eine Multicast Kommunikation unterstützt, so dass die Nachrichten, die zwischen den SWFCUs ausgetauscht werden, von einer unabhängigen Monitorkomponente beobachtet werden können.
Die oben erwähnte Aufgabe wird auch mit einem Kommunikationskontroller für einen physikalischen Rechnerknoten zum Durchführen eines oben beschriebenen Verfahrens realisiert, wobei der Kommunikationskontroller die im Speicherbereich einer virtuellen Maschine räumlich abgekapselten Ausgangsdaten in eine zugeordnete zeitlich abgekapselte
Nachricht umsetzt und die in einer zeitgesteuerten Nachricht eintreffenden Daten in einen zugeordneten räumlich abgekapselten Speicherbereich einer virtuellen Maschine ablegt.
Ebenso wird die oben erwähnte Aufgabe mit einem Kommunikationskontroller für einen Personal Computer zum Durchführen eines oben beschriebenen Verfahrens realisiert, wobei der Kommunikationskontroller den PCI Schnittstellenstandard unterstützt und die in einer zeitgesteuerten Nachricht eintreffenden Daten in einem zugeordneten räumlich abgekapselten Speicherbereich einer virtuellen Maschine abgelegt werden.
Die oben erwähnte Aufgabe wird auch mit einem Kommunikationskontroller für einen Personal Computer zum Durchführen eines oben beschriebenen Verfahrens realisiert, wobei alternativ oder als Fortbildung des oben beschriebenen Kommunikationskontrollers der Kommunikationskontroller den TTEthernet Standard unterstützt.
Die vorliegende Erfindung wird an Hand der folgenden Zeichnungen an einem Beispiel erklärt. Dabei zeigt
Fig. 1 einen physikalischen Rechnerknoten auf dem drei virtuelle Rechnerknoten realisiert sind, und
Fig. 2 ein SWFCU bestehend aus zwei virtuellen Rechnerknoten, einem virtuellen Kommunikationssystem und zwei dedizierten Rechnerknoten.
Das folgende konkrete Beispiel behandelt eine der vielen möglichen Realisierungen des erfindungsgemäßen Verfahrens.
In Fig. 1 ist ein physikalischer Rechnerknoten dargestellt, auf dem drei virtuelle Maschinen 101, 102, 103 realisiert sind. Ein dedizierter Speicherbereich 111 der virtuellen Maschine 101 kann sowohl von der virtuellen Maschine 101 wie auch von dem Kommunikationskontroller 120 angesprochen werden. Dieser dedizierte Speicherbereich 111 ist der Endpunkt eines virtuellen Kommunikationskanals, der auf dem physikalischen Kommunikationskanal 130 realisiert ist. Auf dem physikalischen Kommunikationskanal 130 können durch Zeitsteuerung mehrere zeitlich abgekapselte virtuelle Kommunikationskanäle eingerichtet werden. Der Kommunikationskontroller 120 bildet die räumlich abgekapselten Daten, die im Speicherbereich 111 liegen in eine zeitlich zugeordnete abgekapselte Nachricht ab (und umge-
kehrt). Der Kommunikationskontroller 120 stellt die drei abgekapselten Partitionen 111, 112, 113 zur Verfügung, wobei je eine Partition einer der drei durch einen Hypervisor verwalteten Virtual Machines (VM) 101, 102, 103 exklusiv zugeordnet ist.
Die Speicherbereiche 111, 112, 113, die den virtuellen Maschinen 101, 102, 103 zugeordnet sind, bilden die Endpunkte dieser virtuellen Kommunikationssysteme. Vor Systemstart werden mittels einer zertifizierten Systemsoftware (ZSW) die Parameter der virtuellen Maschinen 101, 102, 103 und des physikalischen Kommunikationskontrollers 120 so gesetzt, dass die Software einer virtuellen Maschine keine Zugriffsrechte auf die Speicherbereiche der anderen virtuellen Maschine erhält, und dass zeitgesteuerten Nachrichten, die auf dem physikalischen Kommunikationskanal 130 transportiert werden, den entsprechenden Speicherbereichen 111, 112, 113 der virtuellen Maschinen 101, 102, 103 zugeordnet werden. Die Methodik des Aufbaus von virtuellen Maschinen durch Hypervisor wurde bereits in [1] offengelegt. In der Zwischenzeit gibt es Methoden die es ermöglichen, die Korrektheit der Software eines Hypervisors formal nachzuweisen [2]. Die Schnittstelle des Kommunikationskontrollers 120 zur CPU und/ oder Speichers des physikalischen Rechnerknoten kann entsprechend dem PCI Standard [3] ausgelegt sein. Die Schnittstelle des Kommunikationskontrollers 120 zum zeitgesteuerten Kommunikationssystem 130 kann entsprechend dem TTEthernet Standard [5] ausgelegt sein.
Fig. 2 zeigt ein verteiltes Echtzeitsystem bestehend aus zwei physikalischen Knotenrechnern 210, 220, einer Vermittlungseinheit 250 und vier dedizierten Knotenrechner 230, 231, 232, 233. In diesem Echtzeitsystem gibt es mehrere Software Fault-Containment Units (SWFCUs). Die stark umrandeten Teile von Fig. 1 bilden eine dieser SWFCUs. Diese ausgewählte SWFCU umfasst die virtuelle Maschine 211, den Kommunikationskontroller 213 und den dazwischen liegenden gemeinsamen Speicher 212, den Kommunikationskanal 251 zur Vermittlungseinheit 250, die virtuellen Maschine 221, den Kommunikationskontroller 223 und den dazwischen liegenden gemeinsamen Speicher 222, den Kommunikationskanal 252 zur Vermittlungseinheit 250, sowie den dedizierten Rechnerknoten 230 mit dem Sensor 215 und den dedizierten Rechnerknoten 233 mit dem Aktuator 216 einschließlich die entsprechenden Verbindungen 256 und 253 zur Vermittlungseinheit 250. Die beiden Hypervisor in den physikalischen Rechnerknoten 210 und 220, die Kommunikationskontroller 213 und 223 sowie das Kommunikationsprotokoll in der Vermittlungseinheit 250 verhindern, dass ein Softwarefehler außerhalb dieser SWFCU die Funktionsweise dieser SWFCU beeinflussen
kann. In der Vermittlungseinheit 250 kann das TTEthernet Protokoll [5] zur Abkapselung der Kommunikation dieser SWFCU eingesetzt werden. Dieses Protokoll unterstützt eine deterministische zeitgesteuerte Kommunikation, sowie eine rate-constrained Kommunikation und eine best effort ereignisgesteuerte Kommunikation. Alternativ kann auch ein anderes Protokoll, das die Kommunikationskanäle zeitlich abkapselt, in der Vermittlungseinheit 250 eingesetzt werden.
Die Kommunikation zwischen unterschiedlichen SWFCUs die auf einem verteilten Echtzeitsystem realisiert sind, soll über Nachrichten erfolgen, wobei es von Vorteil ist, wenn diese Nachrichten von einem unabhängigen Monitor beobachtet werden können. Dies lässt sich erreichen, wenn die Vermittlungseinheit 250 eine Multicast Kommunikation unterstützt.
Zitierte Literatur:
[1] US Pat. 4,949,254. Shorter. Method to manage concurrent execution of a distributed application program by a host Computer and a large plurality of intelligent work stations on an SNA network. Granted August 14, 1990
[2] Klein, G. et al..(2009). Formal Verification of an OS Kernel. Proc. Of the ACM SIGOPS 22nd Symposium on Operating System Principles. ACM Press.
[3] Peripheral Component Interconnect (PCI) Standard, Wikipedia. Accessed March 3, 2012.
[4] Kopetz, H. Real-Time Systems, Design Principles for Distributed Embedded Applications. Springer Verlag. 2011.
[5] SAE Standard von TTEthernet. URL: http:/ / standards.sae.org/ as6802
[6] ARINC 653P1-3 Avionics Application Software Standard Interface, Part 1, Required Services: https:/ /www.arinc.com/cf/store/catalog_detail.cfm?item_id=1487, 653P2-1 Avionics Application Software Standard Interface, Part 2 - Extended Services: https: / / www.arinc.com/ cf/ störe/ catalog_detail.cfm?item_id=1072
Claims
\. Verfahren zur Eingrenzung der Auswirkungen von Softwarefehlern in einem verteilten Echtzeitsystem, in dem mehrere verteilte Anwendungssysteme gleichzeitig exekutiert werden, dadurch gekennzeichnet, dass jedes Anwendungssystem eine abgekapselte Soft- ware-Fault-Containment-Unit (SWFCU) bildet, wobei eine SWFCU die Software eines verteilten Anwendungssystems umfasst, die auf einem oder mehreren virtuellen Rechnerknoten und einem oder mehreren dedizierten Rechnerknoten exekutiert wird, und die über einen oder mehrere abgekapselte virtuelle Kommunikationssysteme, wobei ein Kommunikationssystem aus Kommunikationskontrollern, Vermittlungseinheiten und physikalischen Verbindungen besteht, Nachrichten austauschen, und wobei die unmittelbaren Auswirkungen eines Softwarefehler einer SWFCU auf die SWFCU beschränkt bleiben.
2. Verfahren nach Anspruch 1, dadurch gekennzeichnet, dass ein virtueller Rechnerknoten aus einer auf einem Computer durch einen Hypervisor verwalteten Virtual Machine (VM) und einer der VM exklusiv zugeordneten abgekapselten Partition eines Kommunikationskontrollers besteht.
3. Verfahren nach Anspruch 1 oder 2, dadurch gekennzeichnet, dass der Kommunikationskontroller (120) die im Speicherbereich (111) räumlich abgekapselten Ausgangsdaten in eine zugeordnete zeitlich abgekapselte Nachricht umsetzt und den Inhalt einer eintreffenden zeitlich abgekapselten Nachricht in einen der Nachricht zugeordneten räumlich abgekapselten Speicherbereich legt.
4. Verfahren nach einem der Ansprüche 1 bis 3, dadurch gekennzeichnet, dass Virtual link Identifier genutzt werden, um die Zuordnung zwischen zeitlich abgekapselten Nachrichten und zugeordneten abgekapselten Partitions eines Kommunikationskontrollers herzustellen.
5. Verfahren nach einem der Ansprüche 1 bis 4, dadurch gekennzeichnet, dass in einem zeitgesteuerten Kommunikationssystem ein Zeitschlitz für die Summe aller Nachrichten (time-triggered, rate constrainted, best effort) einer mixed Partition vorgesehen wird.
6. Verfahren nach einem der Ansprüche 1 bis 5, dadurch gekennzeichnet, dass unterschiedliche SWFCUs ausschließlich über Nachrichten kommunizieren.
7. Verfahren nach Anspruch 6, dadurch gekennzeichnet, dass die Vermittlungseinheit (250) eine Multicast Kommunikation unterstützt, so dass die Nachrichten, die zwischen den SWFCUs ausgetauscht werden, von einer unabhängigen Monitorkomponente beobachtet werden können.
8. Kommunikationskontroller für einen physikalischen Rechnerknoten der einen oder mehrere der in den Ansprüchen 1 bis 7 angeführten Verfahrensschritte realisiert, dadurch gekennzeichnet, dass der Kommunikationskontroller die im Speicherbereich einer virtuellen Maschine räumlich abgekapselten Ausgangsdaten in eine zugeordnete zeitlich abgekapselte Nachricht umsetzt und die in einer zeitgesteuerten Nachricht eintreffenden Daten in einen zugeordneten räumlich abgekapselten Speicherbereich einer virtuellen Maschine ablegt.
9. Kommunikationskontroller für einen Personal Computer der einen oder mehrere der in den Ansprüchen 1 bis 7 angeführten Verfahrensschritte realisiert, dadurch gekennzeichnet, dass der Kommunikationskontroller den PCI Schnittstellenstandard unterstützt und die in einer zeitgesteuerten Nachricht eintreffenden Daten in einem zugeordneten räumlich abgekapselten Speicherbereich einer virtuellen Maschine abgelegt werden.
10. Kommunikationskontroller für einen Personal Computer der einen oder mehrere der in den Ansprüchen 1 bis 7 angeführten Verfahrensschritte realisiert, dadurch gekennzeichnet, dass der Kommunikationskontroller den TTEthernet Standard unterstützt.
11. Echtzeitsystem mit einem Kommunikationskontroller nach einem der Ansprüche 8 bis 10.
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| ATA342/2012A AT512665B1 (de) | 2012-03-20 | 2012-03-20 | Verfahren und Apparat zur Bildung von Software Fault Containment Units in einem verteilten Echtzeitsystem |
| PCT/AT2013/050068 WO2013138833A1 (de) | 2012-03-20 | 2013-03-19 | Verfahren und apparat zur bildung von software fault-containment units (swfcus) in einem verteilten echtzeitsystem |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| EP2801030A1 true EP2801030A1 (de) | 2014-11-12 |
Family
ID=48095449
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| EP13716172.5A Withdrawn EP2801030A1 (de) | 2012-03-20 | 2013-03-19 | Verfahren und apparat zur bildung von software fault-containment units (swfcus) in einem verteilten echtzeitsystem |
Country Status (6)
| Country | Link |
|---|---|
| US (1) | US20150039929A1 (de) |
| EP (1) | EP2801030A1 (de) |
| JP (1) | JP2015517140A (de) |
| CN (1) | CN104145248A (de) |
| AT (1) | AT512665B1 (de) |
| WO (1) | WO2013138833A1 (de) |
Families Citing this family (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| EP3189436B1 (de) * | 2014-09-05 | 2018-07-18 | FTS Computertechnik GmbH | Computersystem und verfahren für sicherheitskritische anwendungen |
| US10019292B2 (en) | 2015-12-02 | 2018-07-10 | Fts Computertechnik Gmbh | Method for executing a comprehensive real-time computer application by exchanging time-triggered messages among real-time software components |
| US10324797B2 (en) * | 2016-02-26 | 2019-06-18 | Tttech Auto Ag | Fault-tolerant system architecture for the control of a physical system, in particular a machine or a motor vehicle |
| US11687400B2 (en) * | 2018-12-12 | 2023-06-27 | Insitu Inc., A Subsidiary Of The Boeing Company | Method and system for controlling auxiliary systems of unmanned system |
| EP3816741B1 (de) * | 2019-10-31 | 2023-11-29 | TTTech Auto AG | Sicherheitsmonitor für erweiterte fahrerassistenzsysteme |
Family Cites Families (10)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP3268456B2 (ja) * | 1992-09-04 | 2002-03-25 | フォールト トレラント システムズ エフテーエス−コンピュータ テクニク ゲセムベーハー | 通信制御装置及び情報伝達方法 |
| US6075938A (en) * | 1997-06-10 | 2000-06-13 | The Board Of Trustees Of The Leland Stanford Junior University | Virtual machine monitors for scalable multiprocessors |
| AT408382B (de) * | 2000-03-02 | 2001-11-26 | Fts Computertechnik Gmbh | Rechnerknotenarchitektur mit dediziertem middleware computer |
| AT410490B (de) * | 2000-10-10 | 2003-05-26 | Fts Computertechnik Gmbh | Verfahren zur tolerierung von ''slightly-off- specification'' fehlern in einem verteilten fehlertoleranten echtzeitcomputersystem |
| US7134050B2 (en) * | 2003-08-15 | 2006-11-07 | Hewlett-Packard Development Company, L.P. | Method and system for containing software faults |
| WO2008124854A2 (de) * | 2007-04-11 | 2008-10-23 | Fts Computertechnik Gmbh | Kommunikationsverfahren und apparat zur effizienten und sicheren übertragung von tt-ethernet nachrichten |
| JP5381194B2 (ja) * | 2009-03-16 | 2014-01-08 | 富士通株式会社 | 通信プログラム、中継ノード、および通信方法 |
| CN102473121A (zh) * | 2009-07-09 | 2012-05-23 | Fts电脑技术有限公司 | 系统芯片的缺点检测 |
| US8589947B2 (en) * | 2010-05-11 | 2013-11-19 | The Trustees Of Columbia University In The City Of New York | Methods, systems, and media for application fault containment |
| US8908675B2 (en) * | 2012-01-13 | 2014-12-09 | Honeywell International Inc. | Virtual pairing for consistent data broadcast |
-
2012
- 2012-03-20 AT ATA342/2012A patent/AT512665B1/de not_active IP Right Cessation
-
2013
- 2013-03-19 EP EP13716172.5A patent/EP2801030A1/de not_active Withdrawn
- 2013-03-19 WO PCT/AT2013/050068 patent/WO2013138833A1/de not_active Ceased
- 2013-03-19 JP JP2015500711A patent/JP2015517140A/ja active Pending
- 2013-03-19 US US14/379,728 patent/US20150039929A1/en not_active Abandoned
- 2013-03-19 CN CN201380012025.7A patent/CN104145248A/zh active Pending
Non-Patent Citations (1)
| Title |
|---|
| OBERMAISSER R ET AL: "Virtual Networks in an Integrated Time-Triggered Architecture", OBJECT-ORIENTED REAL-TIME DEPENDABLE SYSTEMS, 2005. WORDS 2005. 10TH I EEE INTERNATIONAL WORKSHOP ON SEDONA, AZ, USA 02-04 FEB. 2005, PISCATAWAY, NJ, USA,IEEE, 2 February 2005 (2005-02-02), pages 241 - 253, XP010856895, ISBN: 978-0-7695-2347-7 * |
Also Published As
| Publication number | Publication date |
|---|---|
| WO2013138833A1 (de) | 2013-09-26 |
| US20150039929A1 (en) | 2015-02-05 |
| AT512665B1 (de) | 2013-12-15 |
| AT512665A1 (de) | 2013-10-15 |
| JP2015517140A (ja) | 2015-06-18 |
| CN104145248A (zh) | 2014-11-12 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| EP4176545B1 (de) | Verfahren und system zur bereitstellung von zeitkritischen diensten | |
| DE112013000506B4 (de) | Verwaltungsprotokoll für verteilte Strukturen | |
| DE112013003180T5 (de) | Verfahren, System und Gerät zum Verwalten von Server-Hardware-Resourcen in einer Cloud-Scheduling-Umgebung | |
| DE112012002404B4 (de) | Konfiguration und Management virtueller Netzwerke | |
| DE112011101705T5 (de) | Migrieren virtueller Maschinen zwischen vernetzten Servern nach Erkennung der Verschlechterung der Funktion der Netzwerkverbindung | |
| DE112011102443T5 (de) | Server-Verwaltung unter Verwendung eines Baseboard Management Controllers zum Aufbau eines Drahtlosnetzwerks | |
| AT512665B1 (de) | Verfahren und Apparat zur Bildung von Software Fault Containment Units in einem verteilten Echtzeitsystem | |
| EP3211533A1 (de) | Fehlertolerante systemarchitektur zur steuerung einer physikalischen anlage, insbesondere einer maschine oder eines kraftfahrzeugs | |
| WO2020249345A1 (de) | Verfahren zur bereitstellung von steuerungsanwendungen und konfigurationssteuerungseinrichtung | |
| EP3843332A1 (de) | Verfahren zur überwachung von datenverkehr in einem kommunikationsnetz und zugriffssteuerungssystem | |
| DE102016219854A1 (de) | Computersystem und Verfahren zum dynamischen Anpassen eines software-definierten Netzwerks | |
| DE112016005840T9 (de) | Drahtloses kommunikationsgerät, drahtloses kommunikationsverfahren und programm für drahtlose kommunikation | |
| DE102013209306A1 (de) | Bereitstellen von Echtzeit-Interrupts über Ethernet | |
| DE112014004208T5 (de) | Integrationsverfahren und -System | |
| DE112013002241B4 (de) | Bestimmen einer Netzwerkadresse für verwaltete Einheiten | |
| DE202015009265U1 (de) | Einheitliche api zur programmierung beider server und des fabric für die feinoptimieirung von netzwerken | |
| DE112022003383T5 (de) | Hierarchisches verbindungsnetzwerk auf ringgrundlage für symmetrische mehrprozessoren | |
| DE112008004245T5 (de) | Kommunikationsverwaltungsvorrichtung, Kommunikationsvorrichtung und Kommunikationsverfahren | |
| EP3167593B1 (de) | Vorrichtung, verfahren und computerprogrammprodukt zur sicheren datenkommunikation | |
| EP1399818A2 (de) | Verfahren und vorrichtung zur kommunikation in einem fehlertoleranten verteilten computersystem | |
| LU101163B1 (de) | Verfahren und Vorrichtungen für eine Lastzuweisung und Überwachung für eine zuzuweisende versorgungssicherheitskritische Ressource in einem Netzwerk | |
| CN109446254B (zh) | 一种高性能iec61850通讯代理的实现方法 | |
| DE102004055445A1 (de) | Verfahren und Systeme zur dynamischen Partitionsverwaltung von gemeinsamen Verbindungspartitionen | |
| EP3236637B1 (de) | Kommunikation über ein weitverkehrsnetz mittels eines applikationsspezifischen protokolls | |
| DE112023000500T5 (de) | Cloud-automatisierungsstandortdesign und verfahren |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| PUAI | Public reference made under article 153(3) epc to a published international application that has entered the european phase |
Free format text: ORIGINAL CODE: 0009012 |
|
| 17P | Request for examination filed |
Effective date: 20140806 |
|
| AK | Designated contracting states |
Kind code of ref document: A1 Designated state(s): AL AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HR HU IE IS IT LI LT LU LV MC MK MT NL NO PL PT RO RS SE SI SK SM TR |
|
| DAX | Request for extension of the european patent (deleted) | ||
| 17Q | First examination report despatched |
Effective date: 20170516 |
|
| RAP1 | Party data changed (applicant data changed or rights of an application transferred) |
Owner name: TTTECH COMPUTERTECHNIK AG |
|
| STAA | Information on the status of an ep patent application or granted ep patent |
Free format text: STATUS: THE APPLICATION IS DEEMED TO BE WITHDRAWN |
|
| 18D | Application deemed to be withdrawn |
Effective date: 20190815 |