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.