Presentation is loading. Please wait.

Presentation is loading. Please wait.

Winter, 2004CSS490 Process Migration1 Textbook Ch8 Instructor: Munehiro Fukuda These slides were compiled from the course textbook, the reference books,

Similar presentations


Presentation on theme: "Winter, 2004CSS490 Process Migration1 Textbook Ch8 Instructor: Munehiro Fukuda These slides were compiled from the course textbook, the reference books,"— Presentation transcript:

1 Winter, 2004CSS490 Process Migration1 Textbook Ch8 Instructor: Munehiro Fukuda These slides were compiled from the course textbook, the reference books, and the instructor’s original materials.

2 Winter, 2004CSS490 Process Migration2 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

3 Winter, 2004CSS490 Process Migration3 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

4 Winter, 2004CSS490 Process Migration4 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

5 Winter, 2004CSS490 Process Migration5 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

6 Winter, 2004CSS490 Process Migration6 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

7 Winter, 2004CSS490 Process Migration7 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.

8 Winter, 2004CSS490 Process Migration8 Process Migration State Capturing CPU registers Captured upon a breeze 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

9 Winter, 2004CSS490 Process Migration9 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

10 Winter, 2004CSS490 Process Migration10 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

11 Winter, 2004CSS490 Process Migration11 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

12 Winter, 2004CSS490 Process Migration12 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

13 Winter, 2004CSS490 Process Migration13 Mobile Agents Paradigm clientclient serverserver clientagentclientagentserverserverclientagentclientagent NetworkNetwork NetworkNetwork Conventional Approach Mobile Agent Approach

14 Winter, 2004CSS490 Process Migration14 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.

15 Winter, 2004CSS490 Process Migration15 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

16 Winter, 2004CSS490 Process Migration16 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

17 Winter, 2004CSS490 Process Migration17 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.

18 Winter, 2004CSS490 Process Migration18 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

19 Winter, 2004CSS490 Process Migration19 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

20 Winter, 2004CSS490 Process Migration20 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/UW Messengers Manual: UWMessengers.psUWMessengers.ps

21 Winter, 2004CSS490 Process Migration21 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. What is necessary to improve the performance of transfer-on- reference? 4. Why do mobile agents have more security concerns than process migration. 5. What made it possible to implement java-based mobile agents? 6. Why do java-based mobile agents need to take weak migration?

22 Winter, 2004CSS490 Process Migration22 Paper Review by Students D ’ Agent IBM Aglets Ara Mole


Download ppt "Winter, 2004CSS490 Process Migration1 Textbook Ch8 Instructor: Munehiro Fukuda These slides were compiled from the course textbook, the reference books,"

Similar presentations


Ads by Google