[go: up one dir, main page]

NL1025169C2 - Process mobility protocol. - Google Patents

Process mobility protocol. Download PDF

Info

Publication number
NL1025169C2
NL1025169C2 NL1025169A NL1025169A NL1025169C2 NL 1025169 C2 NL1025169 C2 NL 1025169C2 NL 1025169 A NL1025169 A NL 1025169A NL 1025169 A NL1025169 A NL 1025169A NL 1025169 C2 NL1025169 C2 NL 1025169C2
Authority
NL
Netherlands
Prior art keywords
incarnation
signal
context
new
gateway
Prior art date
Application number
NL1025169A
Other languages
Dutch (nl)
Inventor
Radmila Erkovic-Pribic
Original Assignee
Thales Nederland Bv
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 Thales Nederland Bv filed Critical Thales Nederland Bv
Priority to NL1025169A priority Critical patent/NL1025169C2/en
Priority to PCT/EP2005/050027 priority patent/WO2005069139A1/en
Application granted granted Critical
Publication of NL1025169C2 publication Critical patent/NL1025169C2/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/485Task life-cycle, e.g. stopping, restarting, resuming execution
    • G06F9/4856Task life-cycle, e.g. stopping, restarting, resuming execution resumption being on a different machine, e.g. task migration, virtual machine migration
    • G06F9/4862Task life-cycle, e.g. stopping, restarting, resuming execution resumption being on a different machine, e.g. task migration, virtual machine migration the task being a mobile agent, i.e. specifically designed to migrate

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer And Data Communications (AREA)

Description

ProcesmoblllteitsprotocolProcess mobility protocol

Deze uitvinding heeft betrekking op technieken voor mobiele verwerking en kan met name toegepast worden op real-time systemen.This invention relates to mobile processing techniques and can in particular be applied to real-time systems.

5 Mobiele verwerking houdt in: de migratie van processen van een bronknooppunt (bijvoorbeeld een machine) naar een doelknooppunt De migratie vindt niet werkelijk plaats, maar wordt nagebootst: een nieuw proces wordt gecreëerd op het doelknooppunt en, nadat de context van het proces op het bronknooppunt is gekopieerd, wordt het proces op het bronknooppunt 10 afgebroken. Het netto effect is echter dat de verwerking van een hoeveelheid data is verplaatst van bron- naar doelknooppunt.5 Mobile processing means: the migration of processes from a source node (for example a machine) to a target node The migration does not actually take place, but is simulated: a new process is created at the target node and, after the context of the process on the source node is copied, the process on the source node 10 is aborted. However, the net effect is that the processing of a quantity of data has been moved from source to target node.

Een proces dat wordt uitgevoerd op een knooppunt wordt een "incarnatie" genoemd. Het proces op het bronknooppunt is de "oude 15 incarnatie". Het proces op het doelknooppunt heet de "nieuwe incarnatie".A process performed on a node is called an "incarnation." The process at the source node is the "old incarnation". The process at the target node is called the "new incarnation".

De vereisten voor procesmigratie zijn dat de huidige status van het proces op het bronknooppunt overgezet kan worden naar het doelknooppunt, zodanig dat de nieuwe incarnatie op het doelknooppunt kan doorgaan met 20 verwerken. Dit betekent dat niet alleen het proces moet worden gekopieerd op het doelknooppunt, maar dat ook een momentopname van de huidige inhoud ervan moet worden geïnstalleerd. Vervólgens moet de nieuwe incarnatie van het proces in dezelfde status gebracht worden als waarin de oude incarnatie zich bevond. Tenslotte moet de oude incarnatie worden 25 afgebroken, terwijl de nieuwe incarnatie aangezet wordt om door te gaan vanaf het punt waar de oude incarnatie gestopt was.The requirements for process migration are that the current state of the process on the source node can be transferred to the target node, such that the new incarnation on the target node can continue processing. This means that not only must the process be copied at the target node, but a snapshot of its current content must also be installed. Then the new incarnation of the process must be brought to the same status as the old incarnation. Finally, the old incarnation must be aborted, while the new incarnation is turned on to continue from the point where the old incarnation was stopped.

Een besturingssysteem (OS) houdt de status en context bij van elk proces dat in uitvoering is en voert scheduling-taken uit. Tot de taken van 30 een OS behoort echter niet het verplaatsen van een proces van knooppunt naar knooppunt. Immers, OS-en zijn hardware-georiënteerd. De notatie, met name, van context en status verschilt per OS. OS-en van hetzelfde merk maar van een verschillende release, of zelfs OS-en van hetzelfde merk en van dezelfde release maar bedoeld voor verschillende hardwaresystemen '25169 2 kunnen essentiële verschillen vertonen. Met andere woorden, OS-en ontberen het vermogen tot samenwerking en code-overdracht dat nodig is voor het implementeren van mobiele verwerking tussen verschillende systemen.An operating system (OS) keeps track of the status and context of every process that is in progress and performs scheduling tasks. However, the tasks of an OS do not include moving a process from node to node. After all, OS and are hardware oriented. The notation, in particular, of context and status differs per OS. OSs of the same brand but of a different release, or even OSs of the same brand and of the same release but intended for different hardware systems' 25169 2 can have essential differences. In other words, OS and lack the ability to collaborate and code transfer that is required to implement mobile processing between different systems.

55

Conventionele systemen voor mobiele verwerking, zoals die welke toegepast worden in agent-based systemen, hebben een zogenaamde virtuele machine (VM) nodig voor het implementeren van procesmobiliteit. De VM is een vertaler, die een instructieset levert, een set registers, een 10 collected-garbage heap en een voor het proces bruikbaar geheugen. De VM interpreteert de code van de processen en beheert zodoende de status en context voor deze processen. De VM regelt tevens de uitvoering van de processen. Het is betrekkelijk gemakkelijk om de status en context van een proces in dergelijke gevallen te bevriezen en te vervoeren. Met andere 15 woorden, het gebruik van virtuele machines maakt procesmobiliteit mogelijk tussen verschillende OS-en.Conventional mobile processing systems, such as those used in agent-based systems, require a so-called virtual machine (VM) for implementing process mobility. The VM is a translator, which supplies an instruction set, a set of registers, a collected garbage heap and a memory that can be used for the process. The VM interprets the code of the processes and thus manages the status and context for these processes. The VM also controls the execution of the processes. It is relatively easy to freeze and transport the status and context of a process in such cases. In other words, the use of virtual machines makes process mobility possible between different OSs.

Er zijn echter grote nadelen. Met name is het dienstenpakket van een VM beperkt in vergelijking met de diensten die de OS-en zelf leveren. De 20 processen, met andere woorden, zijn gebonden aan de diensten die deVM biedt. VM's voorzien bijvoorbeeld slechts in één specifieke vorm van gedeeld geheugen of kennen helemaal geen gedeeld geheugen. Aangezien de VM's gebruik maken van een abstractielaag, voeren deze bovendien hun eigen scheduling, threading enz. uit. Daarom worden scheduling, threading en 25 real-time gedrag op procesniveau niet ondersteund. Tenslotte wordt de interprocescommunicatie (IPC) gewoonlijk niet ondersteund door de VM's.There are, however, major drawbacks. In particular, the service package of a VM is limited in comparison with the services that the OS itself provide. The 20 processes, in other words, are tied to the services that theVM offers. For example, VMs only provide one specific form of shared memory or have no shared memory at all. Moreover, since the VMs use an abstraction layer, they also perform their own scheduling, threading, etc. Therefore, scheduling, threading and 25 real-time behavior at process level are not supported. Finally, the inter-process communication (IPC) is usually not supported by the VMs.

