Zero Overhead Java Thread Migration
Résumé
The wide diffusion of Java is partly due to its mechanisms for mobile computing. Java provides most of the functions required to implement mobile applications, essentially code mobility (i.e., dynamic class loading) and data mobility (i.e., object serialization). However, Java does not provide any mechanism for the mobility of the computation (i.e., threads migration). Several projects have addressed the issue of Java thread migration- , e.g.,Sumatra, Wasp, JavaGo, Brakes, CIA. Most of these projects have attempted to minimize the overhead incurred by the migration mechanisms on applications performance, but none of them has been able to completely avoid this overhead. We propose a Java thread migration mechanism that does not incur any performance overhead on migratory threads. In this report, we present the design choices which allowed us to cancel the performance overhead, and we describe the implementation of our thread migration prototype in Sun Microsystems' JDK. We report on the experimental results that confirm the elimination of the performance overhead.