Socket Swapping for efficient distributed communication between
Download
Report
Transcript Socket Swapping for efficient distributed communication between
Socket Swapping for efficient
distributed communication between
migrating processes
MS Final Defense
Praveen Ramanan
12th Dec 2002
Introduction
What is Process Migration?
The mechanism of transferring a process
between two machines during its execution
What is Socket Migration?
The mechanism of transferring one end of a live
connection from one host to another without loss or
interruption to the packet flow
Need for Socket Migration
Lack of Network Socket Migration at the
Operating System Level
MOSIX, its importance with socket migration
MOSIX and its characteristics
Software that can transform a Linux cluster of
x86 based workstations and servers to run
almost like an SMP
Has the ability to distribute and redistribute
the processes among the nodes
Process Migration in MOSIX
User-level
User-level
Remote
Link
Layer
Link
Layer
Deputy
Kernel
Kernel
A local process and a migrated process
Solution: Kernel Socket Swapping
A
B
Process migrates to Machine C
C
SocketSwap is called
After communication
Technologies/Tools Used
User Mode Linux (UML)
Aglets
JNI (Java Native Interface)
Sockets
OS interface that allow communication
between two different processes on same or
different machines
Behaves much like a low-level file descriptor
Identified by a host.port pair
System calls
Entry points through which an active process
obtain services from the kernel
Distinction between user mode and kernel
mode
Context switch done by generating a software
interrupt
Socket related System Calls
Socket()
Bind()
Listen()
Connect()
Accept()
Read() and Write()
Close()
Socket Strucuture
struct socket
{
}
socket_state state;
unsigned long flags;
struct proto_ops *ops;
struct inode *inode;
struct fasync_list *fasync_list;
struct file *file;
struct sock *sk;
wait_queue_head_t wait;
short type;
unsigned char passcred;
Writing the System Call
Implemented in User Mode Linux, a safe
secure way of running linux versions and
linux processes
Why UML?
UML is a virtual machine which runs linux
inside linux
Debugging and testing becomes easy
Protects the main linux machine from
abnormal crashes
Features of UML
It has a fully functional kernel
It has hardware support
It has access to host file system
It is completely configurable, allowing its
memory, available devices to be specified
Mobile agents and aglets
Have unique ability to transport themselves
from one system to another
Aglets are java objects that can move from
one host to the other
Aglets takes the program code as well as data
during its movement
Testing the System Call through
aglets and JNI
Aglets are made to communicate through a C
library (C library uses sockets) through JNI
During communication, aglets are made to
move from one machine to another
System call is called and the socket is
swapped
The communication of the moved aglet is
then established with the swapped socket
1. Aglets A and B are communicating within
the same machine thru Send and Recv Fns
of C library API
1
5
2.Aglet B moves from
one machine to another.
2
3.AgletB Contacts the HaveMoved() of
the local C library
4
4.Local C library communicates
with C library of the remote
machine.
5.system call swaps the socket
3
6.New Communication is established
between the processes after socket swap.
6
Results (Data Size:400MB)
Latency(sec) BandWidth(Mbps)
Mosix
Normal Linux
67.918
47.1204
35.658
89.74
51.946
52.786
61.60
60.62
TCP
UserModeLinux
SocketSwap
Questions?
Acknowledgements
Dr Daniel Andresen
Dr Gurdip Singh
Dr Mitchell Neilsen