Een ander nadeel is dat het gebruik van een VM vereist dat processen er op afgestemd zijn (bijvoorbeeld, JAVA VM, JADE platform...).Another disadvantage is that the use of a VM requires processes to be tuned to it (for example, JAVA VM, JADE platform ...).

30 Daardoor is de mobiliteit beperkt tot processen op de VM en andere (tot samenwerken in staat zijnde) VM's op verschillende knooppunten.30 As a result, mobility is limited to processes on the VM and other (capable of collaborating) VMs at different nodes.

Er zijn nog meer nadelen: - een VM is niet geschikt voor tijd-en veiligheidskritische systemen, 35 - een VM is niet geschikt voor real-time systemen, 025169 ' 3 - de voornaamste resources van een knooppunt zijn moeilijk vanuit de VM te bereiken.There are even more disadvantages: - a VM is not suitable for time and safety-critical systems, 35 - a VM is not suitable for real-time systems, 025169 '3 - the main resources of a node are difficult to reach from the VM.

Zoals blijkt uit de hieronder en in de conclusies beschreven 5 eigenschappen, is de uitvinding bedoeld om de bovengenoemde nadelen te elimineren. Met name is de uitvinding erop gericht om een proces veilig te verplaatsen tussen verschillende knooppunten (bijvoorbeeld, verschillende machines met verschillende OS-en), zonder de beperkingen van een VM.As is apparent from the features described below and in the claims, the invention is intended to eliminate the above disadvantages. In particular, the invention is directed to safely move a process between different nodes (e.g., different machines with different OSs), without the limitations of a VM.

10 Om dit doel te bereiken en tevens andere, hierna toe te lichten voordelen te realiseren, voorziet de uitvinding speciaal in een werkwijze voor het bevorderen van de procesmobiliteit. De uitvinding wordt geïmplementeerd in portaalprocessen, zogenaamde gateways. Volgens een kenmerk van de uitvinding transporteren de gateways de mobiele· 15 procescontext (de oude incarnatie) van het ene naar het nadere knooppunt. Daartoe zorgen de proces-gateways voor het opstarten, op verschillende knooppunten, van equivalente processen die gemakkelijk toegang kunnen krijgen tot de resources van het knooppunt en waarvan de context is afgestemd op de hardware en het OS van het knooppunt. De proces-20 gateways zijn betrokken bij de uitwisseling van de noodzakelijke contextinformatie, om een equivalente context te reconstrueren voor de nieuwe incarnatie.In order to achieve this goal and also to realize other advantages, which will be explained below, the invention specifically provides a method for promoting process mobility. The invention is implemented in portal processes, so-called gateways. According to a feature of the invention, the gateways transport the mobile process context (the old incarnation) from one to the further node. To this end, the process gateways ensure, at different nodes, equivalent processes that can easily access the resources of the node and whose context is tailored to the hardware and OS of the node. The process gateways are involved in the exchange of the necessary context information to reconstruct an equivalent context for the new incarnation.

Meer in het bijzonder is het een doel van de uitvinding om een 25 werkwijze te realiseren voor het verplaatsen van een proces van een bronknooppunt naar een doelknooppunt, waarbij: - een oude incarnatie van het proces (3), die in uitvoering is op het bronknooppunt, de eigen context in een frame (13) opslaat; - een nieuwe incarnatie van het proces (4) gestart wordt op het 30 doelknooppunt, welke nieuwe incarnatie (4) de status "gereed" heeft; - een rechtstreekse communicatie (21) tot stand wordt gebracht tussen de oude incarnatie (3) en de nieuwe incarnatie (4) van het proces, waarin de opgeslagen context verzonden wordt van de oude incarnatie naar de nieuwe incarnatie; 251 69 4 - de nieuwe incarnatie met verwerken begint (24), gebruikmakend van de ontvangen context.More in particular, it is an object of the invention to realize a method for moving a process from a source node to a target node, wherein: - an old incarnation of the process (3) in progress on the source node , stores its own context in a frame (13); - a new incarnation of the process (4) is started at the target node, which new incarnation (4) has the status "ready"; - a direct communication (21) is established between the old incarnation (3) and the new incarnation (4) of the process, in which the stored context is sent from the old incarnation to the new incarnation; 251 69 4 - the new incarnation with processing begins (24), using the received context.

De voornaamste voordelen van de uitvinding zijn dat de processen 5 gemakkelijk toegang kunnen krijgen tot systeem-resources en andere processen, dat de procesmobiliteitswerkwijze kan voldoen aan de veiligheids- en beschermings-constraints en dat samenwerking mogeiijk is in een hybride netwerk.The main advantages of the invention are that the processes can easily gain access to system resources and other processes, that the process mobility method can comply with the safety and protection constraints and that cooperation is possible in a hybrid network.

10 De werkwijze volgens de uitvinding kan worden toegepast om de j werkbelasting in een systeem evenwichtig te houden. Processen brengen immers een werkbelasting met zich mee op het knooppunt waarop zij worden uitgevoerd en te veel belasting op een knooppunt kan de uitvoering van de processen hinderen, met name wanneer er sprake is van tijdkritische i 15 processen. Mobiele verwerking is een manier om de belasting in balans te houden, door processen van overbelaste knooppunten over te brengen naar knooppunten met voldoende capaciteit en lage belasting.The method according to the invention can be used to keep the workload in a system balanced. After all, processes entail a workload at the node at which they are executed and too much load at a node can hinder the execution of the processes, in particular when there are time-critical processes. Mobile processing is a way to keep the load in balance by transferring processes from overloaded nodes to nodes with sufficient capacity and low load.

In een gunstige uitvoeringsvorm slaat de oude incarnatie de eigen 20 context regelmatig op, op vooraf bepaalde synchronisatiepunten, welke context ingepakt wordt in een frame na ontvangst van een signaal van een bron-gateway.In a favorable embodiment, the old incarnation regularly saves its own context at predetermined synchronization points, which context is wrapped in a frame after receiving a signal from a source gateway.

In een andere gunstige uitvoeringsvorm bevat de context de 25 inhoud van het geheugen en de status van het proces.In another favorable embodiment, the context contains the contents of the memory and the status of the process.

in een andere gunstige uitvoeringsvorm wordt de nieuwe incarnatie gestart na ontvangst van een signaal van de doel-gateway.in another favorable embodiment, the new incarnation is started after receiving a signal from the target gateway.

