DE102008003500B4 - Verfahren zur Verwaltung von Rechenprozessen in einem dezentralen Datennetz - Google Patents

Verfahren zur Verwaltung von Rechenprozessen in einem dezentralen Datennetz Download PDF

Info

Publication number
DE102008003500B4
DE102008003500B4 DE102008003500A DE102008003500A DE102008003500B4 DE 102008003500 B4 DE102008003500 B4 DE 102008003500B4 DE 102008003500 A DE102008003500 A DE 102008003500A DE 102008003500 A DE102008003500 A DE 102008003500A DE 102008003500 B4 DE102008003500 B4 DE 102008003500B4
Authority
DE
Germany
Prior art keywords
network
distributed
network node
data network
image
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
DE102008003500A
Other languages
English (en)
Other versions
DE102008003500A1 (de
Inventor
Sebastian Dippl
Christoph Gerdes
Gerd Dr. Völksen
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Atos IT Solutions and Services GmbH Germany
Original Assignee
Siemens AG
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 AG filed Critical Siemens AG
Priority to DE102008003500A priority Critical patent/DE102008003500B4/de
Priority to PCT/EP2008/068175 priority patent/WO2009087056A1/de
Priority to EP08870508A priority patent/EP2229627A1/de
Priority to US12/812,086 priority patent/US8495634B2/en
Publication of DE102008003500A1 publication Critical patent/DE102008003500A1/de
Application granted granted Critical
Publication of DE102008003500B4 publication Critical patent/DE102008003500B4/de
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/461Saving or restoring of program or task context

Abstract

Die Erfindung betrifft ein Verfahren zur Verwaltung von Rechenprozessen in einem dezentralen Datennetz umfassend eine Vielzahl von Netzknoten zur Ausführung der Rechenprozesse, wobei Ressourcen in dem Datennetz basierend auf einer Abbildungsvorschrift, insbesondere einer Hash-Funktion, verteilt werden. Darüber hinaus betrifft die Erfindung ein entsprechendes dezentrales Datennetz, insbesondere ein Peer-to-Peer-Netz. Das erfindungsgemäße Verfahren beruht auf der Idee, einen zu suspendierenden Rechenprozess auf eine Mehrzahl von Netzknoten in dem Datennetz zu verteilen. Dies erfolgt dadurch, dass das gespeicherte Prozessabbild des Rechenprozesses in Abschnitte zerlegt wird und die Abschnitte mit Hilfe der Abbildungsvorschrift auf die Netzknoten verteilt werden, wodurch ein verteiltes Prozessabbild erzeugt wird. Auf diese Weise wird ein verteilter Swap-Space geschaffen, so dass in dem dezentralen Datennetz auch Rechenprozesse auf Netzknoten ausgeführt werden können, deren Swap-Space alleine nicht für die Auslagerung des Prozesses ausreicht. Das erfindungsgemäße Verfahren eignet sich insbesondere zur Verwendung in Embedded Systems, bei denen die einzelnen Netzknoten technische Komponenten mit meist eingeschränkter Speicherkapazität darstellen. Das erfindungsgemäße Verfahren kann in einem Spannungsverteilsystem eingesetzt werden, wobei die einzelnen Netzknoten z.B. Schalteinheiten in dem Spannungsverteilsystem sind. Ebenso kann das erfindungsgemäße Verfahren in beliebigen ...

Description

  • Die Erfindung betrifft ein Verfahren zur Verwaltung von Rechenprozessen in einem dezentralen Datennetz umfassend eine Vielzahl von Netzknoten zur Ausführung der Rechenprozesse, wobei Ressourcen in dem Datennetz basierend auf einer Abbildungsvorschrift, insbesondere einer Hash-Funktion, verteilt werden. Darüber hinaus betrifft die Erfindung ein entsprechendes Datennetz.
  • Insbesondere in technischen Systemen, in denen über ein dezentrales Datennetz technische Geräte mit eingeschränktem Speicherbedarf vernetzt sind, besteht das Problem, dass die Ausführung von großen Rechenprozessen nicht möglich ist, da die Kapazität der einzelnen Arbeitsspeicher der technischen Geräte nicht zum Swappen der Prozesse ausreicht. Es besteht deshalb das Bedürfnis nach einer Lösung, bei der auch in dezentralen Netzen, welche Netzknoten mit geringer Speicherkapazität enthalten, mehrere und größere Rechenprozesse durchgeführt werden können.
  • Aus dem Stand der Technik sind zentralistische Lösungen zur Durchführung von Prozessen auf Servern bekannt, wobei als Swap-Space ein Speicher verwendet wird, der nicht auf dem Server liegt, auf dem der auszulagernde Prozess gerade ausgeführt wird.
  • Das Dokument US 6,782,389 B1 beschreibt ein Dateisystem, bei dem die Dateien über mehrere Dateiserver in einem Netzwerk verteilt sind.
  • In der Druckschrift Voras I. et al.: „Network distributed file system in user space”, 28th international Conference an Information Technology Interfaces, 2006, Seiten 669 bis 674, werden verschiedene Implementierungen von verteilten Dateisystemen beschrieben.
  • Aufgabe der Erfindung ist es, für ein dezentrales Datennetz ein Verfahren zur Verwaltung von Rechenprozessen zu schaffen, bei dem auch bei eingeschränktem Speicherplatz auf den einzelnen Netzknoten eine Ausführung von mehreren und insbesondere auch größeren Rechenprozessen ermöglicht wird.
  • Diese Aufgabe wird durch die unabhängigen Patentansprüche gelöst. Weiterbildungen der Erfindung sind in den abhängigen Ansprüchen definiert.
  • Das erfindungsgemäße Verfahren wird in einem dezentralen Datennetz bestehend aus einer Vielzahl von Netzknoten eingesetzt. Die Netzknoten weisen dabei jeweils einen RAM-Arbeitsspeicher auf, wobei in einem jeweiligen RAM-Arbeitsspeicher eines Netzknotens ein oder mehrere Rechenprozesse ausgeführt werden.
  • In solchen dezentralen Datennetzen werden üblicherweise Ressourcen mit einer Abbildungsvorschrift, vorzugsweise mit einer Hash-Funktion, auf die einzelnen Netzknoten verteilt. Hash-Funktionen sind hinlänglich aus dem Stand der Technik bekannt, ein Beispiel einer solchen Funktion ist SHA1. Mit einer Hash-Funktion wird insbesondere die Abbildung eines großen Datenraums auf einen komprimierten kleineren Datenraum mit fester Bitlänge erreicht. Vorzugsweise sind Hash-Funktionen ferner Einweg-Funktionen, d. h. aus dem aus einer Hash-Funktion generierten Hashwert kann nicht das ursprüngliche Datenelement abgeleitet werden, auf welches die Hash-Funktion angewendet wurde. Verschiedene Hash-Funktionen können noch weitere spezifische Eigenschaften aufweisen, insbesondere sind Hash-Funktionen vorzugsweise chaotisch, d. h. ähnliche Quellelemente der Funktion führen zu völlig unterschiedlichen Hashwerten, wodurch eine gleichmäßige Verteilung von Ressourcen in dem Datennetz erreicht wird. Die Erfindung ist jedoch nicht auf Hash-Funktionen beschränkt, und es können auch gegebenenfalls andere Arten von Funktionen zur Verteilung der Ressourcen verwendet werden, wobei diese Funktionen jedoch vorzugsweise ähnliche Eigenschaften wie Hash-Funktionen aufweisen sollten.
  • Gemäß dem Verfahren der Erfindung wird in einem Schritt d) ein auf einem Netzknoten ausgeführter und zu suspendierender Rechenprozesse angehalten und ein Prozessabbild zu dem angehaltenen Rechenprozess erzeugt wird. Das Prozessabbild, wel ches im Englischen üblicherweise als Image bezeichnet wird, stellt hierbei ein Speicherabbild des Prozesses in dem Zustand dar, zu dem der Prozess angehalten wurde. Dieses Image bzw. Prozessabbild wird dabei für jeden angehaltenen Rechenprozess in Abschnitte zerlegt (Schritt e)). Die Abschnitte werden schließlich in einem Schritt f) mit Hilfe der Abbildungsvorschrift, insbesondere der Hash- Funktion, auf die RAM-Arbeitsspeicher mehrerer der Netzknoten verteilt, so dass ein verteiltes Prozessabbild in dem Datennetz erzeugt wird.
  • Das erfindungsgemäße Verfahren wird dadurch realisiert, dass die verteilten Abschnitte in jeweiligen RAM-Arbeitsspeichern in den Netzknoten gespeichert werden.
  • Das erfindungsgemäße Verfahren verwendet somit die allgemein in dezentralen Datennetzen verwendete Abbildungsvorschrift zur Verteilung von Ressourcen auch zur Verteilung von Teilabschnitten eines angehaltenen Rechenprozesses. Folglich können in einfacher Weise mit vorhandenen Mechanismen Prozesse unter Verwendung von verteiltem Swap-Space geswapped werden, auch wenn der Speicherplatz eines einzelnen Netzknotens nicht zum Swappen des einzelnen Prozesses ausreicht.
  • In einer bevorzugten Ausführungsform des erfindungsgemäßen Verfahrens wird das Prozessabbild in im Wesentlichen gleich große Abschnitte zerlegt, wodurch eine gleichmäßige Verteilung der Abschnitte auf die Netzknoten ermöglicht wird.
  • Wie bereits dargelegt, wird das erfindungsgemäße Verfahren bevorzugt in einem dezentralen Datennetz eingesetzt, bei dem Ressourcen basierend auf einer Hash-Funktion verteilt werden. Insbesondere ist hierbei jeder Netzknoten des Datennetzes für eine vorbestimmte Menge von durch die Hash-Funktion generierbaren Hashwerten zuständig. Vorzugsweise wird dabei ein Peer-to-Peer-Netz verwendet, welches auf einer verteilten Hash-Tabelle beruht. Verteilte Hash-Tabellen sind hinlänglich aus dem Stand der Technik bekannt. Mit diesen Tabellen wird ein Wertebereich von Hashwerten in Hashwert-Intervalle unterteilt und jeder Netzknoten ist für ein Hashwert-Intervall zuständig.
  • In einer weiteren, besonders bevorzugten Variante der Erfindung wird ein in dem dezentralen Datennetz eindeutiges Schlüsselwort für jeden Abschnitt des Prozessabbilds generiert, wobei das Schlüsselwort mit der Hash-Funktion auf einen Hashwert abgebildet wird und der Abschnitt, aus dem das Schlüsselwort generiert wurde, in dem Netzknoten gespeichert wird, der für den Hashwert zuständig ist, für den das Schlüsselwort abgebildet wurde. Das Schlüsselwort für einen Abschnitt kann dabei in beliebiger Weise erzeugt werden, vorzugsweise wird das Schlüsselwort aus Informationen zu dem jeweiligen Rechenprozess, zu dem ein Abschnitt gehört, sowie einer Kennzeichnung für den Abschnitt, insbesondere eine Abschnittsnummer, erzeugt.
  • Insbesondere dann, wenn der Rechenprozess auf dem gleichen Netzknoten fortgesetzt werden soll, auf dem er zuvor angehalten wurde, werden die Informationen zu dem jeweiligen Rechenprozess und/oder das Schlüsselwort in dem Netzknoten gespeichert, der den jeweiligen Rechenprozess vor dem Anhalten ausgeführt hat. Gegebenenfalls ist es auch möglich, dass die Informationen zu dem jeweiligen Rechenprozess und/oder das Schlüsselwort durch ein Prozessverwaltungsverfahren, wie z. B. Round-Robin, Priority-Queue und dergleichen, verwaltet werden. Die Informationen zu dem jeweiligen Rechenprozess umfassen eindeutige Kennzeichner zur Identifikation des Rechenprozesses, beispielsweise eine Prozesskennung des Rechenprozesses und/oder eine Kennung des Prozessabbilds des jeweiligen Rechenprozesses.
  • Die Wiederaufnahme des Prozesses, der dem mit dem erfindungsgemäßen Verfahren verteilten Prozessabbild zu Grunde liegt, erfolgt in einer bevorzugten Variante der Erfindung basierend auf folgenden Schritten:
    • i) Auffinden und Speichern der auf die Netzknoten verteilten Abschnitte des verteilten Prozessabbilds mit Hilfe der Abbildungsvorschrift, insbesondere der Hash-Funktion, in dem zur Wiederaufnahme des Prozesses vorgesehenen Netzknoten;
    • ii) Zusammensetzen der Abschnitte zu dem Prozessabbild und Starten des auf dem Prozessabbild basierenden Prozesses in dem zur Wiederaufnahme vorgesehenen Netzknoten.
  • In einer bevorzugten Variante wird der Prozess dabei in dem Netzknoten wieder aufgenommen, der den Prozess vor dem Anhalten ausgeführt hat. Gegebenenfalls ist es jedoch auch möglich, dass der zur Wiederaufnahme des Prozesses vorgesehene Netzknoten ein anderer als der Netzknoten ist, der den Prozess vor dem Anhalten ausgeführt hat.
  • In einer besonders bevorzugten Variante des erfindungsgemäßen Verfahrens, bei dem Schlüsselwörter zur Verteilung der Abschnitte des Prozessabbilds verwendet werden, wird ein jeweiliger Abschnitt des verteilten Prozessabbilds dadurch aufgefunden, dass das Schlüsselwort des jeweiligen Abschnitts mit der Hash-Funktion auf einen Hashwert abgebildet wird und basierend auf dem Hashwert der Netzknoten gefunden wird, auf dem der jeweilige Abschnitt gespeichert ist.
  • Das Starten eines auf einem Prozessabbild basierenden Prozesses erfolgt in einer bevorzugten Variante derart, dass das zusammengesetzte Prozessabbild in einen Hauptspeicher des zur Wiederaufnahme des Prozesses vorgesehenen Netzknotens geladen wird und anschließend in dem Hauptspeicher ausgeführt wird.
  • Das erfindungsgemäße Verfahren eignet sich insbesondere zur Verwendung in einem technischen System mit einer Mehrzahl von technischen Komponenten, wobei zumindest einem Teil der technischen Komponenten jeweils einen Netzknoten des Datennetzes darstellen. Die technischen Komponenten müssen somit nicht reine Rechner sein, sondern es kann sich auch um technische Geräte mit geringer Rechenleistung und wenig Speicherplatz handeln, wie sie beispielsweise in sog. „Embedded Systems” eingesetzt werden. Basierend auf dem erfindungsgemäßen Verfahren können nunmehr für technische Systeme mit solchen Geräten auch größere Rechenprozesse durchgeführt werden, da die Prozesse unter Einbeziehung des Speichers von weiteren Geräten verteilt im Netz geswapped werden.
  • Ein Beispiel eines technischen Systems, in dem das erfindungsgemäße Verfahren eingesetzt werden kann, ist ein Energieverteilnetz, insbesondere ein Umspannwerk, wobei die technischen Komponenten insbesondere Schalteinheiten in dem Energieverteilnetz umfassen. Ebenso kann das erfindungsgemäße Verfahren beispielsweise in einem Energieerzeugungssystem verwendet werden, insbesondere in einem auf Turbinen beruhenden Energieerzeugungssystem. Weitere Anwendungsbereiche sind Automatisierungsanlagen, wie z. B. Fertigungsstraßen.
  • Neben dem oben beschriebenen Verfahren umfasst die Erfindung ferner ein dezentrales Datennetz mit einer Vielzahl von Netzknoten zur Ausführung von Rechenprozessen, wobei das dezentrale Datennetz derart ausgestaltet ist, dass in dem Netz jede der oben beschriebenen Varianten des erfindungsgemäßen Verfahrens durchführbar ist.
  • Ausführungsbeispiele der Erfindung werden nachfolgend anhand der beigefügten Figuren detailliert beschrieben.
  • Es zeigen:
  • 1 bis 3 schematische Ansichten eines Peer-to-Peer-Netzes, anhand derer die Verteilung eines Prozessabbilds auf mehrere Peers gemäß einer Ausführungsform der Erfindung verdeutlicht wird; und
  • 4 bis 6 schematische Ansichten eines Peer-to-Peer-Netzes, anhand derer das Zusammensetzen eines verteilten Prozessabbilds zur Wiederaufnahme des Prozesses basierend auf einer Ausführungsform der Erfindung verdeutlicht wird.
  • Nachfolgend wird eine Ausführungsform des erfindungsgemäßen Verfahrens mit Bezug auf 1 bis 6 basierend auf einem Peer-to-Peer-Netz umfassend neun Peers bzw. Netzknoten 1, 2, ..., 9 beschrieben. Das Peer-to-Peer-Netz ist dabei als logische Ringstruktur, beispielsweise in der Form eines Chord-Rings, ausgebildet. Diese Art von Peer-to-Peer-Netz ist hinlänglich aus dem Stand der Technik bekannt und wird deshalb nicht näher im Detail erläutert. Die Verteilung von Ressourcen, beispielsweise in der Form von Dateien, erfolgt in diesem Netz basierend auf einer verteilten Hash-Tabelle. Dabei wird ein Wertebereich von Hashwerten in Intervalle unterteilt und jeder der Peers ist für ein Intervall von Hashwerten zuständig. Den im Netz zu verteilenden Ressourcen sind Schlüsselwörter zugeordnet und diese Schlüsselwörter werden mit Hilfe einer Hash-Funktion, beispielsweise mit der Funktion SHA1, in Hashwerte umgewandelt. Derjenige Peer, der für das Intervall zuständig ist, welches den aus dem Schlüsselwort generierten Hashwert umfasst, speichert dann die entsprechende Ressource. Gegebenenfalls können Ressourcen in dem Netz auch repliziert werden, d. h. Kopien der Ressourcen werden auf mehreren Netzknoten gespeichert. Hierdurch stehen die Ressourcen auch bei Ausfall eines Peers weiterhin zur Verfügung. Diese Replikation kann auch auf die nachfolgend beschriebene Verteilung von Slices bzw. Abschnitten eines Prozessabbilds angewendet werden, so dass Kopien jedes Abschnitts auf mehreren Netzknoten gespeichert sind.
  • Die einzelnen Peers in dem Netz der 1 stellen einzelne Geräte mit einem Prozessor zur Ausführung von Rechenprozessen dar. Beispielsweise könnte es sich bei dem System der 1 um ein sog. „Embedded System” handeln, bei dem einzelne Peers technische Geräte eines technischen Systems darstellen, beispielsweise technische Komponenten einer Schalteinheit für ein Spannungsverteilsystem. Solche technischen Komponenten weisen meist nur eine eingeschränkte Speicherkapazität auf und sind deshalb nur bedingt für die Ausführung einer Vielzahl unterschiedlich großer Programme in einem konkurrierenden Ablauf geeignet. Dies liegt unter anderem daran, dass solche Komponenten meist einen geringen Arbeitsspeicher aufweisen und deshalb nur eingeschränkt die Fähigkeit haben, große Rechenprozesse mit Hilfe des Arbeitsspeichers zu swappen, d. h. um- bzw. auszulagern. Um dennoch die Ausführung größerer Prozesse auf solchen Embedded Systems zu ermöglichen, wird erfindungsgemäß ein verteilter Swap-Space dadurch geschaffen, dass ein im Programmablauf zu suspendierender Prozess auf eine Mehrzahl von Peers ausgelagert wird.
  • In 1 ist ein Szenario gezeigt, bei dem die Auslagerung eines ersten Prozesses vorbereitet wird. Hierzu wird zunächst ein Speicherabbild bzw. Prozessabbild (im Englischen auch als Image bezeichnet) von dem zu suspendierenden und auszulagernden Prozess erzeugt. Dieses Abbild beinhaltet verschiedene Komponenten des Prozesses und stellt insbesondere ein Abbild des Hauptspeichers desjenigen Peers dar, der den Prozess zuvor ausgeführt hat. In 1 ist dieses Prozessabbild als PI1 bezeichnet, und beispielhaft sind als Komponenten des Abbilds der Programmcode CO, die Einstellungen des Registers RS (RS = Register Setting), der Programmzähler PC (PC = Program Counter), der Zustand HE des Heaps sowie der Zustand ST des Stacks angegebenen. Dieses Prozessabbild wird nunmehr in eine Mehrzahl von Abschnitten bzw. Slices eingeteilt, wobei die einzelnen Slices vorzugsweise im Wesentlichen gleich groß sind, so dass das Prozessabbild ohne Berücksichtigung des Inhalts durch die Slices zerlegt wird. Das heißt, die einzelnen Slices beinhalten nicht zwangsläufig ganze Komponenten des Abbilds, sondern die Komponenten können sich über mehrere Slices erstrecken. In dem Beispiel der 1 wurde das Prozessabbild PI1 in insgesamt sieben Slices S11, S12, S13, S14, S15, S16 und S17 geteilt. Hierbei kann beispielsweise der Fall auftreten, dass zwei benachbarte Slices Bestandteile des Codes CO umfassen.
  • In 1 sind ferner die Slices eines weiteren, zweiten Prozesses wiedergegeben, wobei die Slices bereits basierend auf dem erfindungsgemäßen Verfahren auf einzelne Peers verteilt wurden. Der zweite Prozess wurde hierbei ebenfalls in sieben Slices aufgeteilt, welche in 1 mit S21, S22, S23, S24, S25, S26 und S27 bezeichnet sind. Basierend auf der vorgenommenen Aufteilung wurde dabei das Slice S21 auf dem Peer 1 gespeichert, das Slice S22 auf dem Peer 4, das Slice S23 auf dem Peer 7, das Slice S24 auf dem Peer 2, das Slice S25 auf dem Peer 5, das Slice S26 auf dem Peer 8 sowie das Slice S27 auf dem Peer 3.
  • Nach der Zerlegung des Prozessabbildes PI1 in die entsprechenden Slices S11 bis S17 erfolgt in einem nächsten Schritt eine Zuweisung der Slices zu entsprechenden Hashwerten. Dieser Schritt ist im unteren Teil von 2 verdeutlicht. Dabei wird zunächst für jedes der Slices S11 bis S17 ein entsprechendes Schlüsselwort KS11, KS12, ..., KS17 festgelegt. Dieses Schlüsselwort ist für das jeweilige Slice eindeutig und kann sich beispielsweise aus einer Kennung des dem Prozessabbild PI1 zu Grunde liegenden Prozesses und/oder einer Kennung des Prozessabbilds selbst zusammensetzen, wobei jedes Slice ferner durch eine spezifische Nummer gekennzeichnet ist. Insbesondere werden die Slices dabei mit Nummern in aufsteigender Reihenfolge entsprechend der Position des Slices innerhalb der Zerlegung nummeriert.
  • Analog zur Generierung von Hashwerten aus den Schlüsselwörtern von Ressourcen werden nunmehr aus den Schlüsselwörtern KS11 bis KS17 basierend auf der im Peer-to-Peer-Netz verwendeten Hash-Funktion entsprechende Hashwerte erzeugt. Diese Hashwerte sind in 2 mit H1 bis H7 bezeichnet, wobei die Ziffer des jeweiligen Hashwerts anzeigt, welcher der Peers 1 bis 9 für diesen Hashwert zuständig ist, d. h. welcher Peer das Intervall umfasst, welches den entsprechenden Hashwert beinhaltet. Dies bedeutet mit anderen Worten, dass für den Hashwert H2 der Peer 2 zuständig ist, für den Hashwert H1 der Peer 1, für den Hashwert H3 der Peer 3, für den Hashwert H4 der Peer 4, für den Hashwert H5 der Peer 5, für den Hashwert H6 der Peer 6 und für den Hashwert H7 der Peer 7. Gemäß 2 ergibt sich mittels der Hash-Funktion, dass aus dem Schlüsselwort KS11 der Hashwert H2 erzeugt wird, aus dem Schlüssel wort KS12 der Hashwert H7, aus dem Schlüsselwort KS13 der Hashwert H5, aus dem Schlüsselwort KS14 der Hashwert H3, aus dem Schlüsselwort KS15 der Hashwert H1, aus dem Schlüsselwort KS16 der Hashwert H4 und aus dem Schlüsselwort KS17 der Hashwert H6.
  • In einem nächsten Schritt, der in 3 verdeutlicht ist, erfolgt nunmehr die Verteilung der Slices S11 bis S17 des Prozessabbilds PI1 basierend auf den mit der Hash-Funktion generierten Hashwerten auf die Peers. Dabei wird ein Slice des Prozessabbilds auf denjenigen Peer gespeichert, der für den aus dem Slice erzeugten Hashwert zuständig ist. Wie durch gestrichelte Pfeile in 3 angedeutet ist, wird somit das Slice S11 auf dem Peer 2 gespeichert, das Slice S12 auf dem Peer 7, das Slice S13 auf dem Peer 5, das Slice S14 auf dem Peer 3, das Slice S15 auf dem Peer 1, das Slice S16 auf dem Peer 4 sowie das Slice S17 auf dem Peer 6. Somit beinhalten die Peers 1, 2, 3, 4, 5 und 7 nunmehr Slices sowohl von dem ersten Prozess als auch von dem zweiten Prozess. Demgegenüber enthält der Peer 6 nur ein Slice von dem ersten Prozess, d. h. das Slice S17, und der Peer 8 nur ein Slice von dem zweiten Prozess, nämlich das Slice S26. Die einzelnen Slices sind hierbei in den Arbeitsspeichern der Peers gespeichert, wobei diese Arbeitsspeicher vorzugsweise RAMs sind. Es wird somit ein verteilter Swap-Space durch eine Mehrzahl der Arbeitsspeicher auf den unterschiedlichen Peers geschaffen, so dass ein Prozess-Swapping auch in Peer-to-Peer-Netzen möglich ist, in denen die einzelnen Peers nicht ausreichend Kapazität für die Auslagerung eines Prozesses haben. Es muss lediglich die Bedingung erfüllt sein, dass im gesamten Peer-to-Peer-Netz genügend RAM-Kapazität vorhanden ist, um alle ruhenden Prozesse speichern zu können.
  • Anhand der 4 bis 6 wird nunmehr erläutert, wie die Slices eines ausgelagerten Prozessabbilds wieder zusammengesetzt werden können, um den Prozess wieder aufzunehmen. Dies wird anhand des ausgelagerten zweiten Prozesses beschrieben, dessen Prozessabbild sich aus dem Slices S21 bis S27 zusammen setzt. In der nachfolgend beschriebenen Ausführungsform wird hierbei der ausgelagerte Prozess von demjenigen Peer wieder aufgenommen, der den Prozess auch zuvor ausgeführt hat. Hierbei ist zu beachten, dass die Auslagerung des zweiten Prozesses in gleicher Weise erfolgt ist, wie zuvor für den ersten Prozess beschrieben. Die zur Auslagerung der einzelnen Prozessabschnitte verwendeten Schlüsselwörter wurden dabei in dem Peer gespeichert, der den Prozess zuvor ausgeführt hat. Gegebenenfalls können die Schlüsselwörter jedoch auch aus entsprechenden Informationen zum Prozess, insbesondere aus der Prozesskennung bzw. der Kennung des Prozessabbildes, in Kombination mit einer entsprechenden Nummer des Slices wieder generiert werden.
  • Wie sich aus 4 ergibt, sind für den zweiten Prozess in dem entsprechenden Peer, der den Prozess wieder aufnimmt, die Schlüsselwörter KS21, KS22, KS23, KS24, KS25, KS26 sowie KS27 enthalten. Das Schlüsselwort KS21 wurde dabei basierend auf dem Slice S21 generiert, das Schlüsselwort KS22 basierend auf dem Slice S22, das Schlüsselwort KS23 basierend auf dem Slice S23, das Schlüsselwort KS24 basierend auf dem Slice S24, das Schlüsselwort KS25 basierend auf dem Slice S25, das Schlüsselwort KS26 basierend auf dem Slice S26 und das Schlüsselwort KS27 basierend auf dem Slice S27. Nunmehr wird wiederum mit Hilfe der in dem Peer-to-Peer-Netz verwendeten Hash-Funktion der entsprechende Hashwert generiert. Insbesondere wird aus dem Schlüsselwort KS21 der Hashwert H1' generiert, aus dem Schlüsselwort KS22, der Hashwert H4', aus dem Schlüsselwort KS23 der Hashwert H7', aus dem Schlüsselwort KS24 der Hashwert H2', aus dem Schlüsselwort KS25 der Hashwert H5', aus dem Schlüsselwort KS26 der Hashwert H8' und aus dem Schlüsselwort KS27 der Hashwert H3'. Die Ziffern im Hashwert zeigen wiederum an, welcher der Peers für den entsprechenden Hashwert gemäß der verteilten Hash-Tabelle zuständig ist.
  • Wie in 5 gezeigt, werden anschließend mit Hilfe des verwendeten Peer-to-Peer-Protokolls die entsprechenden Peers gefunden, welche für die Hashwerte H1' bis H7' zuständig sind und welche folglich die entsprechenden Slices S21 bis S27 enthalten. Diese Slices werden dann auf den Peer heruntergeladen, der den Prozess wieder aufnehmen soll. Das Herunterladen der entsprechenden Slices ist dabei in 5 durch entsprechende gestrichelte Pfeile angedeutet. In dem Peer, der den Prozess wieder aufnehmen soll, liegen schließlich die einzelnen Slices S21 bis S27 vor.
  • 6 zeigt das Szenario, nachdem die Slices S21 bis S27 heruntergeladen wurden, was dadurch ersichtlich ist, dass die einzelnen Peers nunmehr nur noch die Slices S11 bis S17 des ersten Prozesses enthalten. Ferner zeigt 6 den abschließenden Schritt des Verfahrens, bei dem die einzelnen heruntergeladenen Slices S21 bis S27 nunmehr gemäß ihrer Nummerierung wieder zu einem Prozessabbild PI2 des zweiten Prozesses zusammengesetzt werden. Beispielhaft sind in 6 wieder einzelne Bestandteile des Prozessabbilds PI2 angegeben, nämlich der Code CO', die Registereinstellung RS', der Programmzähler PC', der Zustand HE' des Heaps sowie der Zustand ST' des Stacks. Das Prozessabbild PI2 wird schließlich in den Hauptspeicher des zur Wiederaufnahme des Prozesses bestimmten Peers geladen, und die Ausführung des Prozesses wird fortgesetzt.
  • Wie bereits oben erwähnt, wird in der im Vorangegangenen beschriebenen Ausführungsform des Verfahrens derjenige Peer zur Wiederausführung des Prozesses verwendet, der den Prozess auch zuvor ausgeführt hat. Dies muss jedoch nicht zwangsläufig der Fall sein, und es können gegebenenfalls auch Mechanismen vorgesehen sein, wonach ein anderer Peer den Prozess wieder aufnimmt. Die Verwaltung der Prozessausführung kann dabei durch bekannte Prozess-Verwaltungs-Verfahren übernommen werden, wie z. B. Round-Robin, Priority-Queue und dergleichen.

