Object and native code thread mobility among heterogeneous computers (includes sources)

B. Steensgaard, E. Jul
1995 Proceedings of the fifteenth ACM symposium on Operating systems principles - SOSP '95  
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
more » ... 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.
doi:10.1145/224056.224063 dblp:conf/sosp/SteensgaardJ95 fatcat:psidv2f5sjehdppne663yaxvm4