30 In een andere gunstige uitvoeringsvorm wordt het signaal voor de start van de nieuwe incarnatie verzonden na ontvangst van een signaal van de bron-gateway.In another favorable embodiment, the signal for the start of the new incarnation is sent after receiving a signal from the source gateway.

251 69 5251 69 5

In een andere gunstige uitvoeringsvorm wordt de rechtstreekse communicatie tot stand gebracht door middel van een Socket, het poortnummer waarvan: - door de nieuwe incarnatie gezonden wordt naar de doel-gateway, en 5 vervolgens - door de doel-gateway gezonden wordt naar de bron-gateway, en vervolgens - door de bron-gateway gezonden wordt naar de oude incarnatie.In another favorable embodiment, the direct communication is established by means of a socket, the port number of which: - is sent to the target gateway by the new incarnation, and subsequently - is sent by the target gateway to the source gateway. gateway, and then - is sent by the source gateway to the old incarnation.

10 In een andere gunstige uitvoeringsvorm, zijn de oude en nieuwe incarnaties multi-threaded processen.In another favorable embodiment, the old and new incarnations are multi-threaded processes.

In een andere gunstige uitvoeringsvorm slaat elke thread van de oude incarnatie de eigen context op, waarbij een van deze threads een 15 hoofd-thread is en de opgeslagen contexten door de hoofd-thread ingepakt worden in één enkel frame.In another favorable embodiment, each thread of the old incarnation stores its own context, one of these threads being a main thread and the stored contexts being packed into a single frame by the main thread.

De uitvinding zal nu worden beschreven op een meer gedetailleerde wijze, aan de hand van een speciale praktijkuftvoeringsvorm 20 als voorbeeld. In deze beschrijving zal worden verwezen naar de aangehechte Afbeeldingen, waarvan: - Afbeelding 1 een tijddiagram is van een voorbeeld van de implementatie van een procesmobiliteitswerkwijze volgens de uitvinding; - Afbeeldingen 2a en 2d tijddiagrammen zijn van een voorbeeld van een 25 implementatie van een multi-threaded variatie van de werkwijze.The invention will now be described in a more detailed manner, with reference to a special embodiment 20 as an example. In this description, reference will be made to the attached Images, of which: - Figure 1 is a time diagram of an example of the implementation of a process mobility method according to the invention; - Images 2a and 2d are time diagrams of an example of an implementation of a multi-threaded variation of the method.

Beschouw eerst Afbeelding 1. Volgens de uitvinding worden synchronisatiepunten toegevoegd aan de mobiele processen. Een synchronisatiepunt 5 is een stap waarin het proces (oude incarnatie) 30 informatie opslaat, zoals de inhoud van zijn geheugen en zijn status. Deze informatie is vergelijkbaar met de informatie die opgeslagen wordt door een debugger die een core dump file genereert.Consider first Figure 1. According to the invention, synchronization points are added to the mobile processes. A synchronization point 5 is a step in which the process (old incarnation) 30 stores information, such as the contents of its memory and its status. This information is comparable to the information stored by a debugger that generates a core dump file.

Om de procesmobiliteitswerkwijze uit te voeren, zendt het 35 gateway-proces 1, dat in uitvoering is op het bronknooppunt een "verplaats" 125169 6 signaal 6 naar het proces 3 (oude incarnatie) dat op diens knooppunt in uitvoering is. Voor de duidelijkheid wordt het gateway-proces 1 dat in uitvoering is op het bronknooppunt aangeduid als de bron-gateway.To execute the process mobility method, the gateway process 1 in progress sends a "move" 125169 signal 6 at the source node to the process 3 (old incarnation) that is in progress at its node. For the sake of clarity, the gateway process 1 in progress at the source node is referred to as the source gateway.

5 De bron-gateway 1 zendt ook een "start proces" signaal 8 naar het gateway-proces 2 dat op het doelknooppunt in uitvoering is. Voor de duidelijkheid wordt het gateway-proces 2 dat in uitvoering is op het doelknooppunt aangeduid als de doel-gateway. Het "verplaats" signaal 6 en het "start proces” signaal 8 kunnen bijvoorbeeld worden gerealiseerd door 10 middel van onderbrekingen. Het "verplaats" signaal 6 kan worden verzonden na of voor het "start proces" signaal 8. Het “verplaats" signaal 6 kan een Interrupt zijn. Het “start proces” signaal 8 zal met grote waarschijnlijkheid in de vorm van een bericht worden gegoten, dat specifieke informatie bevat (pad, argumenten, omgeving) van het te starten proces.The source gateway 1 also sends a "start process" signal 8 to the gateway process 2 that is in progress at the target node. For the sake of clarity, the gateway process 2 in progress at the target node is referred to as the target gateway. For example, the "move" signal 6 and the "start process" signal 8 can be realized by means of interruptions 10. The "move" signal 6 can be sent after or before the "start process" signal 8. The "move" signal 6 can be an Interrupt. The "start process" signal 8 will most likely be cast in the form of a message containing specific information (path, arguments, environment) of the process to be started.

1515

Het "verplaats" signaal 6 initieert stappen 7,13 en 14, die uitgevoerd worden door de oude incarnatie om een frame te construeren. In concreto, wanneer de oude incarnatie 3 het "verplaats" signaal 6 ontvangt, komt deze in een wachtstatus 7. Alle bewerkingen uitgevoerd tussen het 20 laatste synchronisatiepunt 5 en de ontvangst van het "verplaats” signaal 7 gaan verloren. Vervolgens voert de oude incarnatie een stap 13 uit, het zogenaamde inpakken van de context, waarbij deze een frame construeert dat de informatie bevat die op het laatste synchronisatiepunt werd opgeslagen. Aan het eind van het context-inpakken 13, zendt het proces een 25 "einde" signaal 14 naar de bron-gateway 1, om aan te geven dat het klaar is met het inpakken 13 van de context. Dit "einde" signaal wordt vervolgens door de bron-gateway 1 doorgegeven aan de doel-gateway 2 door middel van een "hold" signaal 15. Volgens een andere implementatie (niet getoond), wordt het "hoid” signaal 15 rechtstreeks door de oude incarnatie verzonden 30 naar de doel-gateway.The "move" signal 6 initiates steps 7, 13 and 14, which are performed by the old incarnation to construct a frame. Specifically, when the old incarnation 3 receives the "move" signal 6, it enters a wait state 7. All operations performed between the last synchronization point 5 and the reception of the "move" signal 7 are lost. a step 13, the so-called context wrapping, constructing a frame containing the information stored at the last synchronization point At the end of the context wrapping 13, the process sends an "end" signal 14 to the source gateway 1, to indicate that it has finished packing the context 13. This "end" signal is then passed on from the source gateway 1 to the target gateway 2 by means of a "hold" signal 15. According to another implementation (not shown), the "hoid" signal 15 is sent directly to the target gateway through the old incarnation.

