Process migration, or the technique of moving a process from one computer to another during execution, can be a very useful load-balancing techniques in some computing environments. Of course, the actual speedups seen in practice depend on the nature of the application load. In situations where pools of processors are reserved for one job, and the optimal assignment of processes to processors can be determined a priori, process migration does not provide much benefit. However, if jobs arrive in an unpredictable or ad hoc nature, static scheduling can lead to long-term load imbalances. In these cases, process migration can lead to significant speedups.
There have been various implementations of process migration, some of which have been covered by this paper. The three systems reviewed--Condor, MOSIX, and Sprite--cover a range of design decisions and underlying assumptions. Our analysis of these systems should give the reader a sense of the issues and complexities involved in a successful process migration system.