Presentation is loading. Please wait.

Presentation is loading. Please wait.

CSS434 Process Migration1 Textbook 7.4.2 and Non-Textbook Contents Professor: Munehiro Fukuda.

Similar presentations


Presentation on theme: "CSS434 Process Migration1 Textbook 7.4.2 and Non-Textbook Contents Professor: Munehiro Fukuda."— Presentation transcript:

1 CSS434 Process Migration1 Textbook 7.4.2 and Non-Textbook Contents Professor: Munehiro Fukuda

2 CSS434 Process Migration2 Outline Degree of mobility Implementation Issues in Process Migration State capturing Address transfer mechanisms Message forwarding mechanisms Mobile agents D ’ Agent IBM Aglets UWAgents

3 CSS434 Process Migration3 Degrees of Mobility DataControlCodeData State Execution State Navigational Autonomy Transfer Direction Message PassingMoveIn/Out RPCMove Out Remote ExecutionMove Out Code on DemandMove In Process MigrationMove In/Out Mobile Agents (weak)Move OwnIn/Out Mobile Agents (strong)Move OwnIn/Out

4 CSS434 Process Migration4 System Examples TypesSystems Message PassingSocket, PVM, MPI RPCXerox Courier, SunRPC, RMI Remote ExecutionServlets, Remote evaluation, Tacoma Code on DemandApplets, VB/Jscripts Process MigrationCondor, Sprite, Olden Mobile Agents (Weak Migration)IBM Aglets, Voyager, Mole Mobile Agents (Strong Migration)Telescript, D ’ Agent, Ara

5 CSS434 Process Migration5 Remote Execution Procedure code is sent together with arguments. Server behaves like a general cycle server. Server can evolve itself. Main Program Function Object Client Server Dispatcher Arguments Function Object f( ) Function/object transfer Argument transfer Remote execution Return value Control

6 CSS434 Process Migration6 Code on Demand Server behaves like a general remote object server. A remote function/object is sent back as a return value. Client executes the function/object locally. Client execution control stays in local while suspended upon a request to a server. Main Program func( ) Client Server Dispatcher Remote Function Object Request a remote function/object Function Object Function/object itself is returned. Control Locally executed

7 CSS434 Process Migration7 Process Migration Selecting a process to be migrated Selecting the destination node Suspending the process Capturing the process state Sending the state to the destination Resuming the process Forwarding future messages to the destination Process P1 : Execution suspended Source Site Destination Site Execution Resumed : Process P1 Transfer of control Time Freezing time

8 CSS434 Process Migration8 Process Migration Benefits Better response time and execution speed-up Dynamic load balancing among multiple nodes Using a faster CPU Higher throughput and Effective resource utilization Migrating I/O and CPU-bound processes to file and cycle servers. Reducing network traffic Migrating processes closer to the resources they are using most heavily. Improving system reliability Migrating processes from a site in failure to more reliable sites Replicating and migrating critical processes to a remote.

9 CSS434 Process Migration9 Process Migration State Capturing CPU registers Captured upon a freeze Address space Difficult to restore pointers I/O state: Fast I/O Operations Completed before a process migration Durable I/O Operations like files and user interactions Difficult to carry files in use and to freeze/restore system calls. Necessity to maintain a connection with I/O established at the source node. Some popular files available at the destination node

10 CSS434 Process Migration10 Process Migration Address Transfer Mechanisms Transfer of address space Source node Destination node Suspended Migration decision resumed Freezing time Transfer of address space Source node Destination node Suspended Migration decision resumed Freezing time On-demand transfer Source node Destination node Suspended Migration decision resumed Freezing time Total Freezing Pretransferring Transfer-on-reference Merits: easy implementation Demerits:long delay time Merits: freezing time reduce Demerits:total time extended Merits: quick migration Demerits:large memory latency

11 CSS434 Process Migration11 Process Migration Message Forwarding Mechanisms Sender Origin Dest 1 Dest 2 Receiver Migrate Migrate again Resend Resend again Sender Origin Dest 1 Dest 2 Receiver Migrate Migrate again Resending messages Ask origin site Send Forward

12 CSS434 Process Migration12 Process Migration Message Forwarding Mechanisms (Cont ’ d) Sender Origin Dest 1 Dest 2 Receiver Migrate Migrate again Link Update Send Sender Origin Dest 1 Dest 2 Receiver Migrate Migrate again Link traversal Link Send Forward Send New location Send New location Send Current location

13 CSS434 Process Migration13 Process Migration Heterogeneous Systems Using external data representation Floating-point data External data representation must have at least as much space as the longest floating-point data representation Process migration is restricted to only the machines that can avoid the over/underflow and the loss of precision. Architectural-dependent data representation Singed-infinity and singed-zero In general, process migration over heterogeneous systems are too expensive Conversion work Architectural-dependent representation handling Always interrupting external data representation Java

14 CSS434 Process Migration14 Mobile Agents Paradigm clientclient serverserver clientagentclientagentserverserverclientagentclientagent NetworkNetwork NetworkNetwork Conventional Approach Mobile Agent Approach

