`
Distributed Systems
Dr. Gayathri R G
Department Of Computer Science
Amrita Vishwa Vidyapeetham
Recap
• Processes and Threads
• Clients
• Servers and the types
• Virtualization
Code Migration
The big idea is to move a compute-intensive task from a heavily
loaded machine to a lightly loaded machine “on demand” and “as
required”.
Reasons to migrate code
• Load distribution
• Improved Performance
• Ensuring that servers in a data center are sufficiently
loaded
• Minimizing communication by ensuring that
computations are close to where the data is
• Flexibility: moving code to a client when needed
• Avoids pre-installing software and increases dynamic
configuration
9
Dynamic Code Migration
Models for Code Migration
Object components
• Code segment: contains the actual code
• Data segment: contains the state
• Execution state: contains context of thread executing the
object’s code
Strong and Weak Mobility
Weak mobility: Move only code and data segment (and reboot
execution)
• Relatively simple, especially if code is portable
• Distinguish code shipping (push) from code fetching (pull)
Strong mobility: Move component, including execution state
• Migration: move entire object from one machine to the other
• Cloning: start a clone, and set it in the same execution state.
Models for Code Migration
Models for Code Migration
Strong vs Weak Mobility
Migration in heterogeneous systems
• Main problem
• The target machine may not be suitable to execute the
migrated code
• The definition of process/thread/processor context is
highly dependent on local hardware, operating system
and runtime system
• Only solution:
• Abstract machine implemented on different platforms
• Interpreted languages, effectively having their own VM
• Virtual machine monitors
1
Migrating a virtual machine Place your
Webcam Video here
• Migrating images: three alternatives
• Pushing memory pages to the new machine and resending
the ones that are later modified during the migration process.
• Stopping the current virtual machine; migrate memory, and
start the new virtual machine.
• Letting the new virtual machine pull in new pages as needed:
processes start on the new virtual machine immediately and
copy memory pages on demand.
1
Summary
• Code Migration
• Reasons to migrate the code
• Models for Migration
• Issues in Heterogeneous systems
Communication
• Interprocess communication is fundamental to all distributed
systems
• Communication in distributed systems is always based on low-level
message passing as offered by the underlying network.
• Expressing communication through message passing is harder than
using primitives based on shared memory
• Unless the primitive communication facilities of computer
networks are replaced by something else, developing large-scale
distributed applications is extremely difficult.
Models for Communication
• Remote Procedure Call (RPC)
• Message-Oriented Middleware (MOM)
References
• Distributed Systems: Principles and Paradigms. Andrew S. Tanenbaum and
Maarten van Steen. Prentice Hall, 2 n d Ed., 2006
• Distributed Computing, Fundamentals, Simulations and Advanced topics, 2nd
Edition, HagitAttiya and Jennifer Welch, Wiley India
• [Link]
2nd/9781466552975/K15248_C001.xhtml#_idParaDest-11
66