Het "start proces" signaal 8 is een verzoek om een identiek proces 4 te starten op het doelknooppunt. Dit nieuwe proces 4 (nieuwe incarnatie) start echter bij nul. De doel-gateway 2 kan de nieuwe incarnatie storten (9) 35 door bijvoorbeeld gebruik te maken van de Fork/Exec instructie in Unix. Als )25169 - 7 de nieuwe incarnatie start, voert deze een registratie 10 uit via het OS. Deze registratie vertelt het OS dat het nieuwe proces er een is van het nieuwe-incarnatietype. Met andere woorden, de nieuwe incarnatie meldt zich als mobiel. De registratie houdt een lokale interactie in met de doei- (lokale) 5 gateway 2.The "start process" signal 8 is a request to start an identical process 4 at the target node. However, this new process 4 (new incarnation) starts at zero. The target gateway 2 can deposit the new incarnation (9) by, for example, using the Fork / Exec instruction in Unix. When 25169-7 starts the new incarnation, it performs a registration 10 via the OS. This registration tells the OS that the new process is one of the new incarnation type. In other words, the new incarnation appears as a mobile. The registration involves a local interaction with the target (local) 5 gateway.

De registratie 10 van de nieuwe incarnatie omvat bijvoorbeeld de volgende stappen: 1. Installatie van inpakfüncties.The registration of the new incarnation comprises, for example, the following steps: 1. Installation of packing functions.

10 2. Installatie van herstelfuncties.10 2. Installation of recovery functions.

3. Installatie van uitpakfuncties.3. Installation of unpacking functions.

De inpakfüncties zijn de functies die gebruikt worden voor het inpakken 13 van de context.The wrapping functions are the functions used for wrapping the context.

1515

De herstelfuncties zijn ingangspunten die het proces in staat stellen de uitvoering op te pakken vanuit een gegeven processtatus. Deze gegeven processtatus is de op een voorbeschreven synchronisatiepunt (bijvoorbeeld synchronisatiepunt 5) opgeslagen processtatus.The recovery functions are entry points that enable the process to take on execution from a given process status. This given process status is the process status stored at a predetermined synchronization point (e.g. synchronization point 5).

2020

De uitpakfuncties voeren de omgekeerde handeling uit van de inpakfüncties. Uit een ingepakte context construeren deze een bruikbare proceslooptijdcontext. De uitpakfuncties worden gebruikt indien het proces een nieuwe incarnatie blijkt te zijn.The unpacking functions perform the reverse operation of the packing functions. From a packed context, they construct a useful process duration context. The unpacking functions are used if the process turns out to be a new incarnation.

2525

Voor het uitvoeren van de installatie van de inpak/herstel/uitpakfuncties worden de locaties van de functies voor het proces opgeslagen in, bijvoorbeeld, een sprongtabel.To perform the installation of the packing / repair / unpacking functions, the locations of the functions for the process are stored in, for example, a jump table.

30 Volgens een voorkeursuitvoeringsvorm zijn de tijdens de registratiestap 10 geïnstalleerde functies handlers. Een handler is een functie die door het OS bij specifieke gebeurtenissen wordt opgeroepen, zoals een uitzondering X of een signaal Y. Indien de uitzondering X zich voordoet of het signaal Y wordt naar het proces gezonden, onderbreekt het OS onmiddellijk 35 de uitvoering van het proces en roept de geëigende handler op. De installatie 125169 8 van een handler gebeurt gewoonlijk in de vorm van een systeemoproep, die de default bandier van het OS overschrijft.According to a preferred embodiment, the functions installed during the recording step 10 are handlers. A handler is a function that the OS invokes in specific events, such as an exception X or a signal Y. If the exception X occurs or the signal Y is sent to the process, the OS immediately interrupts the execution of the process and calls the appropriate handler. The installation 125169 8 of a handler usually takes the form of a system call, which overrides the OS's default bandier.

Doordat deze uitvoeringsvorm voor de interprocescommunicatie 5 en -synchronisatie gebruikt maakt van laag-niveau interrupts (signalen), kan de uitvinding real-time scheduling-kwesties hanteren. Deze laag-niveau interrupts kunnen alleen worden gegenereerd op het niveau van een host (d.w.z., op het lokale knooppunt) en niet op het niveau van een netwerk.Because this embodiment uses low-level interrupts (signals) for inter-process communication and synchronization, the invention can handle real-time scheduling issues. These low-level interrupts can only be generated at the level of a host (i.e., at the local node) and not at the level of a network.

10 In sommige OS-en zijn handlers "vluchtig”, hetgeen betekent dat het OS de default handler opnieuw installeert voorafgaand aan het oproepen van de handler. Dit kan ongedaan gemaakt worden door het herinstalleren van een door gebruiker gedefinieerde handler voor, bijvoorbeeld, signaal Y bij het afsluiten van de handler-functie voor signaal Y.In some OSs, handlers are "volatile," meaning that the OS re-installs the default handler prior to calling the handler. This can be undone by reinstalling a user-defined handler for, for example, signal Y when closing the handler function for signal Y.

1515

Tijdens de registratie 10 kan de nieuwe incarnatie ook een bericht zenden aan de doel-gateway, om die gateway te informeren dat het proces mobiel is. Na ontvangst van het bericht met de informatie dat het proces mobiel is, zendt de lokale gateway een antwoord. Het antwoord kan 20 een bevestiging zijn, of een token die het proces aanmerkt als een nieuwe incarnatie. Volgens een andere uitvoeringsvorm kan het proces het feit dat er sprake is van een nieuwe incarnatie afleiden uit een vlag in de context ervan, die opgezet is tijdens de start 9 actie. Met andere woorden, het proces ontvangt deze informatie niet van de gateway: in plaats daarvan controleert 25 het zijn context.During registration 10, the new incarnation can also send a message to the target gateway to inform that gateway that the process is mobile. After receiving the message with the information that the process is mobile, the local gateway sends a response. The answer can be a confirmation, or a token that marks the process as a new incarnation. According to another embodiment, the process can deduce the fact that there is a new incarnation from a flag in its context set up during the start 9 action. In other words, the process does not receive this information from the gateway: instead, it checks its context.

Ongeacht het algoritme zal het proces, aan het eind van de registratie 10, weten of er wel of niet sprake Is van een nieuwe incarnatie van een migrerend proces (geïdentificeerd door een bevestiging van de gateway 30 of een vlag in zijn context). Indien een proces geen nieuwe incarnatie is, start het een normale uitvoering. Indien het proces een nieuwe incarnatie blijkt te zijn, gaat het naar een voorbereidingsstap 11.Regardless of the algorithm, at the end of registration 10, the process will know whether or not there is a new incarnation of a migrating process (identified by a confirmation from the gateway 30 or a flag in its context). If a process is not a new incarnation, it starts a normal execution. If the process turns out to be a new incarnation, it goes to a preparation step 11.

Tijdens de voorbereidingsstap 11 bereidt de nieuwe incarnatie 4 35 zich voor op het ontvangen van de ingepakte context (frame gegenereerd 151 69 9 door de oude incarnatie). Onderdeel van de voorbereidingsstap 11 is, dat de nieuwe incarnatie het OS om een socket (communicatiemiddel) verzoekt.During the preparation step 11, the new incarnation 4 prepares for receiving the packed context (frame generated 151 69 9 by the old incarnation). Part of the preparation step 11 is that the new incarnation requests the OS for a socket (means of communication).