Claims (19)

  1. Verfahren zur Verwaltung von Rechenprozessen in einem dezentralen Datennetz umfassend eine Vielzahl von Netzknoten (1, ..., 9) zur Ausführung der Rechenprozesse, a) wobei ein Netzknoten (1, ..., 9) jeweils einen RAM-Arbeitsspeicher aufweist, b) wobei Ressourcen in dem Datennetz basierend auf einer Abbildungsvorschrift verteilt werden, bei dem: c) jeweils auf einem Netzknoten (1, ..., 9) ein oder mehrere Rechenprozesse im RAM-Arbeitsspeicher ausgeführt werden, d) wobei ein zu suspendierender Rechenprozess angehalten wird und ein Prozessabbild (PI1, PI2) zu dem angehaltenen Rechenprozess erzeugt wird, e) wobei das Prozessabbild (PI1, PI2) des zu suspendierenden Rechenprozesses in mehrere Abschnitte (S11, S12, ..., S27) zerlegt wird, f) wobei die Abschnitte (S11, S12, ..., S27) des Prozessabbilds (PI1, PI2) des jeweiligen Rechenprozesses mit Hilfe der Abbildungsvorschrift auf die RAM-Arbeitsspeicher mehrerer der Netzknoten (1, ..., 9) verteilt werden, wodurch ein verteiltes Prozessabbild erzeugt wird.
  2. Verfahren nach Anspruch 1, bei dem das Prozessabbild (PI1, PI2) in Schritt b) in im Wesentlichen gleich große Abschnitte (S11, S12, ..., S27) zerlegt wird.
  3. Verfahren nach einem der vorhergehenden Ansprüche, bei dem das Verfahren in einem Datennetz eingesetzt wird, bei dem jeder Netzknoten (1, ..., 9) für eine vorbestimmte Menge von durch die Hash-Funktion generierbaren Hashwerten (H1, H2, ..., H7') zuständig ist.
  4. Verfahren nach Anspruch 3, bei dem das Datennetz ein auf einer verteilten Hash-Tabelle basierendes Peer-to-Peer-Netz ist, bei dem ein Wertebereich von Hashwerten (H1, H2, ..., H7') in Hashwert-Intervalle unterteilt ist und jeder Netzknoten (1, ..., 9) für ein Hashwert-Intervall zuständig ist.
  5. Verfahren nach Anspruch 3 oder 4, bei dem in Schritt c) ein in dem dezentralen Datennetz eindeutiges Schlüsselwort (KS11, KS12, ..., KS27) für jeden Abschnitt (S11, S12, ..., S27) des Prozessabbilds (PI1, PI2) eines jeweiligen Rechenprozesses generiert wird, wobei das Schlüsselwort (KS11, KS12, ..., KS27) mit der Hash-Funktion auf einen Hashwert (H1, H2, H7') abgebildet wird und der Abschnitt (S11, S12, ..., S27), für den das Schlüsselwort (KS11, KS12, ..., KS27) generiert wurde, in dem Netzknoten (1, ..., 9) gespeichert wird, der für den Hashwert (H1, H2, ..., H7') zuständig ist, auf dem das Schlüsselwort abgebildet wurde.
  6. Verfahren nach Anspruch 5, bei dem ein Schlüsselwort für einen Abschnitt (S11, S12, ..., S27) eines Prozessabbilds (PI1, PI2) des jeweiligen Rechenprozesses aus Informationen zu dem jeweiligen Rechenprozess und einer Kennzeichnung für den Abschnitt, insbesondere einer Abschnittsnummer, erzeugt wird.
  7. Verfahren nach Anspruch 6, bei dem die Informationen zu dem jeweiligen Rechenprozess und/oder das Schlüsselwort (KS11, KS12, ..., KS27) in dem Netzknoten (1, ..., 9) gespeichert werden, der den jeweiligen Rechenprozess vor dem Anhalten ausgeführt hat, und/oder bei dem die Informationen zu dem jeweiligen Rechenprozess und/oder das Schlüsselwort (KS11, KS12, ..., KS27) durch ein Prozessverwaltungsverfahren verwaltet werden.
  8. Verfahren nach Anspruch 6 oder 7, bei dem die Informationen zu dem jeweiligen Rechenprozess eine Prozesskennung des jeweiligen Rechenprozesses und/oder eine Kennung des Prozessabbilds (PI1, PI2) des jeweiligen Rechenprozesses umfassen.
  9. Verfahren nach einem der vorhergehenden Ansprüche, bei dem ein auf ein verteiltes Prozessabbild basierender Prozess durch einen zur Wiederaufnahme des Prozesses vorgesehenen Netzknoten (1, ..., 9) mittels folgender Schritten wieder aufgenommen wird: i) Auffinden und Speichern der auf die Netzknoten (1, ..., 9) verteilten Abschnitte (S11, S12, ..., S27) des verteilten Prozessabbilds (PI1, PI2) mit Hilfe der Abbildungsvorschrift, insbesondere der Hash-Funktion, in dem zur Wiederaufnahme des Prozesses vorgesehenen Netzknoten (1, ..., 9); ii) Zusammensetzen der Abschnitte (S11, S12, ..., S27) zu dem Prozessabbild (PI1, PI2) und Starten des auf dem Prozessabbild (PI1, PI2) basierenden Prozesses in dem zur Wiederaufnahme vorgesehenen Netzknoten (1, ..., 9).
  10. Verfahren nach Anspruch 9, bei dem der zur Wiederaufnahme des Prozesses vorgesehene Netzknoten (1, ..., 9) der gleiche Netzknoten ist, der den Prozess vor dem Anhalten ausgeführt hat.
  11. Verfahren nach Anspruch 9 oder 10, bei dem der zur Wiederaufnahme des Prozesses vorgesehene Netzknoten (1, ..., 9) ein anderer Netzknoten als der Netzknoten (1, ..., 9) ist, der den Prozess vor dem Anhalten ausgeführt hat.
  12. Verfahren nach einem der Ansprüche 9 bis 11 in Kombination mit einem der Ansprüche 5 bis 8, bei dem ein jeweiliger Abschnitt des verteilten Prozessabbilds (PI1, PI2) in Schritt i) dadurch aufgefunden wird, dass das Schlüsselwort (KS11, KS12, ..., KS27) des jeweiligen Abschnitts (S11, S12, ..., S27) mit der Hash-Funktion auf einen Hashwert (H1, H2, ..., H7') abgebildet wird und basierend auf dem Hashwert (H1, H2, ..., H7') der Netzknoten (1, ..., 9) gefunden wird, auf dem der jeweilige Abschnitt (S11, S12, ..., S27) gespeichert ist.
  13. Verfahren nach einem der Ansprüche 9 bis 12, bei dem das Starten des auf dem Prozessabbild (PI1, PI2) basierenden Prozesses in Schritt ii) derart erfolgt, dass das zusammengesetzte Prozessabbild (PI1, PI2) in einen Hauptspeicher des zur Wiederaufnahme des Prozesses vorgesehene Netzknotens (1, ..., 9) geladen wird und anschließend in dem Hauptspeicher ausgeführt wird.
  14. Verfahren nach einem der vorhergehenden Ansprüche, wobei das Verfahren in einem Datennetz eines technischen Systems mit einer Mehrzahl von technischen Komponenten eingesetzt wird, wobei zumindest ein Teil der technischen Komponenten jeweils einen Netzknoten (1, ..., 9) des Datennetzes darstellen.
  15. Verfahren nach Anspruch 14, bei dem das technische System ein Energieverteilnetz, insbesondere ein Umspannwerk, umfasst, wobei die technischen Komponenten insbesondere Schalteinheiten in dem Energieverteilnetz umfassen.
  16. Verfahren nach Anspruch 14 oder 15, bei dem das technische System ein Energieerzeugungssystem, insbesondere ein auf Turbinen beruhendes Energieerzeugungssystem, umfasst.
  17. Verfahren nach einem der Ansprüche 14 bis 16, bei dem das technische System eine Automatisierungsanlage, insbesondere eine Fertigungsstraße, umfasst.
  18. Dezentrales Datennetz, umfassend eine Vielzahl von Netzknoten (1, ..., 9) zur Ausführung von Rechenprozessen, wobei Ressourcen in dem Datennetz basierend auf einer Abbildungsvorschrift, insbesondere einer Hash-Funktion, verteilt sind und wobei das Datennetz derart ausgestaltet ist, dass die Rechenprozesse mit einem Verfahren verwaltet werden, bei dem: a) ein Netzknoten (1, ..., 9) jeweils einen RAM-Arbeitsspeicher aufweist, b) wobei Ressourcen in dem Datennetz basierend auf einer Abbildungsvorschrift verteilt werden, bei dem: c) jeweils auf einem Netzknoten (1, ..., 9) ein oder mehrere Rechenprozesse im RAM-Arbeitsspeicher ausgeführt werden, d) wobei ein zu suspendierender Rechenprozess angehalten wird und ein Prozessabbild (PI1, PI2) zu dem angehaltenen Rechenprozess erzeugt wird, e) wobei das Prozessabbild (PI1, PI2) des zu suspendierenden Rechenprozesses in mehrere Abschnitte (S11, S12, ..., S27) zerlegt wird, f) wobei die Abschnitte (S11, S12, ..., S27) des Prozessabbilds (PI1, PI2) des jeweiligen Rechenprozesses mit Hilfe der Abbildungsvorschrift auf die RAM-Arbeitsspeicher mehrerer der Netzknoten (1, ..., 9) verteilt werden, wodurch ein verteiltes Prozessabbild erzeugt wird.
  19. Dezentrales Datennetz nach Anspruch 18, wobei das Datennetz derart ausgestaltet ist, dass ein Verfahren nach einem der Ansprüche 2 bis 17 in dem Datennetz durchführbar ist.
