Title: P1254325723mSDok
1CSS434 Process Migration Textbook 7.4.2 and
Non-Textbook Contents
Professor Munehiro Fukuda
2Outline
- Degree of mobility
- Implementation Issues in Process Migration
- State capturing
- Address transfer mechanisms
- Message forwarding mechanisms
- Mobile agents
- DAgent
- IBM Aglets
- UWAgents
3Degrees of Mobility
Data Control Code Data State Execution State Navigational Autonomy Transfer Direction
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
4System 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, DAgent, Ara
5Remote Execution
- Procedure code is sent together with arguments.
- Server behaves like a general cycle server.
- Server can evolve itself.
Client
Server
Main Program
Dispatcher
Function Object
Remote execution
Arguments
6Code 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.
Client
Server
Main Program func( )
Dispatcher
Remote Function Object
7Process 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
8Process 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.
9Process 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
10Process MigrationAddress Transfer Mechanisms
Pretransferring
Transfer-on-reference
Total Freezing
Source node
Source node
Source node
Destination node
Destination node
Destination node
Suspended
Migration decision
Migration decision
Migration decision
Suspended
Freezing time
Transfer of address space
On-demand transfer
Transfer of address space
resumed
Freezing time
Suspended
Freezing time
resumed
resumed
Merits quick migration Demerits large memory
latency
Merits easy implementation Demerits long delay
time
Merits freezing time reduce Demerits total
time extended
11Process MigrationMessage Forwarding Mechanisms
Resending messages
Ask origin site
Origin
Receiver
Sender
Send
Send
Migrate
Dest 1
Forward
Migrate again
Dest 2
12Process MigrationMessage Forwarding Mechanisms
(Contd)
Link traversal
Link Update
Origin
Origin
Receiver
Sender
Receiver
Sender
Send
Send
New location
Forward
Send
Migrate
Migrate
Send
Dest 1
Dest 1
New location
Forward
Migrate again
Send
Migrate again
Current location
Dest 2
Dest 2
13Process 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
14Mobile AgentsParadigm
Conventional Approach
server
client
Network
Mobile Agent Approach
client agent
server
client agent
Network
15Mobile 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.
16Mobile AgentsExecution Model - OMG/MASIF -
HW/OS
HW/OS
HW/OS
Region
Agent System
Agent System
Agent System
Place
Place
Place
Agent
Agent
Agent
Place
Place
Place
Agent
Agent
Agent
Agent
Agent
Agent
Communication infrastructure
Communication infrastructure
Communication infrastructure
17Mobile AgentsDefinition of Agents and Places
- Agents
- State Execution state to be resumed upon a
migration - Implementation Architectural independent code
- Interface Facility to communicate with places
and other agents - Identifier Agent identifier
- Authority/Principal The owner of agent
- Places
- Engine Place to execute agents
- Resource CPU, memory, database, etc.
- Location IP logical location id
- Principal The owner of place
18Mobile 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.
19Mobile AgentsDAgent 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)
nusersnn agent_send agent( root )
0 list // send a list to its parent
agent exit
The list of machines
New line
20Mobile 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 )
Source
Destination
21Mobile AgentsUW Messengers What Former CSS499
Students Developed
public class MyAgent extends UWAgent implements
Serializable MyAgent( ) MyAgent(
String args ) void init( )
String args new String2 args0
Integer.toString( 10 ) args1
Integer.toString( 3 ) hop( uw1-320-01,
power, String funcArgs ) void power(
String args ) base Integer.parseInt(
args0 ) exp Integer.parseInt( args1
) for ( int j 0 j lt 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( args0 ) fact 1
for ( int j base j gt 0 j ) fact
j System.out.println( host
getInetAddress( ) fact fact )
uw1-320-lab css434/hw3/uwagent
hop( )
hop( )
MyAgent power( )
MyAgent init( )
MyAgent Factorial( )
Uw1-320-02
Uw1-320-01
Uw1-320-00
22System Comparison
- DAgent
- 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?
23Exercises (No turn-in)
- What are items to be taken into consider when
migration decision is made? - Why is address space transfer so difficult when
pointers are involved? What is necessary to
transfer data structures on memory to the
destination? - Why do mobile agents have more security concerns
than process migration. - What made it possible to implement java-based
mobile agents? - Why do java-based mobile agents need to take weak
migration?