250 likes | 378 Views
Socket Swapping for efficient distributed communication between migrating processes. MS Final Defense Praveen Ramanan 12 th Dec 2002. Introduction. What is Process Migration? The mechanism of transferring a process between two machines during its execution What is Socket Migration?
E N D
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 Local process Link Layer Link Layer Deputy Kernel Kernel A local process and a migrated process
Processes in machine A and B Communicate through Sockets Process migrates to Machine C Process then communicates through C library Communication is re-established between the processes Solution: Kernel Socket Swapping A B SocketSwap is called After communication C
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. 3 5.system call swaps the socket
6.New Communication is established between the processes after socket swap. 6
Acknowledgements • Dr Daniel Andresen • Dr Gurdip Singh • Dr Mitchell Neilsen