DE102008003500A 2008-01-08 2008-01-08 Verfahren zur Verwaltung von Rechenprozessen in einem dezentralen Datennetz Expired - Fee Related DE102008003500B4 (de)

Priority Applications (4)

Application Number Priority Date Filing Date Title
DE102008003500A DE102008003500B4 (de) 2008-01-08 2008-01-08 Verfahren zur Verwaltung von Rechenprozessen in einem dezentralen Datennetz
PCT/EP2008/068175 WO2009087056A1 (de) 2008-01-08 2008-12-22 Verfahren zur verwaltung von rechenprozessen in einem dezentralen datennetz
EP08870508A EP2229627A1 (de) 2008-01-08 2008-12-22 Verfahren zur verwaltung von rechenprozessen in einem dezentralen datennetz
US12/812,086 US8495634B2 (en) 2008-01-08 2008-12-22 Method for the management of tasks in a decentralized data network

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE102008003500A DE102008003500B4 (de) 2008-01-08 2008-01-08 Verfahren zur Verwaltung von Rechenprozessen in einem dezentralen Datennetz

Publications (2)

Publication Number Publication Date
DE102008003500A1 DE102008003500A1 (de) 2009-09-03
DE102008003500B4 true DE102008003500B4 (de) 2010-04-08

Family

