首页> 外文会议>Annual ACM conference on object oriented programming, systems, languages and applications >Cross-Language, type-Safe, and Transparent Object Sharing For Co-Located Managed Runtimes
【24h】

Cross-Language, type-Safe, and Transparent Object Sharing For Co-Located Managed Runtimes

机译:用于共同定位的托管运行时的跨语言,类型安全和透明对象共享

获取原文

摘要

As software becomes increasingly complex and difficult to analyze, it is more and more common for developers to use high-level, type-safe, object-oriented (OO) programming languages and to architect systems that comprise multiple components. Different components are often implemented in different programming languages. In state-of-the-art multi-component, multi-language systems, cross-component communication relies on remote procedure calls (RPC) and message passing. As components are increasingly co-located on the same physical machine to ensure high utilization of multi-core systems, there is a growing potential for using shared memory for cross-language cross-runtime communication. We present the design and implementation of Co-Located Runtime Sharing (CoLoRS), a system that enables cross-language, cross-runtime type-safe, transparent shared memory. CoLoRS provides object sharing for co-located OO runtimes for both static and dynamic languages. CoLoRS defines a language-neutral object/class model, which is a static-dynamic hybrid and enables class evolution while maintaining the space/time efficiency of a static model. CoLoRS uses type mapping and class versioning to transparently map shared types to private types. CoLoRS also contributes a synchronization mechanism and a parallel, concurrent, on-the-fly GC algorithm, both designed to facilitate cross-language cross-runtime object sharing. We implement CoLoRS in open-source, production-quality runtimes for Python and Java. Our empirical evaluation shows that CoLoRS extensions impose low overhead. We also investigate RPC over CoLoRS and find that using shared memory to implement co-located RPC significantly improves both communication throughput and latency by avoiding data structure serialization.
机译:由于软件变得越来越复杂且难以分析,开发人员使用高级,类型安全,面向对象(OO)编程语言以及包含多个组件的架构系统是越来越常见的。不同的组件通常以不同的编程语言实现。在最先进的多组件,多语言系统中,交叉组件通信依赖于远程过程调用(RPC)和消息传递。由于组件越来越多地位于同一物理机器上,以确保高核心系统的高利用率,因此使用共享存储器的跨语言交叉运行时通信具有越来越多的潜力。我们介绍了共同定位的运行时共享(颜色)的设计和实现,该系统启用跨语言,交叉运行时类型安全,透明共享内存。颜色为静态和动态语言提供共同定位的OO运行时共享。颜色定义了一种语言 - 中性对象/类模型,它是一个静态动态混合动力,并且在保持静态模型的空间/时间效率的同时启用类演变。颜色使用类型映射和类版本控制,以透明地将共享类型映射到私有类型。颜色还提供了同步机制和平行,并发,在------to-----to-----tool-and-run-runtime对象共享。我们在Python和Java中实现开源,生产质量运行时的颜色。我们的实证评估表明,颜色延伸施加低开销。我们还调查RPC过度颜色,并发现使用共享内存实现共同定位的RPC,通过避免数据结构序列化,显着提高通信吞吐量和延迟。

著录项

相似文献

  • 外文文献
  • 专利
获取原文

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号