WO2009087056A1 - 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
WO2009087056A1
WO2009087056A1 PCT/EP2008/068175 EP2008068175W WO2009087056A1 WO 2009087056 A1 WO2009087056 A1 WO 2009087056A1 EP 2008068175 W EP2008068175 W EP 2008068175W WO 2009087056 A1 WO2009087056 A1 WO 2009087056A1
Authority
WO
WIPO (PCT)
Prior art keywords
network
network node
data network
distributed
sil
Prior art date
Application number
PCT/EP2008/068175
Other languages
English (en)
French (fr)
Inventor
Christoph Gerdes
Sebastian Dippl
Gerd Völksen
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 US12/812,086 priority Critical patent/US8495634B2/en
Priority to EP08870508A priority patent/EP2229627A1/de
Publication of WO2009087056A1 publication Critical patent/WO2009087056A1/de

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 anderen technischen Systemen, wie z.B. einem Energieerzeugungssystem, einer Automatisierungsanlage und dergleichen verwendet werden.

Description

Beschreibung
Verfahren zur Verwaltung von Rechenprozessen in einem dezentralen Datennetz
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 Abbil- dungsvorschrift, insbesondere einer Hash-Funktion, verteilt werden. Darüber hinaus betrifft die Erfindung ein entsprechendes Datennetz.
Insbesondere in technischen Systemen, in denen über ein de- zentrales 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.
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 insbeson- dere 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 eingesetzt, bei dem Ressourcen mit einer Abbildungsvorschrift, vorzugsweise mit einer Hash-Funktion, auf die einzelnen Netzknoten verteilt werden. Hash-Funktionen sind hinlänglich aus dem Stand der Technik bekannt, ein Beispiel einer solchen Funktion ist SHAl. 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 ver- wendet werden, wobei diese Funktionen jedoch vorzugsweise ähnliche Eigenschaften wie Hash-Funktionen aufweisen sollten.
Gemäß dem Verfahren der Erfindung werden in einem Schritt a) ein oder mehrere, jeweils auf einem Netzknoten ausgeführte und zu suspendierende Rechenprozesse angehalten und es wird ein Prozessabbild zu jedem angehaltenen Rechenprozess erzeugt. Das Prozessabbild, welches im Englischen üblicherweise als Image bezeichnet wird, stellt hierbei ein Speicherabbild des Prozesses in dem Zustand dar, zu dem der Prozess angehal- ten wurde. Dieses Image bzw. Prozessabbild wird dabei für jeden angehaltenen Rechenprozess in Abschnitte zerlegt (Schritt b) ) . Die Abschnitte werden schließlich in einem Schritt c) mit Hilfe der Abbildungsvorschrift, insbesondere der Hash- Funktion, auf die Netzknoten verteilt, so dass ein verteiltes Prozessabbild in dem Datennetz erzeugt wird.
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 Schritt b) in im Wesent- liehen gleich große Abschnitte zerlegt, wodurch eine gleichmäßige Verteilung der Abschnitte auf die Netzknoten ermöglicht wird.
Der Schritt c) des erfindungsgemäßen Verfahrens wird in einer weiteren Ausführungsform dadurch realisiert, dass die verteilten Abschnitte in jeweiligen Arbeitsspeichern in den Netzknoten, insbesondere in RAMs der Netzknoten, gespeichert werden .
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 generier- baren 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 in Schritt c) 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, vor- zugsweise 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 aus- gefü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 umfas- sen 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 verteil- ten 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 Pro- zess 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 jewei- liger 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 tech- nischen 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 erfin- dungsgemäß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:
Fig. 1 bis Fig. 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
Fig. 4 bis Fig. 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 Fig. 1 bis Fig. 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 lo- gische 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 die- sem 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 SHAl, 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 Fig. 1 stellen einzelne Geräte mit einem Prozessor zur Ausführung von Rechenprozessen dar. Beispielsweise könnte es sich bei dem System der Fig. 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 swap- pen, 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 Fig. 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 Fig. 1 ist dieses Prozessabbild als PIl 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 Fig. 1 wurde das Pro- zessabbild PIl in insgesamt sieben Slices Sil, S12, S13, S14, S15, S16 und S17 geteilt. Hierbei kann beispielsweise der Fall auftreten, dass zwei benachbarte Slices Bestandteile des Codes CO umfassen.
In Fig. 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 Fig. 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 PIl in die entspre- chenden Slices Sil bis S17 erfolgt in einem nächsten Schritt eine Zuweisung der Slices zu entsprechenden Hashwerten. Dieser Schritt ist im unteren Teil von Fig. 2 verdeutlicht. Dabei wird zunächst für jedes der Slices Sil bis S17 ein entsprechendes Schlüsselwort KSIl, KS12, ..., KS17 festgelegt. Dieses Schlüsselwort ist für das jeweilige Slice eindeutig und kann sich beispielsweise aus einer Kennung des dem Prozessabbild PIl 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ör- tern von Ressourcen werden nunmehr aus den Schlüsselwörtern KSIl bis KS17 basierend auf der im Peer-to-Peer-Netz verwendeten Hash-Funktion entsprechende Hashwerte erzeugt. Diese Hashwerte sind in Fig. 2 mit Hl 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 Hl 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äß Fig. 2 ergibt sich mittels der Hash-Funktion, dass aus dem Schlüsselwort KSIl 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 Hl, aus dem Schlüsselwort KS16 der Hashwert H4 und aus dem Schlüsselwort KS17 der Hash- wert H6.
In einem nächsten Schritt, der in Fig. 3 verdeutlicht ist, erfolgt nunmehr die Verteilung der Slices Sil bis S17 des Prozessabbilds PIl 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 Fig. 3 angedeutet ist, wird somit das Slice Sil 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 Fig. 4 bis 6 wird nunmehr erläutert, wie die SIi- ces 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 Prozes- ses 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 Fig. 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 Hl' generiert, aus dem Schlüsselwort KS22, der Hashwert H4', aus dem Schlüsselwort KS23 der Hashwert Rl', 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 Fig. 5 gezeigt, werden anschließend mit Hilfe des verwendeten Peer-to-Peer-Protokolls die entsprechenden Peers gefunden, welche für die Hashwerte Hl' 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 Fig. 5 durch ent- sprechende gestrichelte Pfeile angedeutet. In dem Peer, der den Prozess wieder aufnehmen soll, liegen schließlich die einzelnen Slices S21 bis S27 vor.
Fig. 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 Sil bis S17 des ersten Prozesses enthalten. Ferner zeigt Fig. 6 den abschließenden Schritt des Verfahrens, bei dem die einzelnen heruntergeladenen Slices S21 bis S27 nunmehr gemäß ihrer Nummerie- rung wieder zu einem Prozessabbild PI2 des zweiten Prozesses zusammengesetzt werden. Beispielhaft sind in Fig. 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 Mecha- nismen 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