ID=40532265

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102008003500A Expired - Fee Related DE102008003500B4 (de) 2008-01-08 2008-01-08 Verfahren zur Verwaltung von Rechenprozessen in einem dezentralen Datennetz

Country Status (4)

Country Link
US (1) US8495634B2 (de)
EP (1) EP2229627A1 (de)
DE (1) DE102008003500B4 (de)
WO (1) WO2009087056A1 (de)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2839369B2 (de) * 2012-04-20 2020-10-14 NXP USA, Inc. Informationsverarbeitungsvorrichtung und verfahren zum schutz von daten in einem aufrufstapel
US20160197943A1 (en) * 2014-06-24 2016-07-07 Leviathan, Inc. System and Method for Profiling System Attacker
CN110690992B (zh) * 2019-09-16 2022-03-29 中盈优创资讯科技有限公司 网络割接异常识别方法及装置

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6782389B1 (en) * 2000-09-12 2004-08-24 Ibrix, Inc. Distributing files across multiple, permissibly heterogeneous, storage devices

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7779415B2 (en) * 2003-11-21 2010-08-17 International Business Machines Corporation Adaptive load distribution in managing dynamic and transient data for distributed applications

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6782389B1 (en) * 2000-09-12 2004-08-24 Ibrix, Inc. Distributing files across multiple, permissibly heterogeneous, storage devices

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Voras.I., et.al.: Network distributed file system in user space. In: 28th international Conference on Information Technology Interfaces, 2006, pp.669-674 *

