-
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.