Patentansprüche
1. Verfahren zur Verwaltung von Rechenprozessen in einem dezentralen Datennetz umfassend eine Vielzahl von Netzknoten (1, ..., 9) zur Ausführung der Rechenprozesse, wobei Ressourcen in dem Datennetz basierend auf einer Abbildungsvorschrift, insbesondere einer Hash-Funktion, verteilt werden, bei dem: a) ein oder mehrere, jeweils auf einem Netzknoten (1, ..., 9) ausgeführte und zu suspendierende Rechenprozesse angehal- ten werden und ein Prozessabbild (PIl, PI2) zu jedem an¬ gehaltenen Rechenprozess erzeugt wird; b) das Prozessabbild (PIl, PI2) eines jeweiligen Rechenpro¬ zesses in Abschnitte (Sil, S12, ..., S27) zerlegt wird; c) die Abschnitte (Sil, S12, ..., S27) des Prozessabbilds (PIl, PI2) des jeweiligen Rechenprozesses mit Hilfe der Abbildungsvorschrift auf die Netzknoten (1, ..., 9) ver¬ teilt werden, wodurch ein verteiltes Prozessabbild er¬ zeugt wird.
2. Verfahren nach Anspruch 1, bei dem das Prozessabbild (PIl, PI2) in Schritt b) in im Wesentlichen gleich große Abschnitte (Sil, S12, ..., S27) zerlegt wird.
3. Verfahren nach Anspruch 1 oder 2, bei dem die in Schritt c) verteilten Abschnitte (Sil, S12, ..., S27) in jeweiligen Arbeitsspeichern in den Netzknoten (1, ..., 9) , insbesondere in RAMs der Netzknoten (1, ..., 9) , gespeichert werden.
4. 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 (Hl, H2, ..., H7') zuständig ist.
5. Verfahren nach Anspruch 4, bei dem das Datennetz ein auf einer verteilten Hash-Tabelle basierendes Peer-to-Peer-Netz ist, bei dem ein Wertebereich von Hashwerten (Hl, H2, ..., H7') in Hashwert-Intervalle unterteilt ist und jeder Netzknoten (1, ..., 9) für ein Hashwert-Intervall zuständig ist.
6. Verfahren nach Anspruch 4 oder 5, bei dem in Schritt c) ein in dem dezentralen Datennetz eindeutiges Schlüsselwort
(KSIl, KS12, ..., KS27) für jeden Abschnitt (Sil, S12, ..., S27) des Prozessabbilds (PIl, PI2) eines jeweiligen Rechenprozesses generiert wird, wobei das Schlüsselwort (KSIl, KS12, ..., KS27) mit der Hash-Funktion auf einen Hashwert (Hl, H2, ..., H7') abgebildet wird und der Abschnitt (Sil, S12, ..., S27), für den das Schlüsselwort (KSIl, KS12, ..., KS27) generiert wurde, in dem Netzknoten (1, ..., 9) gespeichert wird, der für den Hashwert (Hl, H2, ..., H7' ) zuständig ist, auf dem das Schlüsselwort abgebildet wurde.
7. Verfahren nach Anspruch 6, bei dem ein Schlüsselwort für einen Abschnitt (Sil, S12, ..., S27) eines Prozessabbilds (PIl, PI2) des jeweiligen Rechenprozesses aus Informationen zu dem jeweiligen Rechenprozess und einer Kennzeichnung für den Ab- schnitt, insbesondere einer Abschnittsnummer, erzeugt wird.
8. Verfahren nach Anspruch 7, bei dem die Informationen zu dem jeweiligen Rechenprozess und/oder das Schlüsselwort
(KSIl, 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 (KSIl, KS12, ..., KS27) durch ein Prozessverwaltungsverfahren verwaltet werden.
9. Verfahren nach Anspruch 7 oder 8, bei dem die Informationen zu dem jeweiligen Rechenprozess eine Prozesskennung des jeweiligen Rechenprozesses und/oder eine Kennung des Prozessabbilds (PIl, PI2) des jeweiligen Rechenprozesses umfassen.
10. 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 (Sil, S12, ..., S27) des verteilten Prozessabbilds (PIl, PI2) mit Hilfe der Abbildungsvorschrift, insbesondere der Hash-Funktion, in dem zur Wiederaufnahme des Prozesses vorgesehenen Netzknoten (1, ..., 9); ii) Zusammensetzen der Abschnitte (Sil, S12, ..., S27) zu dem Prozessabbild (PIl, PI2) und Starten des auf dem Prozessabbild (PIl, PI2) basierenden Prozesses in dem zur Wiederaufnahme vorgesehenen Netzknoten (1, ..., 9) .
11. Verfahren nach Anspruch 10, bei dem der zur Wiederaufnah- me des Prozesses vorgesehene Netzknoten (1, ..., 9) der gleiche
Netzknoten ist, der den Prozess vor dem Anhalten ausgeführt hat.
12. Verfahren nach Anspruch 10 oder 11, bei dem der zur Wie- deraufnahme des Prozesses vorgesehene Netzknoten (1, ..., 9) ein anderer Netzknoten als der Netzknoten (1, ..., 9) ist, der den Prozess vor dem Anhalten ausgeführt hat.
13. Verfahren nach einem der Ansprüche 10 bis 12 in Kombina- tion mit einem der Ansprüche 6 bis 9, bei dem ein jeweiliger
Abschnitt des verteilten Prozessabbilds (PIl, PI2) in Schritt i) dadurch aufgefunden wird, dass das Schlüsselwort (KSIl, KS12, ..., KS27) des jeweiligen Abschnitts (Sil, S12, ..., S27) mit der Hash-Funktion auf einen Hashwert (Hl, H2, ..., H7') ab- gebildet wird und basierend auf dem Hashwert (Hl, H2, ..., H7') der Netzknoten (1, ..., 9) gefunden wird, auf dem der jeweilige Abschnitt (Sil, S12, ..., S27) gespeichert ist.
14. Verfahren nach einem der Ansprüche 10 bis 13, bei dem das Starten des auf dem Prozessabbild (PIl, PI2) basierenden Prozesses in Schritt ii) derart erfolgt, dass das zusammengesetzte Prozessabbild (PIl, PI2) in einen Hauptspeicher des zur Wiederaufnahme des Prozesses vorgesehene Netzknotens (1,
..., 9) geladen wird und anschließend in dem Hauptspeicher aus¬ geführt wird.
15. 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 darstel¬ len .
16. Verfahren nach Anspruch 15, bei dem das technische System ein Energieverteilnetz, insbesondere ein Umspannwerk, um- fasst, wobei die technischen Komponenten insbesondere Schalt¬ einheiten in dem Energieverteilnetz umfassen.
17. Verfahren nach Anspruch 15 oder 16, bei dem das technische System ein Energieerzeugungssystem, insbesondere ein auf Turbinen beruhendes Energieerzeugungssystem, umfasst.
18. Verfahren nach einem der Ansprüche 15 bis 17, bei dem das technische System eine Automatisierungsanlage, insbesondere eine Fertigungsstraße, umfasst.
19. Dezentrales Datennetz, umfassend eine Vielzahl von Netz- knoten (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 Re¬ chenprozesse mit einem Verfahren verwaltet werden, bei dem: a) ein oder mehrere, jeweils auf einem Netzknoten (1, ..., 9) ausgeführte und zu suspendierende Rechenprozesse angehal¬ ten werden und ein Prozessabbild (PIl, PI2) zu jedem an¬ gehaltenen Rechenprozess erzeugt wird; b) das Prozessabbild (PIl, PI2) eines jeweiligen Rechenpro- zesses in Abschnitte (Sil, S12, ..., S27) zerlegt wird; c) die Abschnitte (Sil, S12, ..., S27) des Prozessabbilds
(PIl, PI2) des jeweiligen Rechenprozesses mit Hilfe der Abbildungsvorschrift auf die Netzknoten (1, ..., 9) ver- teilt werden, wodurch ein verteiltes Prozessabbild erzeugt wird.
20. Dezentrales Datennetz nach Anspruch 19, wobei das Datennetz derart ausgestaltet ist, dass ein Verfahren nach einem der Ansprüche 2 bis 18 in dem Datennetz durchführbar ist.
PCT/EP2008/068175 2008-01-08 2008-12-22 Verfahren zur verwaltung von rechenprozessen in einem dezentralen datennetz WO2009087056A1 (de)

