ASU Logo

Partha Dasgupta

   

Home Up Publications Teaching Service Vita Columns

 

General Purpose Process Migration

This project takes a new look at an old topic—process migration. Process migration has been heavily studied, prototyped and implemented—often with no real practical benefits. Traditionally, process migration mechanisms have been used to load balance processors.

Supporting transparent migration has required extensive kernel support. However, despite some isolated situations, preemptive load balancing has been found quite unnecessary in most computing applications. Consequently, the conventional view has held that the costs of supporting process migration mechanisms, are not justified by their potential benefits.

We feel that the implied criticism of process migration research is more a statement about the nature of these earlier approaches and target application scenarios rather than any fundamental shortcomings. We have found that the ability to migrate normal (shrink-wrapped) applications, servers and GUI based programs can have surprising benefits. Process migration can be a very effective tool for emerging applications, enabling capabilities such as mobility, collaborative work, distributed systems management, automatic reconfiguration, and fault-tolerance.

Our approach to general-purpose process migration does not require any kernel modifications to the underlying operating system. Our approach to process migration involves a new scheme called virtualization that effectively decouples an application with dependencies to the operating system and the physical environment. Virtualization also monitors and controls the interactions and the resulting side effects between processes and operating systems, supporting process migration by facilitating transfer or recreation of necessary state. We have found that de-coupling the application from the base operating system and also de-coupling it with connections to peripherals (file handles, network sockets, graphics handles) can give rise to new “virtualized” environments where processes can freely migrate and reassign logical devices on the fly.

More Information: A paper on this topic is here.