Also Published As

Publication number Publication date
US20100287557A1 (en) 2010-11-11
US8495634B2 (en) 2013-07-23
EP2229627A1 (de) 2010-09-22
DE102008003500A1 (de) 2009-09-03
WO2009087056A1 (de) 2009-07-16

Similar Documents

Publication Publication Date Title
DE69932465T2 (de) Dateidistributionssystem und dessen Verfahren
EP1901191B1 (de) Verfahren und Anordnung zur Verwaltung von Lizenzen
DE112009000411T5 (de) Verfahren und System zum Implementieren eines virtuellen Speicherpools in einer virtuellen Umgebung
DE10236796B4 (de) Verfahren und Anordnung zur randomisierten Datenspeicherung in Speichernetzwerken und/oder einem Intranet und/oder dem Internet sowie ein entsprechendes Computerprogramm-Erzeugnis und ein entsprechendes computerlesbares Speichermedium
DE102020113347A1 (de) Ausführung von containerisierten prozessen innerhalb der beschränkungen der verfügbaren host-knoten
DE102005050304A1 (de) Verfahren und Programm für die Generierung automatisch verteilbarer Clients von Application-Servern
WO2008006622A1 (de) Netzwerksystem und verfahren zur steuerung parallel existierender adressräume
EP2250588B1 (de) Verfahren und programm zum bereitstellen von datenkohärenz in netzwerken
DE112010004530T5 (de) Transaktionsaktualisierung bei Dynamischen Verteilten Arbeitslasten
DE102008003500B4 (de) Verfahren zur Verwaltung von Rechenprozessen in einem dezentralen Datennetz
DE102016219854A1 (de) Computersystem und Verfahren zum dynamischen Anpassen eines software-definierten Netzwerks
DE102006054090A1 (de) Verfahren zum Ausführen eines Dienstes in einem dezentralen Datennetz
WO2012022378A1 (de) Verfahren und anordnung zur projektierung und/oder programmierung eines projektes einer industriellen automatisierungsanordnung
WO2007104586A1 (de) Verfahren zum betrieb eines dezentralen datennetzes
EP3475819B1 (de) Verfahren zur automatischen und dynamischen zuteilung der zuständigkeit für aufgaben an die verfügbaren rechenkomponenten in einem hochverteilten datenverarbeitungssystem
EP1697846A2 (de) Einrichtung und verfahren zur steuerung und kontrolle von überwachungsdetektoren in einem knoten eines clustersystems
DE10049621A1 (de) Verfahren zum Betreiben eines Datenverarbeitungssystem
DE102004017698A1 (de) SCADA-System
EP2178267B1 (de) Verfahren zur Ausführung von Diensten in einem dezentralen Datennetz
WO2006074869A1 (de) Datenspeichersystem und verfahren zu dessen betrieb
EP2051443B1 (de) Verfahren zum Betrieb eines dezentralen Kommunikationsnetzes durch Kategorisierung von Ressourcen
EP0482044B1 (de) Virtueller speicher für ein parallelrechnersystem
EP3800517A1 (de) Redundantes automatisierungssystem, verfahren zur erstellung eines solchen automatisierungssystems, computerprogramm und computerlesbares medium
DE102022125524A1 (de) Verfahren zum Entwerfen von Maschinensystemen
DE19807436B4 (de) System und Verfahren zur Steuerung und Überwachung von Programmen in einem Rechnerverbund

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law
8364 No opposition during term of opposition
R081 Change of applicant/patentee

Owner name: ATOS IT SOLUTIONS AND SERVICES GMBH, DE

Free format text: FORMER OWNER: SIEMENS AKTIENGESELLSCHAFT, 80333 MUENCHEN, DE

Effective date: 20110915

R081 Change of applicant/patentee

Owner name: ATOS IT SOLUTIONS AND SERVICES GMBH, DE

Free format text: FORMER OWNER: SIEMENS IT SOLUTIONS AND SERVICES GMBH, 81739 MUENCHEN, DE

Effective date: 20130506

R119 Application deemed withdrawn, or ip right lapsed, due to non-payment of renewal fee