Object and native code thread mobility among heterogeneous computers
Bjarne Steensgaard, Eric Jul · ACM SIGOPS Operating Systems Review · 1995
We present a technique for moving objects and threads among heterogeneous computers at the native code level.To enable mobility of threads running native code, we convert thread states among machine-dependent and machine-independent formats.We introduce the concept of bLts stops, which are machine-independent representations of program points as represented by program counter values, The concept of bus stops can be used also for other purposes, <~.g., to aid inspecting and debugging optimized code, garbage collection e~c.We also discuss techniques for thread mobility among processors executing differently optimized codes.We demonsti-ate the viabi lily of our ideas by providing a prototype implementation ot' object and thread mobility among hetero-gWCOUS computers,The prototype uses the Emerald distributed progt-amming language without modification; we have merely extended the Emerald runtime system and the code generator of the Emerald compiler.Our extensions allow object and thread mobility among VAX, Sun-3, HP9000/300, and Sun SPARC workstations.The excellent intra-node performance of the original homogeneous Emerald is retained: migrated threads run at native code speed bet'ore and after migration; the same speed as on homogeneous Emeralci and close to C code performance.Our implementation of mobility hm not been optimized:thread mobility and trans-architecture invocations take about 60% longer than in lhe homogeneous implementation.We believe this is the first implementation of full object and [hrcad mobility among heterogeneous computers with threads execu(ing native code. 1