15 CSS434 Process Migration15 Mobile Agents Benefits Low network traffic and latency Agents-server communication takes place locally. Encapsulation All code and data are carried with an agent. Autonomous and asynchronous navigation Agent disconnect communication with their client and visits servers as their own. Run-time adaptability Agents can dynamically load new objects as they migrate over network. Robustness Agents are active to get out of faulty nodes.

16 CSS434 Process Migration16 HW/OSHW/OSHW/OS Mobile Agents Execution Model - OMG/MASIF - Region Communicationinfrastructure Agent System Place Place AgentAgent AgentAgent AgentAgent Communicationinfrastructure Place Place AgentAgent AgentAgent AgentAgent Communicationinfrastructure Place Place AgentAgent AgentAgent AgentAgent

17 CSS434 Process Migration17 Agents: 1. State: Execution state to be resumed upon a migration 2. Implementation: Architectural independent code 3. Interface: Facility to communicate with places and other agents 4. Identifier: Agent identifier 5. Authority/Principal: The owner of agent Places: 1. Engine: Place to execute agents 2. Resource: CPU, memory, database, etc. 3. Location: IP + logical location id 4. Principal: The owner of place Mobile Agents Definition of Agents and Places

18 CSS434 Process Migration18 Mobile Agents Process Migration v.s. Mobile Agents Process MigrationMobile Agents Navigational Autonomy Migration decision is made by system. Agents decide where and where to go by calling go( ) or hop( ) method. Code ExecutionPrograms are fully compiled and executed in native mode. Most agents are coded in Java and Tcl, and are interpreted by their execution engine. Strong/Weak Migration Execution is resumed where it has been suspended. Java-based agents resume their execution from the top of a given method. I/O StateLong-term I/Os are forwarded to processes migrated to the desination. Agents relinquish I/O connections every time they depart for their next destination.

19 CSS434 Process Migration19 Mobile Agents D ’ Agent: Strong Migration Example proc who machine { // agent spawned from its parent global agent set list “” foreach m $machines { if ( [catch {agent_jump $m} result] } { // jump to a remote machine append list “ $m: nunable to JUMP here ($result)nn ” // jump failed } else { set users [exec who] // jump in success, execute who append list “ $agent(local-server): n$usersnn ” } agent_send $agent( root ) 0 $list // send a list to its parent agent exit } The list of machines New line

20 CSS434 Process Migration20 Mobile Agents IBM Agelts: Weak Migration Example Public class DispatchingExample extends Aglet { boolean remoteAgent = false; public void onCreation( object init ) { addMobilityListener( new MobilityAdapter( ) { public void onDispatching( MobilityEvent e ) { System.out.println( “ The parent agent dispatched a child agent ” ); } public void onArrival( MobilityEvent e ) { remoteAgent = true; System.out.println( “ The child agent arrived at the destination ” ); } ); } public void run( ) { if ( !remoteAgent ) { try { URL destination = new URL( (String)getAgletContext( ).getProperty( “ uw1-320-lab ” ); dispatch( destination ); } catch ( Exception e ) { System.out.println( e.getMessage( ) ); } } else { System.out.println( “ The child starts run( ) at the destination ” ); } run dispatch onDispatching onArrival run Source Destination

21 CSS434 Process Migration21 Mobile Agents UW Messengers: What Former CSS499 Students Developed public class MyAgent extends UWAgent implements Serializable { MyAgent( ) { } MyAgent( String[] args ) { } void init( ) { String[] args = new String[2]; args[0] = Integer.toString( 10 ); args[1] = Integer.toString( 3 ); hop( “ uw1-320-01 ”, “ power ”, String[] funcArgs ); } void power( String[] args ) { base = Integer.parseInt( args[0] ); exp = Integer.parseInt( args[1] ); for ( int j = 0; j < exp; j++ ); pow += base; System.out.println( “ host = ” + getInetAddress( ) + “ power = ” + pow ); hop( “ uw1-320-02 ”, “ factorial ”, String[] args ); } void factorial( String[] arg ) { base = Integer.parseInt( args[0] ); fact = 1; for ( int j = base; j > 0; j== ) fact *= j; System.out.println( “ host = “ + getInetAddress( ) + “ fact = “ + fact ); } Uw1-320-02 Uw1-320-01 Uw1-320-00 MyAgent init( ) MyAgent power( ) MyAgent Factorial( ) hop( ) uw1-320-lab: ~css434/hw3/uwagent

22 CSS434 Process Migration22 System Comparison D ’ Agent IBM Aglets Ara Mole Discussions: Which systems use strong migration? How has strong migration been implemented? Which systems use weak migration? Why did they end up with weak migration? Which system uses the concept of agent proxy? What is the agent proxy? Which system uses allowance? What is it?

23 CSS434 Process Migration23 Exercises (No turn-in) 1. What are items to be taken into consider when migration decision is made? 2. Why is address space transfer so difficult when pointers are involved? What is necessary to transfer data structures on memory to the destination? 3. Why do mobile agents have more security concerns than process migration. 4. What made it possible to implement java-based mobile agents? 5. Why do java-based mobile agents need to take weak migration?


Download ppt "CSS434 Process Migration1 Textbook 7.4.2 and Non-Textbook Contents Professor: Munehiro Fukuda."

Similar presentations


Ads by Google