De voorbereidingsstap 11 omvat bijvoorbeeld de volgende 5 stappen: 1. De nieuwe incarnatie verzoekt om een socket, gebruikmakend van door het OS beschikbaar gestelde systeemoproepen.The preparation step 11 comprises, for example, the following 5 steps: 1. The new incarnation requests a socket, using system calls made available by the OS.

2. Het poortnummer van de toegewezen socket wordt door de nieuwe incarnatie in een bericht aan de doel-gateway gezonden.2. The new incarnation sends the port number of the assigned socket to the target gateway in a message.

10 3. De nieuwe incarnatie gaat naar een houdlus, wacht op een "luister*’ signaal 16 en gaat dan luisteren via de toegewezen socket.3. The new incarnation goes to a hold loop, waits for a "listen *" signal 16 and then starts listening through the assigned socket.

Volgens een andere uitvoeringsvorm gaat de nieuwe incarnatie niet naar een houdlus, maar gaat meteen luisteren na het bericht 15 (poortnummer) naar de doel-gateway gezonden te hebben.According to another embodiment, the new incarnation does not go to a hold loop, but starts listening immediately after having sent the message (port number) to the target gateway.

Wanneer de nieuwe incarnatie klaar is met de registratie 10 en voorbereidingsstap 11, zendt deze een "hold" signaal 12 terug naar de doel-gateway 2. Dit "hold" signaal 12 geeft aan dat de nieuwe incarnatie de status 20 "gereed" heeft en wacht op het tot stand brengen van een communicatie. Dit "hold” signaal 12 kan het adres bevatten van de door de nieuwe incarnatie verlangde socket.When the new incarnation has finished recording 10 and preparation step 11, it sends a "hold" signal 12 back to the target gateway 2. This "hold" signal 12 indicates that the new incarnation has the status 20 "ready" and wait for communication to be established. This "hold" signal 12 may contain the address of the socket required by the new incarnation.

De doel-gateway 2 wacht op beide "hold” signalen 12 en 15. Als 25 beide signalen zijn ontvangen, zendt de doel-gateway 2 het "luister** signaal 16 naar de nieuwe incarnatie. De nieuwe incarnatie is dan in een luistermodus 17. De doel-gateway 2 zendt ook een "start uitzending" signaal 18 naar de the bron-gateway. Het "start uitzending” signaal 18 kan het adres bevatten van de door de nieuwe incarnatie verlangde socket. Het "start 30 uitzending” signaal 18 wordt door de bron-gateway 1 doorgegeven aan de oude incarnatie door middel van een "zend" signaal 19. Dit "zend" signaal 19 kan worden gebruikt om het adres van de socket te verzenden.The target gateway 2 waits for both "hold" signals 12 and 15. When both signals are received, the target gateway 2 sends the "listen ** signal 16" to the new incarnation. The new incarnation is then in a listening mode 17. The target gateway 2 also sends a "start broadcast" signal 18 to the source gateway. The "start broadcast" signal 18 may contain the address of the socket required by the new incarnation The "start 30 broadcast" signal 18 is transmitted by the source gateway 1 to the old incarnation by means of a "send" signal 19. This "send" signal 19 can be used to send the address of the socket.

Volgens een voorkeursuitvoeringsvorm, komt de oude incarnatie, 35 na beëindiging van het contextinpakken 13, in een houdlus, waarin deze de 0251 69 10 bron-gateway blijft verzoeken om het poortnummer van de toegewezen socket. Elk verzoek wordt door de bron-gateway doorgegeven aan de doel-gateway. Wanneer de nieuwe incarnatie erin geslaagd is het verzoek om een socket ingewilligd te krijgen en dit aan de doel-gateway te berichten, zal de 5 doel-gateway reageren door het juiste poortnummer naar de bron-gateway te verzenden. Op zijn beurt zal de bron-gateway reageren op het verzoek van de oude incarnatie door dit poortnummer af te geven. Het poortnummer kan opgenomen zijn in het “zend” signaal 19. Het "zend" signaal kan ook het poortnummer zelf zijn. Indien de nieuwe incarnatie nog niet klaar is met het 10 vragen om een socket en het in kennis stellen van de doel-gateway, reageert de doel-gateway met een speciaal “nog niet klaar" antwoord aan de bron-gateway, die hetzelfde antwoord zal geven aan de oude incarnatie. Dit “nog niet klaar” antwoord initieert weer een iteratie van de houdlus van de oude incarnatie.According to a preferred embodiment, the old incarnation, after termination of the context packing 13, enters a holding loop in which it continues to request the source gateway for the port number of the assigned socket. Each request is passed on to the target gateway by the source gateway. When the new incarnation has succeeded in getting the request for a socket granted and notifying the target gateway, the target gateway will respond by sending the correct port number to the source gateway. In turn, the source gateway will respond to the request of the old incarnation by issuing this port number. The port number can be included in the "send" signal 19. The "send" signal can also be the port number itself. If the new incarnation has not yet finished asking for a socket and notifying the target gateway, the target gateway responds with a special "not yet ready" response to the source gateway, which will provide the same answer give to the old incarnation This "not ready" answer again initiates an iteration of the holding loop of the old incarnation.

1515

Na het ontvangen van het poortnummer is de oude incarnatie 3 in een zendmodus en gebruikt de door de nieuwe incarnatie gevraagde socket om een rechtstreekse communicatie 21 tot stand te brengen met de nieuwe incarnatie. Tijdens deze communicatie 21 wordt de ingepakte context 20 verzonden (geformatteerde transmissie). Wanneer de context verzonden is, zendt de nieuwe incarnatie een "klaar" signaal 22 naarde doel-gateway.After receiving the port number, the old incarnation 3 is in a transmitting mode and uses the socket requested by the new incarnation to establish a direct communication 21 with the new incarnation. During this communication 21, the packed context 20 is sent (formatted transmission). When the context is sent, the new incarnation sends a "ready" signal 22 to the target gateway.

Een proprietary bibliotheek kan bijvoorbeeld de middelen verschaffen voor het inpakken van de context 13 en het zenden en 25 ontvangen van de ingepakte context 21. Het formaat is niet van belang.For example, a proprietary library can provide the means for packing the context 13 and sending and receiving the packed context 21. The format is not important.

Na ontvangst van het "klaar” signaal 22, zendt de doel-gateway een "ga door” signaal 23 aan de nieuwe incarnatie en een "klaar" signaal 25 naar de oude incarnatie. Het "ga door” signaal 23 maakt dat de nieuwe 30 incarnatie begint met verwerken, gebruikmakend van de in de ingepakte context gezonden informatie. Met andere woorden, de nieuwe incarnatie hervat het bewerken op het laatste synchronisatiepunt 7 van de oude incarnatie.After receiving the "ready" signal 22, the target gateway sends a "go through" signal 23 to the new incarnation and a "ready" signal 25 to the old incarnation. The "continue" signal 23 causes the new incarnation to begin processing, using the information sent in the packed context. In other words, the new incarnation resumes processing at the last synchronization point 7 of the old incarnation.

