23
CSS434 Process Migration 1 CSS434 Process Migration CSS434 Process Migration Textbook 7.4.2 and Non-Textbook Cont Textbook 7.4.2 and Non-Textbook Cont ents ents Professor: Munehiro Fukuda

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

  • View
    247

  • Download
    0

Embed Size (px)

Citation preview

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

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

Page 2: CSS434 Process Migration1 Textbook 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

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

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

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

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

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

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

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

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

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

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

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

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.

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

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

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

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

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

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

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

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

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

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

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

CSS434 Process Migration 14

Mobile AgentsParadigm

clientclientclientclient serverserverserverserver

clientclientagentagent

clientclientagentagent serverserverserverserverclientclient

agentagent

clientclientagentagent

NetworkNetworkNetworkNetwork

NetworkNetworkNetworkNetwork

Conventional ApproachConventional Approach

Mobile Agent ApproachMobile Agent Approach

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

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.

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

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

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

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

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

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.

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

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

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

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

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

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

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

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?

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

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?