View
247
Download
0
Embed Size (px)
Citation preview
CSS434 Process Migration 1
CSS434 Process MigrationCSS434 Process MigrationTextbook 7.4.2 and Non-Textbook ContentsTextbook 7.4.2 and Non-Textbook Contents
Professor: Munehiro Fukuda
CSS434 Process Migration 2
Outline Degree of mobility Implementation Issues in Process
Migration State capturing Address transfer mechanisms Message forwarding mechanisms
Mobile agents D’Agent IBM Aglets UWAgents
CSS434 Process Migration 3
Degrees of Mobility
Data Control
Code
DataState
ExecutionState
NavigationalAutonomy
TransferDirection
Message Passing Move
In/Out
RPC Move
Move Out
Remote Execution Move
Move Move
Out
Code on Demand Move
Move
In
Process Migration Move
Move Move
Move Move In/Out
Mobile Agents (weak)
Move
Move Move
Move Own In/Out
Mobile Agents (strong)
Move
Move Move
Move Move Own In/Out
CSS434 Process Migration 4
System Examples
Types Systems
Message Passing Socket, PVM, MPI
RPC Xerox Courier, SunRPC, RMI
Remote Execution Servlets, Remote evaluation, Tacoma
Code on Demand Applets, VB/Jscripts
Process Migration Condor, Sprite, Olden
Mobile Agents (Weak Migration)
IBM Aglets, Voyager, Mole
Mobile Agents (Strong Migration)
Telescript, D’Agent, Ara
CSS434 Process Migration 5
Remote Execution
Procedure code is sent together with arguments.
Server behaves like a general cycle server.
Server can evolve itself.
MainProgram
FunctionObject
Client Server
DispatcherArgumentsFunctionObjectf( )
Function/objecttransfer
Argument transfer Remoteexecution
Return value
Control
CSS434 Process Migration 6
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.
MainProgram
func( )
Client Server
DispatcherRemoteFunctionObject
Request a remote function/object
FunctionObject
Function/object itselfis returned.
Control
Locally executed
CSS434 Process Migration 7
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::::
Executionsuspended
Source Site Destination Site
ExecutionResumed
::::
Process P1
Transfer of control
Time
Freezingtime
CSS434 Process Migration 8
Process MigrationBenefits
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.
CSS434 Process Migration 9
Process MigrationState 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
CSS434 Process Migration 10
Process MigrationAddress Transfer Mechanisms
Transfer ofaddress space
Sourcenode
Destinationnode
SuspendedMigrationdecision
resumed
Freezingtime
Transfer ofaddress space
Sourcenode
Destinationnode
Suspended
Migrationdecision
resumed
Freezingtime
On-demandtransfer
Sourcenode
Destinationnode
SuspendedMigrationdecision
resumed
Freezingtime
Total Freezing Pretransferring Transfer-on-reference
Merits: easy implementationDemerits: long delay time
Merits: freezing time reduceDemerits: total time extended
Merits: quick migrationDemerits: large memory latency
CSS434 Process Migration 11
Process MigrationMessage 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
SendSend
Forward
CSS434 Process Migration 12
Process MigrationMessage Forwarding Mechanisms (Cont’d)
Sender
Origin
Dest 1
Dest 2
Receiver
Migrate
Migrate again
Link Update
SendSender
Origin
Dest 1
Dest 2
Receiver
Migrate
Migrate again
Link traversal
Link
Link
Send
Forward
Forward
SendNew location
Send
New location
Send
Current location
CSS434 Process Migration 13
Process MigrationHeterogeneous 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
CSS434 Process Migration 14
Mobile AgentsParadigm
clientclientclientclient serverserverserverserver
clientclientagentagent
clientclientagentagent serverserverserverserverclientclient
agentagent
clientclientagentagent
NetworkNetworkNetworkNetwork
NetworkNetworkNetworkNetwork
Conventional ApproachConventional Approach
Mobile Agent ApproachMobile Agent Approach
CSS434 Process Migration 15
Mobile AgentsBenefits
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.
CSS434 Process Migration 16
HW/OSHW/OSHW/OSHW/OSHW/OSHW/OS
Mobile AgentsExecution Model - OMG/MASIF -
RegionRegion
CommunicationCommunicationinfrastructureinfrastructure
Agent SystemAgent System
PlacePlace
PlacePlace
AgentAgentAgentAgent
AgentAgentAgentAgent
AgentAgentAgentAgent
CommunicationCommunicationinfrastructureinfrastructure
Agent SystemAgent System
PlacePlace
PlacePlace
AgentAgentAgentAgent
AgentAgentAgentAgent
AgentAgentAgentAgent
CommunicationCommunicationinfrastructureinfrastructure
Agent SystemAgent System
PlacePlace
PlacePlace
AgentAgentAgentAgent
AgentAgentAgentAgent
AgentAgentAgentAgent
CSS434 Process Migration 17
Agents:1. State: Execution state to be resumed upon a migration2. Implementation: Architectural independent code3. Interface: Facility to communicate with places and
other agents4. Identifier: Agent identifier5. Authority/Principal: The owner of agent
Places:1. Engine: Place to execute agents2. Resource: CPU, memory, database, etc.3. Location: IP + logical location id4. Principal: The owner of place
Mobile AgentsDefinition of Agents and Places
CSS434 Process Migration 18
Mobile AgentsProcess Migration v.s. Mobile Agents
Process Migration Mobile Agents
Navigational Autonomy
Migration decision is made by system.
Agents decide where and where to go by calling go( ) or hop( ) method.
Code Execution Programs 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 State Long-term I/Os are forwarded to processes migrated to the desination.
Agents relinquish I/O connections every time they depart for their next destination.
CSS434 Process Migration 19
Mobile AgentsD’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 machinesNew line
CSS434 Process Migration 20
Mobile AgentsIBM 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
CSS434 Process Migration 21
Mobile AgentsUW Messengers: What Former CSS499 Students
Developedpublic 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-02Uw1-320-02Uw1-320-01Uw1-320-01Uw1-320-00Uw1-320-00
MyAgentinit( )
MyAgentpower( )
MyAgentFactorial( )
hop( ) hop( )
uw1-320-lab: ~css434/hw3/uwagent
CSS434 Process Migration 22
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?
CSS434 Process Migration 23
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?