251 69 11251 69 11

De nieuwe incarnatie heeft synchronisatiepunten, zoals punt 28, die deze in staat stellen zich weer naar een ander knooppunt te verplaatsen door middel van dezelfde werkwijze.The new incarnation has synchronization points, such as point 28, which enable them to move to another node again by the same method.

5 Het "klaar" signaal 25 wordt door de bron-gateway doorgegeven aan de oude incarnatie door middel van een "breek af signaal 26. Dit "breek af signaal stopt de uitvoering 27 van de oude incarnatie. Het "breek af signaal initieert een beëindigfunctie in de oude incarnatie, waardoor deze op een beheerste manier een aantal deregistratie-activiteiten kan uitvoeren, een 10 aantal systeem-resources vrijgeven enz.The "ready" signal 25 is passed through the source gateway to the old incarnation by means of a "break off signal 26. This" break off signal stops the execution 27 of the old incarnation. The "abort signal" initiates a termination function in the old incarnation, allowing it to perform a number of deregistration activities in a controlled manner, release a number of system resources, etc.

Volgens een andere uitvoeringsvorm kan de oude incarnatie worden gestopt door een afbreeksignaal van het OS. Een beheerst soort beëindiging (d.w.z., met een beëindigfunctie) verdient de voorkeur boven een 15 dergelijke geforceerde beëindiging. De oude incarnatie kan immers nog steeds verbonden zijn met een aantal soortgelijke elementen in de gedistribueerde omgeving, kan in het bezit zijn van een aantal handles enz. aangezien zij onderbroken was midden in de werkzaamheden (op het laatste synchronisatiepunt voor het "verplaats” signaal 6).According to another embodiment, the old incarnation can be stopped by a cancellation signal from the OS. A controlled type of termination (i.e., with a termination function) is preferable to such a forced termination. The old incarnation may after all still be connected to a number of similar elements in the distributed environment, may be in possession of a number of handles, etc. since it was interrupted in the middle of the work (at the last synchronization point for the "move" signal 6 ).

2020

Verwezen wordt nu naar Afbeelding 2a, waarin de in relatie tot Afbeelding 1 beschreven werkwijze is aangepast aan een multi-threaded proces. In dit voorbeeld van een implementatie, meldt elke thread zich afzonderlijk en pakt elke thread zijn eigen context in en uit.Reference is now made to Figure 2a, in which the method described in relation to Figure 1 is adapted to a multi-threaded process. In this example of an implementation, each thread logs on individually and packs and unpacks its own context.

2525

De bron-gateway zendt "verplaats" signaal 6 naar de hoofd-thread 3a. Wanneer de hoofd-thread 3a het "verplaats” signaal 6 ontvangt, onderbreekt deze de sub-threads 3b en 3c en onderbreekt tevens zichzelf. Alle threads zijn dan in een wachtstatus, hetgeen wil zeggen dat alle 30 verwervingsactiviteiten stilgelegd zijn. Elke thread 3a, 3b, 3c van de oude incarnatie heeft een eigen synchronisatiepunt 5a, 5b, 5c. Alle verwerkingen die uitgevoerd worden tussen elk synchronisatiepunt en de ontvangst van het "verplaats" signaal 6 gaan verloren.The source gateway sends "move" signal 6 to main thread 3a. When the main thread 3a receives the "move" signal 6, it interrupts the sub-threads 3b and 3c and also interrupts itself. All threads are then in a waiting state, meaning that all acquisition activities have been stopped. Each thread 3a, 3b, 3c of the old incarnation has its own synchronization point 5a, 5b, 5c All processing carried out between each synchronization point and the reception of the "move" signal 6 are lost.

ï 51 69 12ï 51 69 12

Vervolgens pakt elke thread de eigen context in. In concreto pakt elke sub-thread 3b, 3c zijn eigen lokale context 13b, 13c in en sluit af (stopt met uitvoeren) 27b, 27c. De hoofd-thread pakt zijn eigen lokale context 13a in en pakt de globale context van de oude incarnatie in. De globale context 5 kan bijvoorbeeld een sequentie zijn van de ingepakte contexten 13b, 13c, 13a, zoals geïllustreerd in Afbeelding 2a. Wanneer het inpakken van de (globale) context voltooid is, zendt de hoofd-thread een "einde" signaal 14 naar de bron-gateway, om aan te geven dat het inpakken van de globale context klaar is. Zoals eerder beschreven wordt vervolgens het "einde" 10 signaal doorgegeven aan de doel-gateway door middel van een "hold” signaal 15.Each thread then wraps its own context. Specifically, each sub-thread 3b, 3c packs its own local context 13b, 13c and closes (stops executing) 27b, 27c. The main thread wraps its own local context 13a and wraps the global context of the old incarnation. The global context 5 can be, for example, a sequence of the packed contexts 13b, 13c, 13a, as illustrated in Figure 2a. When the wrapping of the (global) context is complete, the main thread sends an "end" signal 14 to the source gateway to indicate that the wrapping of the global context is ready. As previously described, the "end" signal is then passed to the target gateway by means of a "hold" signal 15.

Volgens een voorkeursuitvoeringsvorm zijn er twee typen uitpakfunctie: een hoofd-thread uitpakfunctie en een sub-thread uitpakfunctie. 15 De hoofd-thread uitpakfunctie wordt gebruikt om de context voor de hoofd-thread uit te pakken (die mogelijk in sub-threads uitvorkt; een enkel-threaded proces heeft alleen een hoofd-thread). De sub-thread uitpakfunctie pakt de ingepakte context uit voor een sub-thread.According to a preferred embodiment, there are two types of unpacking function: a main thread unpacking function and a sub-thread unpacking function. The main-thread unpacking function is used to extract the context for the main thread (which may fork out into sub-threads; a single-threaded process only has a main thread). The sub-thread extract function unpacks the packed context for a sub-thread.

20 Op dezelfde wijze als bij het enkel-threaded proces zendt de bron- gateway ook een "start proces" signaal 8 naar de doel-gateway 2. Dit "start proces" signaal 8 is een verzoek om een proces 4a te starten op het doelknooppunt. Het proces 4a heeft aanvankelijk slechts één thread, die de hoofd-thread zal worden wanneer de andere thread start. De thread 4a voert 25 een registratie 10 uit en voorbereiding 11, zoals hiervoor beschreven. De thread 4a zendt vervolgens een "hold" signaal 12 naar de doel-gateway. Wanneer de "hold" signalen van de bron-gateway 1 en de thread 4a zijn ontvangen, zendt de doel-gateway 2 een "luister" signaal naar de thread 4a (nieuwe incarnatie). De thread 4a is dan in een luistermodus. De doel-30 gateway 2 zendt tevens een "start uitzending" signaal 18 naar de bron-gateway, dat doorgegeven wordt aan de overgebleven (hoofd-) thread 3a van de oude incarnatie.In the same way as with the single-threaded process, the source gateway also sends a "start process" signal 8 to the target gateway 2. This "start process" signal 8 is a request to start a process 4a at the target node . The process 4a initially has only one thread, which will become the main thread when the other thread starts. The thread 4a performs a registration 10 and preparation 11, as described above. The thread 4a then sends a "hold" signal 12 to the target gateway. When the "hold" signals from the source gateway 1 and the thread 4a have been received, the target gateway 2 sends a "listen" signal to the thread 4a (new incarnation). The thread 4a is then in a listening mode. The target gateway 2 also sends a "start broadcast" signal 18 to the source gateway, which is passed on to the remaining (main) thread 3a of the old incarnation.

Verwezen wordt nu naar Afbeelding 2b, waarin de stappen worden 35 weergegeven die de voorbeeldimplementatie van de werkwijze verder 251 69 13 doorloopt. Het "start uitzending" signaal 18 wordt doorgegeven door de bron-gateway aan de overgebleven thread 3a door middel van een "zend" signaal 19. Een rechtstreekse communicatie 21 wordt vervolgens tot stand gebracht tussen de overgebleven thread 3a van de oude incarnatie en de eerste 5 thread 4a van de nieuwe incarnatie.Reference is now made to Figure 2b, which shows the steps which the exemplary implementation of the method goes through. The "start broadcast" signal 18 is passed through the source gateway to the remaining thread 3a by means of a "send" signal 19. A direct communication 21 is then established between the remaining thread 3a of the old incarnation and the first 5 thread 4a of the new incarnation.

Telkens wanneer de eerste thread 4a de context van een sub-thread ontvangt, start de eerste thread 4a een sub-thread met de ontvangen context. De sub-threads 4b, 4c zijn in een hold-toestand. Wanneer de globale 10 context verzonden is, zendt de hoofd-thread 4a van de nieuwe incarnatie een "klaar" signaal 22 naar de the doel-gateway.Each time the first thread 4a receives the context of a sub-thread, the first thread 4a starts a sub-thread with the received context. The sub-threads 4b, 4c are in a hold state. When the global context is sent, the main thread 4a of the new incarnation sends a "ready" signal 22 to the target gateway.

Na ontvangst van het "klaar” signaal 22, zendt de doel-gateway een "ga door” signaal 23 naar de hoofd-thread van de nieuwe incarnatie en 15 een "klaar” signaal 25 naar de overgebleven thread van de oude incarnatie. Het "ga door” signaal 23 maakt dat de threads 4a, 4b, 4c starten. De threads worden Immers ingedeeld door het OS. Dan heeft elke thread tijdens de uitvoeringsperiode zijn eigen synchronisatiepunt 28a, 28b, 28c.After receiving the "ready" signal 22, the target gateway sends a "continue" signal 23 to the main thread of the new incarnation and a "ready" signal 25 to the remaining thread of the old incarnation. continue "signal 23 causes threads 4a, 4b, 4c to start. After all, the threads are classified by the OS. Then, each thread has its own synchronization point 28a, 28b, 28c during the execution period.

20 Het "klaar” signaal 25 wordt door de bron-gateway doorgegeven aan de overgebleven thread 3a van de oude incarnatie door middel van een "breek af signaal 26. Dit "breek af signaal stopt de uitvoeringsactiviteiten van de overgebleven thread 3a, d.w.z., het stopt de uitvoering van de oude incarnatie.The "ready" signal 25 is passed from the source gateway to the remaining thread 3a of the old incarnation by means of a "break off signal 26. This" break off signal stops the execution activities of the remaining thread 3a, ie, the the execution of the old incarnation stops.

2525

Hoewel de beschreven speciale implementaties bijzonder gunstige eigenschappen bezitten, bestrijken zij niet alle mogelijkheden. Er is een verscheidenheid aan alternatieve implementaties mogelijk. Die alternatieven blijven binnen het door het octrooi bestreken kader van de uitvinding.Although the special implementations described have particularly favorable properties, they do not cover all possibilities. A variety of alternative implementations are possible. Those alternatives remain within the scope of the invention covered by the patent.

3030

Het is bijvoorbeeld mogelijk om berichtenuitwisseling toe te passen in plaats van onderbrekingen om de betreffende signalen te verzenden. Het "verplaats" signaal 6 echter, moet wöl een onderbreking zijn, om te voorkomen dat de verplaatsactiviteiten worden gehinderd door 35 recursie.For example, it is possible to use message exchange instead of interruptions to send the relevant signals. However, the "move" signal 6 must be an interruption to prevent the move activities from being hampered by recursion.

1251 691251 69

Claims (8)

1. Een werkwijze voor het verplaatsen van een proces van een bronknooppunt naar een doelknooppunt, waarbij: - een oude incarnatie van het proces (3), die in uitvoering is op het bronknooppunt, de eigen context in een frame (13) opslaat; 5. een nieuwe incarnatie van het proces (4) gestart wordt op het doelknooppunt, welke nieuwe incarnatie de status "gereed” heeft; - een rechtstreekse communicatie (21) tot stand wordt gebracht tussen de oude incarnatie (3) en de nieuwe incarnatie (4) van het proces, waarin de opgeslagen context verzonden wordt van de oude incarnatie naar de 10 nieuwe incarnatie; - de nieuwe incarnatie met verwerken begint (24), gebruikmakend van de ontvangen context.A method for moving a process from a source node to a target node, wherein: - an old incarnation of the process (3) in progress on the source node stores its own context in a frame (13); 5. a new incarnation of the process (4) is started at the target node, which new incarnation has the status "ready", - direct communication (21) is established between the old incarnation (3) and the new incarnation ( 4) of the process in which the stored context is sent from the old incarnation to the new incarnation - the new incarnation begins processing (24) using the received context. 2. Een procesverplaatswerkwijze volgens de vorige conclusie, waarin de 15 oude incarnatie (3) de eigen context regelmatig opslaat op vooraf bepaalde synchronisatiepunten (5), welke context na ontvangst van een signaal (6) van een bron-gateway (1) ingepakt wordt in een frame (13).A process relocation method according to the preceding claim, wherein the old incarnation (3) regularly stores its own context at predetermined synchronization points (5), which context is packed after receiving a signal (6) from a source gateway (1) in a frame (13). 3. Een procesverplaatswerkwijze volgens een van de voorgaande 20 conclusies, waarbij de context de inhoud van het geheugen en de status van het proces bevat.A process relocation method according to any of the preceding claims, wherein the context contains the contents of the memory and the status of the process. 4. Een procesverplaatswerkwijze volgens een van de voorgaande conclusies, waarin de nieuwe incarnatie (4) gestart wordt na ontvangst van 25 een signaal (9) van een doel-gateway (2).4. A process displacement method according to any one of the preceding claims, wherein the new incarnation (4) is started after receiving a signal (9) from a target gateway (2). 5. Een procesverplaatswerkwijze volgens de vorige .conclusie, waarin het signaal (9) voor het starten van de nieuwe incarnatie verzonden wordt na ontvangst van een signaal (8) van de bron-gateway (1). 30A process displacement method according to the preceding claim, wherein the signal (9) for starting the new incarnation is sent after receiving a signal (8) from the source gateway (1). 30 6. Een procesverplaatswerkwijze volgens een van de voorgaande conclusies, waarin de rechtstreekse communicatie (21) tot stand wordt gebracht door middel van een Socket, het poortnummer waarvan: 251 69 - door de nieuwe incarnatie gezonden (12) wordt naar de doel-gateway, en vervolgens - door de doel-gateway gezonden (18) wordt naar de bron-gateway, en vervolgens 5. door de bron-gateway gezonden (19) wordt naar de oude incarnatie.A process relocation method according to any of the preceding claims, wherein the direct communication (21) is established by means of a socket, the port number of which: 251 69 - is sent (12) by the new incarnation to the target gateway, and then - sent (18) through the target gateway to the source gateway, and then 5. sent through the source gateway (19) to the old incarnation. 7. Een procesverplaatswerkwijze volgens een van de voorgaande conclusies, waarin de oude en nieuwe incarnaties multi-threaded processen zijn. 10A process relocation method according to any of the preceding claims, wherein the old and new incarnations are multi-threaded processes. 10 8. Een procesverplaatswerkwijze volgens de vorige conclusie, waarin elke thread (3a, 3b, 3c) van de oude incarnatie de eigen context opslaat, waarbij één (3a) van deze threads een hoofd-thread is en de opgeslagen contexten door de hoofd-thread (3a) ingepakt worden in één enkel frame. 251 69A process relocation method according to the preceding claim, wherein each thread (3a, 3b, 3c) of the old incarnation stores its own context, one (3a) of these threads being a main thread and the stored contexts being saved by the main thread (3a) be packed in a single frame. 251 69
NL1025169A 2004-01-06 2004-01-06 Process mobility protocol. NL1025169C2 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
NL1025169A NL1025169C2 (en) 2004-01-06 2004-01-06 Process mobility protocol.
PCT/EP2005/050027 WO2005069139A1 (en) 2004-01-06 2005-01-05 Process mobility protocol

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
NL1025169 2004-01-06
NL1025169A NL1025169C2 (en) 2004-01-06 2004-01-06 Process mobility protocol.

Publications (1)

Publication Number Publication Date
NL1025169C2 true NL1025169C2 (en) 2005-07-07

Family

ID=34793381

Family Applications (1)

Application Number Title Priority Date Filing Date
NL1025169A NL1025169C2 (en) 2004-01-06 2004-01-06 Process mobility protocol.

Country Status (2)

Country Link
NL (1) NL1025169C2 (en)
WO (1) WO2005069139A1 (en)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9507630B2 (en) 2012-02-09 2016-11-29 Cisco Technology, Inc. Application context transfer for distributed computing resources
US9716991B2 (en) 2013-09-09 2017-07-25 Samsung Electronics Co., Ltd. Computing system with detection mechanism and method of operation thereof
CN104156272B (en) * 2014-08-07 2017-08-01 东华大学 A Product Steam Consumption Allocation Method Based on Unit Steam Consumption

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2000036506A1 (en) * 1998-12-16 2000-06-22 Kent Ridge Digital Labs Process oriented computing environment
US6247041B1 (en) * 1997-08-29 2001-06-12 International Business Machines Corporation Multiprocessor computer system with user specifiable process placement

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6247041B1 (en) * 1997-08-29 2001-06-12 International Business Machines Corporation Multiprocessor computer system with user specifiable process placement
WO2000036506A1 (en) * 1998-12-16 2000-06-22 Kent Ridge Digital Labs Process oriented computing environment

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
ARMSTRONG J B ET AL: "Dynamic task migration from SIMD to SPMD virtual machines", ENGINEERING OF COMPLEX COMPUTER SYSTEMS, 1995. HELD JOINTLY WITH 5TH CSESAW, 3RD IEEE RTAW AND 20TH IFAC/IFIP WRTP, PROCEEDINGS., FIRST IEEE INTERNATIONAL CONFERENCE ON FT. LAUDERDALE, FL, USA 6-10 NOV. 1995, LOS ALAMITOS, CA, USA,IEEE COMPUT. SOC, U, 6 November 1995 (1995-11-06), pages 326 - 333, XP010153012, ISBN: 0-8186-7123-8 *
HAN W ET AL: "A COMPARATIVE ANALYSIS OF VIRTUAL VERSUS PHYSICAL PROCESS-MIGRATIONSTRATEGIES FOR DISTRIBUTED MODELING AND SIMULATION OF MOBILE COMPUTING NETWORKS", WIRELESS NETWORKS, ACM, US, vol. 4, no. 5, 1 August 1998 (1998-08-01), pages 365 - 378, XP000781643, ISSN: 1022-0038 *
LITZKOW M ET AL: "CHECKPOINT AND MIGRATION OF UNIX PROCESSES IN THE CONDOR DISTRIBUTED PROCESSING SYSTEM", TECHNICAL REPORT 1346, XX, XX, April 1997 (1997-04-01), pages 1 - 8, XP001158805 *

Also Published As

Publication number Publication date
WO2005069139A1 (en) 2005-07-28

Similar Documents

Publication Publication Date Title
Qi et al. Spright: extracting the server from serverless computing! high-performance ebpf-based event-driven, shared-memory processing
JP5258019B2 (en) A predictive method for managing, logging, or replaying non-deterministic operations within the scope of application process execution
EP3837604B1 (en) In situ triggered function as a service within a service mesh
US10678550B2 (en) Capturing snapshots of offload applications on many-core coprocessors
US8505029B1 (en) Virtual machine communication
US20060117325A1 (en) System and method for interrupt handling
JP2001175499A (en) Distributed debugging apparatus, debugging method, and recording medium recording control program
US10031773B2 (en) Method to communicate task context information and device therefor
US11216343B1 (en) System and method for accelerating processing in event-driven server-less computing
US7852845B2 (en) Asynchronous data transmission
US7849151B2 (en) Contention detection
US20080130652A1 (en) Multiple communication networks for multiple computers
NL1025169C2 (en) Process mobility protocol.
CN115686758B (en) VirtIO-GPU performance controllable method based on frame statistics
US20250224968A1 (en) Handling system calls during execution of an application over a plurality of nodes
US20080140805A1 (en) Multiple network connections for multiple computers
Mostinckx et al. Mirror‐based reflection in AmbientTalk
US20050081216A1 (en) Method, system, and program for calling a target object from a caller object
Kreutzer et al. Migration of Isolated Application Across Heterogeneous Edge Systems
Wawrzoniak et al. Short-lived datacenter
CN108304200A (en) A kind of method, apparatus and electronic equipment of driver upgrade
Ren et al. An efficient and transparent approach for adaptive intra-and inter-node virtual machine communication in virtualized clouds
CN117171764A (en) RISC-V trusted execution environment realization method, system and related equipment
Van Belle et al. Agent mobility and reification of computational state: An experiment in migration
CN117742991A (en) Method and device for acquiring user information by micro-service and electronic equipment

Legal Events

Date Code Title Description
PD2B A search report has been drawn up
V1 Lapsed because of non-payment of the annual fee

Effective date: 20150801