Priority Applications (2)

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

Applications Claiming Priority (2)

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
DE102008003500.9 2008-01-08

Publications (1)

Publication Number Publication Date
WO2009087056A1 true WO2009087056A1 (de) 2009-07-16

Family

ID=40532265

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/EP2008/068175 WO2009087056A1 (de) 2008-01-08 2008-12-22 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
WO2013156823A1 (en) * 2012-04-20 2013-10-24 Freescale Semiconductor, Inc. Information processing device and method for protecting data in a call stack
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
US20050114862A1 (en) * 2003-11-21 2005-05-26 Chatschik Bisdikian Adaptive load distribution in managing dynamic and transient data for distributed applications

Family Cites Families (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

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050114862A1 (en) * 2003-11-21 2005-05-26 Chatschik Bisdikian Adaptive load distribution in managing dynamic and transient data for distributed applications

Non-Patent Citations (6)

* Cited by examiner, † Cited by third party
Title
BOZYIGIT M, USER-LEVEL PROCESS CHECKPOINT AND RESTORE FOR MIGRATION, 1 April 2001 (2001-04-01)
DABEK F ET AL: "Wide-area cooperative storage with CFS", PROCEEDINGS OF THE ACM SYMPOSIUM ON OPERATING SYSTEMS PRINCIPLES, XX, XX, vol. 35, no. 5, 21 October 2001 (2001-10-21), pages 202 - 215, XP002298332 *
HITCH L C: "STATUS SAVE/RESTORE/MODIFY OF A UNIT OF WORK", IBM TECHNICAL DISCLOSURE BULLETIN, IBM CORP. NEW YORK, US, vol. 24, no. 8, 1 January 1982 (1982-01-01), pages 4431/4432, XP000199221, ISSN: 0018-8689 *
ION STOICA ET AL: "Chord: A Scalable Peer-to-Peer Lookup Protocol for Internet Applications", IEEE / ACM TRANSACTIONS ON NETWORKING, IEEE / ACM, NEW YORK, NY, US, vol. 11, no. 1, 1 February 2003 (2003-02-01), XP011077215, ISSN: 1063-6692 *
L. C. HITCH: "IBM Technical Disclosure Bulletin", vol. 24, 1 January 1982, IBM CORP., article "Status Save/Restore/Modify of a Unit of Werk", pages: 4431,443
See also references of EP2229627A1 *

Also Published As

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

Similar Documents

Publication Publication Date Title
EP1901191B1 (de) Verfahren und Anordnung zur Verwaltung von Lizenzen
DE102020113347A1 (de) Ausführung von containerisierten prozessen innerhalb der beschränkungen der verfügbaren host-knoten
DE112009000411T5 (de) Verfahren und System zum Implementieren eines virtuellen Speicherpools in einer virtuellen Umgebung
DE102005050304A1 (de) Verfahren und Programm für die Generierung automatisch verteilbarer Clients von Application-Servern
WO1996002883A1 (de) Verfahren zur steuerung von technischen vorgängen oder prozessen
DE102008003500B4 (de) Verfahren zur Verwaltung von Rechenprozessen in einem dezentralen Datennetz
DE102006054090A1 (de) Verfahren zum Ausführen eines Dienstes in einem dezentralen Datennetz
WO2013007349A1 (de) Verfahren und system zur dynamischen verteilung von programmfunktionen in verteilten steuerungssystemen
WO2012022378A1 (de) Verfahren und anordnung zur projektierung und/oder programmierung eines projektes einer industriellen automatisierungsanordnung
WO1990002996A1 (de) Betriebsprogramm für eine datenverarbeitungsanlage
EP3475819B1 (de) Verfahren zur automatischen und dynamischen zuteilung der zuständigkeit für aufgaben an die verfügbaren rechenkomponenten in einem hochverteilten datenverarbeitungssystem
EP3605377A1 (de) Computerimplementiertes verfahren und system zum bereitstellen einer aus blockchains zusammengesetzten hierarchischen blockchain
EP2178267B1 (de) Verfahren zur Ausführung von Diensten in einem dezentralen Datennetz
DE102013108306A1 (de) Verfahren und System zur Synchronisation von Daten
WO2005062172A2 (de) Einrichtung und verfahren zur steuerung und kontrolle von überwachungsdetektoren in einem knoten eines clustersystems
DE10049621A1 (de) Verfahren zum Betreiben eines Datenverarbeitungssystem
WO2008012301A2 (de) Verfahren zum ausführen eines dienstes in einem dezentralen datennetz
EP2051443B1 (de) Verfahren zum Betrieb eines dezentralen Kommunikationsnetzes durch Kategorisierung von Ressourcen
EP1099172A1 (de) Verfahren, anordnung und satz mehrerer anordnungen zur behebung mindestens einer inkonsistenz in einer datenbankmenge, die eine datenbank sowie mindestens eine kopiedatenbank der datenbank aufweist
DE102004017698A1 (de) SCADA-System
DE102015218895A1 (de) Verfahren und Vorrichtung zur Verteilung von Regelleistung
EP3800517A1 (de) Redundantes automatisierungssystem, verfahren zur erstellung eines solchen automatisierungssystems, computerprogramm und computerlesbares medium
DE10250644B4 (de) Austausch und Abgleich von Daten zwischen Applikationen
WO2023031163A1 (de) Computer-implementiertes verfahren und system zur effizienten aufgaben-verteilung an geräte
DE102022125524A1 (de) Verfahren zum Entwerfen von Maschinensystemen

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 08870508

Country of ref document: EP

Kind code of ref document: A1

WWE Wipo information: entry into national phase

Ref document number: 2008870508

Country of ref document: EP

WWE Wipo information: entry into national phase

Ref document number: 12812086

Country of ref document: US

NENP Non-entry into the national phase

Ref country code: DE