The possibilities and limitations of heterogeneous process migration

Heterogeneous Process Migration is a technique that allows an active program to move between computers of differing architectures. While the program is executing, a migration tool will pause the program, locate the data values within the program's memory, convert them to a suitable format for the destination machine, then reconstruct the program on the destination machine so that it will continue executing correctly. Although a small number of heterogeneous migration mechanisms have been proposed, few of them have been constructed, and none have yet resulted in a mature and efficient implementation. The Tui system has been constructed to provide an efficient migration tool for use on four common architectures within the Unix environment. Implementation lessons were learned while optimizing the Tui system to gain performance. Tui has been used to derive a definition of migratibility. All other migration implementations have assumed that the program must be written in a type-safe language, or in a type-safe subset of a language. Since Tui has been designed to support heterogeneous migration of common languages that are non-type-safe, a survey of non-migratible language features has been undertaken. From this study, a definition for migratibility has been created, a framework for designing a migration tool has been given, and a comparison between migratibility and type-safety has shown that the two concepts are similar, yet different.

[1]  Hans-Juergen Boehm,et al.  Garbage collection in an uncooperative environment , 1988, Softw. Pract. Exp..

[2]  Micah Beck,et al.  Compiler-Assisted Checkpointing , 1994 .

[3]  Barton P. Miller,et al.  Process migration in DEMOS/MP , 1983, SOSP '83.

[4]  David F. Bacon,et al.  Compiler transformations for high-performance computing , 1994, CSUR.

[5]  Charles M. Shub,et al.  A unified model of pointwise equivalence of procedural computations , 1994, TOPL.

[6]  Christopher W. Fraser,et al.  A Retargetable C Compiler: Design and Implementation , 1995 .

[7]  Kai Li,et al.  Libckpt: Transparent Checkpointing under UNIX , 1995, USENIX.

[8]  Edward D. Lazowska,et al.  The limited performance benefits of migrating active processes for load sharing , 1988, SIGMETRICS '88.

[9]  Matt Bishop,et al.  Process Migration for Heterogeneous Distributed Systems , 1995 .

[10]  David B. Wortman,et al.  Automating data conversion for heterogeneous distributed shared memory , 1994, Softw. Pract. Exp..

[11]  Kemal Ebcioglu,et al.  An architectural framework for supporting heterogeneous instruction-set architectures , 1993, Computer.

[12]  Peter Smith,et al.  Heterogeneous process migration: the Tui system , 1998, Softw. Pract. Exp..

[13]  John L. Hennessy,et al.  Symbolic Debugging of Optimized Code , 1982, TOPL.

[14]  Alan J. Dix,et al.  Efficient binary transfer of pointer structures , 1994, Softw. Pract. Exp..

[15]  Marvin Theimer,et al.  Heterogeneous process migration by recompilation , 1991, [1991] Proceedings. 11th International Conference on Distributed Computing Systems.

[16]  Ravi Sethi,et al.  Programming languages - concepts and constructs , 1988 .

[17]  Raphael A. Finkel,et al.  Designing a Process Migration Facility , 1989 .

[18]  Paul S. Wang An Introduction to Berkeley Unix , 1988 .

[19]  S. Pope Application migration for mobile computers , 1996, Proceedings of Third International Workshop on Services in Distributed and Networked Environments.

[20]  Paul R. Wilson,et al.  Uniprocessor Garbage Collection Techniques , 1992, IWMM.

[21]  Andrew P. Black,et al.  Fine-grained mobility in the Emerald system , 1987, TOCS.

[22]  Edward R. Zayas,et al.  Attacking the process migration bottleneck , 1987, SOSP '87.

[23]  Amer Diwan,et al.  Compiler support for garbage collection in a statically typed language , 1992, PLDI '92.

[24]  Charles M. Shub Native code process-originated migration in a heterogeneous environment , 1990, CSC '90.

[25]  Keith A. Lantz,et al.  Preemptable remote execution facilities for the V-system , 1985, SOSP 1985.

[26]  Max Copperman Debugging optimized code without being misled , 1994, TOPL.

[27]  Volker Strumpen,et al.  Portable Checkpointing and Recovery in Heterogeneous Environments , 1996 .

[28]  Pierre Verbaeten,et al.  Object migration in a heterogeneous world-a multi-dimensional affair , 1993, Proceedings Third International Workshop on Object Orientation in Operating Systems.

[29]  Maurice Herlihy,et al.  A Value Transmission Method for Abstract Data Types , 1982, TOPL.

[30]  Mark Nuttall,et al.  A brief survey of systems providing process or object migration facilities , 1994, OPSR.

[31]  Fred Douglis,et al.  Transparent process migration: Design alternatives and the sprite implementation , 1991, Softw. Pract. Exp..

[32]  Robert E. Tarjan,et al.  Self-adjusting binary search trees , 1985, JACM.

[33]  Carlo Ghezzi,et al.  Programming language concepts , 1982 .

[34]  Thomas R. Gross,et al.  Source-level debugging of scalar optimized code , 1996, PLDI '96.

[35]  Brian W. Kernighan,et al.  The C Programming Language , 1978 .

[36]  Craig Chambers,et al.  Debugging optimized code with dynamic deoptimization , 1992, PLDI '92.

[37]  Guy L. Steele,et al.  The Java Language Specification , 1996 .

[38]  Niklaus Wirth,et al.  Pascal user manual and report - ISO Pascal standard, 4th Edition , 1991 .

[39]  Bjarne Steensgaard,et al.  Object and native code thread mobility among heterogeneous computers , 1995, SOSP.

[40]  Sanjay M. Krishnamurthy,et al.  A brief survey of papers on scheduling for pipelined processors , 1990, SIGP.

[41]  Michael Franz,et al.  Slim binaries , 1997, CACM.

[42]  Fred Douglis,et al.  The workstation as a waystation:-integrating mobility into computing environments , 1992, [1992] Proceedings Third Workshop on Workstation Operating Systems.

[43]  Andrew S. Tanenbaum,et al.  A practical tool kit for making portable compilers , 1983, Commun. ACM.

[44]  David R. Cheriton,et al.  The V distributed system , 1988, CACM.

[45]  Wilson C. Hsieh,et al.  Computation migration: enhancing locality for distributed-memory parallel systems , 1993, PPOPP '93.

[46]  Larry Carter,et al.  Distrbution and Abstract Types in Emerald , 1987, IEEE Transactions on Software Engineering.

[47]  Charles M. Shub,et al.  Process-originated migration in a heterogeneous environment , 1989, CSC '89.