首页 > 最新文献

International Conference on Virtual Execution Environments最新文献

英文 中文
Evaluation of a just-in-time compiler retrofitted for PHP 对针对PHP改进的即时编译器进行评估
Pub Date : 2010-03-17 DOI: 10.1145/1735997.1736015
Michiaki Tatsubori, Akihiko Tozawa, T. Suzumura, Scott Trent, Tamiya Onodera
Programmers who develop Web applications often use dynamic scripting languages such as Perl, PHP, Python, and Ruby. For general purpose scripting language usage, interpreter-based implementations are efficient and popular but the server-side usage for Web application development implies an opportunity to significantly enhance Web server throughput. This paper summarizes a study of the optimization of PHP script processing. We developed a PHP processor, P9, by adapting an existing production-quality just-in-time (JIT) compiler for a Java virtual machine, for which optimization technologies have been well-established, especially for server-side application. This paper describes and contrasts microbenchmarks and SPECweb2005 benchmark results for a well-tuned configuration of a traditional PHP interpreter and our JIT compiler-based implementation, P9. Experimental results with the microbenchmarks show 2.5-9.5x advantage with P9, and the SPECweb2005 measurements show about 20-30% improvements. These results show that the acceleration of dynamic scripting language processing does matter in a realistic Web application server environment. CPU usage profiling shows our simple JIT compiler introduction reduces the PHP core runtime overhead from 45% to 13% for a SPECweb2005 scenario, implying that further improvements of dynamic compilers would provide little additional return unless other major overheads such as heavy memory copy between the language runtime and Web server frontend are reduced.
开发Web应用程序的程序员通常使用动态脚本语言,如Perl、PHP、Python和Ruby。对于通用脚本语言的使用,基于解释器的实现是高效且流行的,但是对于Web应用程序开发的服务器端使用意味着有机会显著提高Web服务器吞吐量。本文总结了对PHP脚本处理优化的研究。我们通过为Java虚拟机调整现有的生产质量的即时(JIT)编译器来开发PHP处理器P9, Java虚拟机的优化技术已经建立,特别是对于服务器端应用程序。本文描述并对比了传统PHP解释器和基于JIT编译器的实现P9的调优配置的微基准测试和SPECweb2005基准测试结果。微基准测试的实验结果显示,P9的优势为2.5-9.5倍,而SPECweb2005的测量结果显示,P9的优势约为20-30%。这些结果表明,在实际的Web应用服务器环境中,动态脚本语言处理的加速确实很重要。CPU使用情况分析显示,对于SPECweb2005场景,我们简单的JIT编译器引入将PHP核心运行时开销从45%减少到13%,这意味着动态编译器的进一步改进将提供很少的额外回报,除非其他主要开销(如语言运行时和Web服务器前端之间的大量内存拷贝)减少。
{"title":"Evaluation of a just-in-time compiler retrofitted for PHP","authors":"Michiaki Tatsubori, Akihiko Tozawa, T. Suzumura, Scott Trent, Tamiya Onodera","doi":"10.1145/1735997.1736015","DOIUrl":"https://doi.org/10.1145/1735997.1736015","url":null,"abstract":"Programmers who develop Web applications often use dynamic scripting languages such as Perl, PHP, Python, and Ruby. For general purpose scripting language usage, interpreter-based implementations are efficient and popular but the server-side usage for Web application development implies an opportunity to significantly enhance Web server throughput. This paper summarizes a study of the optimization of PHP script processing. We developed a PHP processor, P9, by adapting an existing production-quality just-in-time (JIT) compiler for a Java virtual machine, for which optimization technologies have been well-established, especially for server-side application. This paper describes and contrasts microbenchmarks and SPECweb2005 benchmark results for a well-tuned configuration of a traditional PHP interpreter and our JIT compiler-based implementation, P9. Experimental results with the microbenchmarks show 2.5-9.5x advantage with P9, and the SPECweb2005 measurements show about 20-30% improvements. These results show that the acceleration of dynamic scripting language processing does matter in a realistic Web application server environment. CPU usage profiling shows our simple JIT compiler introduction reduces the PHP core runtime overhead from 45% to 13% for a SPECweb2005 scenario, implying that further improvements of dynamic compilers would provide little additional return unless other major overheads such as heavy memory copy between the language runtime and Web server frontend are reduced.","PeriodicalId":202844,"journal":{"name":"International Conference on Virtual Execution Environments","volume":"1 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2010-03-17","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"129638585","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 14
VMKit: a substrate for managed runtime environments VMKit:托管运行时环境的基板
Pub Date : 2010-03-17 DOI: 10.1145/1735997.1736006
Nicolas Geoffray, Gaël Thomas, J. Lawall, Gilles Muller, B. Folliot
Managed Runtime Environments (MREs), such as the JVM and the CLI, form an attractive environment for program execution, by providing portability and safety, via the use of a bytecode language and automatic memory management, as well as good performance, via just-in-time (JIT) compilation. Nevertheless, developing a fully featured MRE, including e.g. a garbage collector and JIT compiler, is a herculean task. As a result, new languages cannot easily take advantage of the benefits of MREs, and it is difficult to experiment with extensions of existing MRE based languages. This paper describes and evaluates VMKit, a first attempt to build a common substrate that eases the development of high-level MREs. We have successfully used VMKit to build two MREs: a Java Virtual Machine and a Common Language Runtime. We provide an extensive study of the lessons learned in developing this infrastructure, and assess the ease of implementing new MREs or MRE extensions and the resulting performance. In particular, it took one of the authors only one month to develop a Common Language Runtime using VMKit. VMKit furthermore has performance comparableto the well established open source MREs Cacao, Apache Harmony and Mono, and is 1.2 to 3 times slower than JikesRVM on most of the Dacapo benchmarks.
托管运行时环境(MREs),如JVM和CLI,通过使用字节码语言和自动内存管理提供可移植性和安全性,以及通过即时(JIT)编译提供良好的性能,形成了一个有吸引力的程序执行环境。然而,开发一个功能齐全的MRE,包括垃圾收集器和JIT编译器,是一项艰巨的任务。因此,新语言不能轻易地利用MRE的优势,并且很难试验现有的基于MRE的语言的扩展。本文描述并评估了VMKit,这是构建简化高级MREs开发的通用基板的第一次尝试。我们已经成功地使用VMKit构建了两个MREs:一个Java虚拟机和一个公共语言运行时。我们对开发此基础设施的经验教训进行了广泛的研究,并评估了实现新MREs或MRE扩展的便利性以及由此产生的性能。特别是,其中一位作者只用了一个月的时间就使用VMKit开发了一个公共语言运行库。此外,VMKit的性能可以与成熟的开源MREs可可豆、Apache Harmony和Mono相媲美,在大多数Dacapo基准测试中,它比JikesRVM慢1.2到3倍。
{"title":"VMKit: a substrate for managed runtime environments","authors":"Nicolas Geoffray, Gaël Thomas, J. Lawall, Gilles Muller, B. Folliot","doi":"10.1145/1735997.1736006","DOIUrl":"https://doi.org/10.1145/1735997.1736006","url":null,"abstract":"Managed Runtime Environments (MREs), such as the JVM and the CLI, form an attractive environment for program execution, by providing portability and safety, via the use of a bytecode language and automatic memory management, as well as good performance, via just-in-time (JIT) compilation. Nevertheless, developing a fully featured MRE, including e.g. a garbage collector and JIT compiler, is a herculean task. As a result, new languages cannot easily take advantage of the benefits of MREs, and it is difficult to experiment with extensions of existing MRE based languages.\u0000 This paper describes and evaluates VMKit, a first attempt to build a common substrate that eases the development of high-level MREs. We have successfully used VMKit to build two MREs: a Java Virtual Machine and a Common Language Runtime. We provide an extensive study of the lessons learned in developing this infrastructure, and assess the ease of implementing new MREs or MRE extensions and the resulting performance. In particular, it took one of the authors only one month to develop a Common Language Runtime using VMKit. VMKit furthermore has performance comparableto the well established open source MREs Cacao, Apache Harmony and Mono, and is 1.2 to 3 times slower than JikesRVM on most of the Dacapo benchmarks.","PeriodicalId":202844,"journal":{"name":"International Conference on Virtual Execution Environments","volume":"36 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2010-03-17","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"114734705","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 53
Capability wrangling made easy: debugging on a microkernel with valgrind 性能争论变得容易:使用valgrind在微内核上进行调试
Pub Date : 2010-03-17 DOI: 10.1145/1735997.1736001
Aaron Pohle, Björn Döbel, M. Roitzsch, Hermann Härtig
Not all operating systems are created equal. Contrasting traditional monolithic kernels, there is a class of systems called microkernels more prevalent in embedded systems like cellphones, chip cards or real-time controllers. These kernels offer an abstraction very different from the classical POSIX interface. The resulting unfamiliarity for programmers complicates development and debugging. Valgrind is a well-known debugging tool that virtualizes execution to perform dynamic binary analysis. However, it assumes to run on a POSIX-like kernel and closely interacts with the system to control execution. In this paper we analyze how to adapt Valgrind to a non-POSIX environment and describe our port to the Fiasco.OC microkernel. Additionally, we analyze bug classes that are indigenous to capability systems and show how Valgrind's flexibility can be leveraged to create custom debugging tools detecting these errors.
并不是所有的操作系统都是一样的。与传统的单片内核相比,有一类被称为微内核的系统在手机、芯片卡或实时控制器等嵌入式系统中更为普遍。这些内核提供了一个与经典POSIX接口非常不同的抽象。程序员的不熟悉使开发和调试变得复杂。Valgrind是一个著名的调试工具,它通过虚拟化执行来执行动态二进制分析。但是,它假定在类posix内核上运行,并与系统密切交互以控制执行。在本文中,我们分析了如何使Valgrind适应非posix环境,并描述了我们对惨败的移植。OC微核。此外,我们分析了功能系统固有的bug类,并展示了如何利用Valgrind的灵活性来创建检测这些错误的自定义调试工具。
{"title":"Capability wrangling made easy: debugging on a microkernel with valgrind","authors":"Aaron Pohle, Björn Döbel, M. Roitzsch, Hermann Härtig","doi":"10.1145/1735997.1736001","DOIUrl":"https://doi.org/10.1145/1735997.1736001","url":null,"abstract":"Not all operating systems are created equal. Contrasting traditional monolithic kernels, there is a class of systems called microkernels more prevalent in embedded systems like cellphones, chip cards or real-time controllers. These kernels offer an abstraction very different from the classical POSIX interface. The resulting unfamiliarity for programmers complicates development and debugging. Valgrind is a well-known debugging tool that virtualizes execution to perform dynamic binary analysis. However, it assumes to run on a POSIX-like kernel and closely interacts with the system to control execution. In this paper we analyze how to adapt Valgrind to a non-POSIX environment and describe our port to the Fiasco.OC microkernel. Additionally, we analyze bug classes that are indigenous to capability systems and show how Valgrind's flexibility can be leveraged to create custom debugging tools detecting these errors.","PeriodicalId":202844,"journal":{"name":"International Conference on Virtual Execution Environments","volume":"150 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2010-03-17","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"122555447","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 5
Efficient runtime tracking of allocation sites in Java 有效的运行时跟踪Java中的分配站点
Pub Date : 2010-03-17 DOI: 10.1145/1735997.1736014
Rei Odaira, Kazunori Ogata, K. Kawachiya, Tamiya Onodera, T. Nakatani
Tracking the allocation site of every object at runtime is useful for reliable, optimized Java. To be used in production environments, the tracking must be accurate with minimal speed loss. Previous approaches suffer from performance degradation due to the additional field added to each object or track the allocation sites only probabilistically. We propose two novel approaches to track the allocation sites of every object in Java with only a 1.0% slow-down on average. Our first approach, the Allocation-Site-as-a-Hash-code (ASH) Tracker, encodes the allocation site ID of an object into the hash code field of its header by regarding the ID as part of the hash code. ASH Tracker avoids an excessive increase in hash code collisions by dynamically shrinking the bit-length of the ID as more and more objects are allocated at that site. For those Java VMs without the hash code field, our second approach, the Allocation-Site-via-a-Class-pointer (ASC) Tracker, makes the class pointer field in an object header refer to the allocation site structure of the object, which in turn points to the actual class structure. ASC Tracker mitigates the indirection overhead by constant-class-field duplication and allocation-site equality checks. While a previous approach of adding a 4-byte field caused up to 14.4% and an average 5% slowdown, both ASH and ASC Trackers incur at most a 2.0% and an average 1.0% loss. We demonstrate the usefulness of our low-overhead trackers by an allocation-site-aware memory leak detector and allocation-site-based pretenuring in generational GC. Our pretenuring achieved on average 1.8% and up to 11.8% speedups in SPECjvm2008.
在运行时跟踪每个对象的分配位置对于可靠、优化的Java非常有用。要在生产环境中使用,跟踪必须精确,速度损失最小。以前的方法由于向每个对象添加额外的字段或仅概率地跟踪分配位置而导致性能下降。我们提出了两种新颖的方法来跟踪Java中每个对象的分配位置,平均速度只有1.0%。我们的第一种方法,即分配站点作为哈希码(ASH)跟踪器,通过将ID视为哈希码的一部分,将对象的分配站点ID编码到其头部的哈希码字段中。随着越来越多的对象被分配到该站点,ASH跟踪器通过动态收缩ID的位长度来避免哈希码冲突的过度增加。对于那些没有哈希码字段的Java vm,我们的第二种方法,即通过类指针分配站点(ASC)跟踪器,使对象头中的类指针字段指向对象的分配站点结构,而对象又指向实际的类结构。ASC跟踪器通过常量类字段复制和分配站点相等性检查减轻了间接开销。虽然之前添加4字节字段的方法导致最多14.4%和平均5%的减速,但ASH和ASC跟踪器最多只导致2.0%和平均1.0%的损失。我们通过在分代GC中使用分配站点感知的内存泄漏检测器和基于分配站点的假装来演示低开销跟踪器的有用性。我们在SPECjvm2008中实现了平均1.8%和高达11.8%的加速。
{"title":"Efficient runtime tracking of allocation sites in Java","authors":"Rei Odaira, Kazunori Ogata, K. Kawachiya, Tamiya Onodera, T. Nakatani","doi":"10.1145/1735997.1736014","DOIUrl":"https://doi.org/10.1145/1735997.1736014","url":null,"abstract":"Tracking the allocation site of every object at runtime is useful for reliable, optimized Java. To be used in production environments, the tracking must be accurate with minimal speed loss. Previous approaches suffer from performance degradation due to the additional field added to each object or track the allocation sites only probabilistically. We propose two novel approaches to track the allocation sites of every object in Java with only a 1.0% slow-down on average. Our first approach, the Allocation-Site-as-a-Hash-code (ASH) Tracker, encodes the allocation site ID of an object into the hash code field of its header by regarding the ID as part of the hash code. ASH Tracker avoids an excessive increase in hash code collisions by dynamically shrinking the bit-length of the ID as more and more objects are allocated at that site. For those Java VMs without the hash code field, our second approach, the Allocation-Site-via-a-Class-pointer (ASC) Tracker, makes the class pointer field in an object header refer to the allocation site structure of the object, which in turn points to the actual class structure. ASC Tracker mitigates the indirection overhead by constant-class-field duplication and allocation-site equality checks. While a previous approach of adding a 4-byte field caused up to 14.4% and an average 5% slowdown, both ASH and ASC Trackers incur at most a 2.0% and an average 1.0% loss. We demonstrate the usefulness of our low-overhead trackers by an allocation-site-aware memory leak detector and allocation-site-based pretenuring in generational GC. Our pretenuring achieved on average 1.8% and up to 11.8% speedups in SPECjvm2008.","PeriodicalId":202844,"journal":{"name":"International Conference on Virtual Execution Environments","volume":"10 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2010-03-17","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"122539776","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 10
Transistors to toys: teaching systems to freshmen 晶体管到玩具:教学系统到新生
Pub Date : 2010-03-17 DOI: 10.1145/1837854.1735998
Peter M. Chen
How should we introduce students to the art of system building, and when are students ready to start designing and building interesting systems? In this talk, I describe an experimental course at the University of Michigan that teaches systems to freshmen by having them conceive of, design, and build the hardware and software of a microprocessor-based educational toy. Students in this course build their own microprocessor on an FPGA using a hardware description language. They then write the complete software stack for their toy in assembly language, including device drivers for numerous I/O devices, a simple file system, a graphical user interface, digital audio processing, and application software. By building a substantial system involving hardware, system software, and application software, students gain an appreciation for the complexity and beauty of building computing systems.
我们应该如何向学生介绍系统构建的艺术,学生什么时候准备好开始设计和构建有趣的系统?在这次演讲中,我描述了密歇根大学的一门实验课程,该课程通过让新生构思、设计和构建基于微处理器的教育玩具的硬件和软件来教授系统。本课程的学生使用硬件描述语言在FPGA上构建自己的微处理器。然后,他们用汇编语言为他们的玩具编写完整的软件堆栈,包括用于大量I/O设备的设备驱动程序、简单的文件系统、图形用户界面、数字音频处理和应用软件。通过构建一个涉及硬件、系统软件和应用软件的实体系统,学生将对构建计算系统的复杂性和美感有所了解。
{"title":"Transistors to toys: teaching systems to freshmen","authors":"Peter M. Chen","doi":"10.1145/1837854.1735998","DOIUrl":"https://doi.org/10.1145/1837854.1735998","url":null,"abstract":"How should we introduce students to the art of system building, and when are students ready to start designing and building interesting systems? In this talk, I describe an experimental course at the University of Michigan that teaches systems to freshmen by having them conceive of, design, and build the hardware and software of a microprocessor-based educational toy. Students in this course build their own microprocessor on an FPGA using a hardware description language. They then write the complete software stack for their toy in assembly language, including device drivers for numerous I/O devices, a simple file system, a graphical user interface, digital audio processing, and application software. By building a substantial system involving hardware, system software, and application software, students gain an appreciation for the complexity and beauty of building computing systems.","PeriodicalId":202844,"journal":{"name":"International Conference on Virtual Execution Environments","volume":"39 3 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2010-03-17","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"132977513","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 0
Neon: system support for derived data management Neon:对派生数据管理的系统支持
Pub Date : 2010-03-17 DOI: 10.1145/1735997.1736008
Qing Zhang, J. McCullough, Justin Ma, N. Schear, Michael Vrable, Amin Vahdat, A. Snoeren, G. Voelker, S. Savage
Modern organizations face increasingly complex information management requirements. A combination of commercial needs, legal liability and regulatory imperatives has created a patchwork of mandated policies. Among these, personally identifying customer records must be carefully access-controlled, sensitive files must be encrypted on mobile computers to guard against physical theft, and intellectual property must be protected from both exposure and "poisoning." However, enforcing such policies can be quite difficult in practice since users routinely share data over networks and derive new files from these inputs--incidentally laundering any policy restrictions. In this paper, we describe a virtual machine monitor system called Neon that transparently labels derived data using byte-level "tints" and tracks these labels end to end across commodity applications, operating systems and networks. Our goal with Neon is to explore the viability and utility of transparent information flow tracking within conventional networked systems when used in the manner in which they were intended. We demonstrate that this mechanism allows the enforcement of a variety of data management policies, including data-dependent confinement, mandatory I/O encryption, and intellectual property management.
现代组织面临着日益复杂的信息管理需求。商业需求、法律责任和监管要求结合在一起,形成了一套五花八门的强制性政策。其中,个人识别客户记录必须受到严格的访问控制,移动计算机上的敏感文件必须加密,以防止物理盗窃,知识产权必须受到保护,以免暴露和“中毒”。然而,在实践中,执行这样的策略可能相当困难,因为用户经常通过网络共享数据,并从这些输入中派生新文件——顺便违反任何策略限制。在本文中,我们描述了一个名为Neon的虚拟机监控系统,该系统使用字节级“色调”透明地标记派生数据,并在商用应用程序、操作系统和网络中端到端跟踪这些标签。Neon的目标是探索传统网络系统中透明信息流跟踪的可行性和实用性,当它们以预期的方式使用时。我们演示了该机制允许执行各种数据管理策略,包括数据依赖限制、强制I/O加密和知识产权管理。
{"title":"Neon: system support for derived data management","authors":"Qing Zhang, J. McCullough, Justin Ma, N. Schear, Michael Vrable, Amin Vahdat, A. Snoeren, G. Voelker, S. Savage","doi":"10.1145/1735997.1736008","DOIUrl":"https://doi.org/10.1145/1735997.1736008","url":null,"abstract":"Modern organizations face increasingly complex information management requirements. A combination of commercial needs, legal liability and regulatory imperatives has created a patchwork of mandated policies. Among these, personally identifying customer records must be carefully access-controlled, sensitive files must be encrypted on mobile computers to guard against physical theft, and intellectual property must be protected from both exposure and \"poisoning.\" However, enforcing such policies can be quite difficult in practice since users routinely share data over networks and derive new files from these inputs--incidentally laundering any policy restrictions. In this paper, we describe a virtual machine monitor system called Neon that transparently labels derived data using byte-level \"tints\" and tracks these labels end to end across commodity applications, operating systems and networks. Our goal with Neon is to explore the viability and utility of transparent information flow tracking within conventional networked systems when used in the manner in which they were intended. We demonstrate that this mechanism allows the enforcement of a variety of data management policies, including data-dependent confinement, mandatory I/O encryption, and intellectual property management.","PeriodicalId":202844,"journal":{"name":"International Conference on Virtual Execution Environments","volume":"25 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2010-03-17","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"132893272","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 49
Dynamic binary translation specialized for embedded systems 专门用于嵌入式系统的动态二进制翻译
Pub Date : 2010-03-17 DOI: 10.1145/1735997.1736019
Goh Kondoh, H. Komatsu
This paper describes the design and implementation of a novel dynamic binary translation technique specialized for embedded systems. Virtual platforms have been widely used to develop embedded software and dynamic binary translation is essential to boost their speed in simulations. However, unlike application simulation, the code generated for systems simulation is still slow because the simulator must replicate all of the functions of the target hardware. Embedded systems, which focus on providing one or a few functions, utilize only a small portion of the processor's features most of the time. For example, they may use a Memory Management Unit (MMU) in a processor to map physical memory to effective addresses, but they may not need paged memory support as in an OS. We can exploit this to specialize the dynamically translated code for more performance. We built a specialization framework on top of a functional simulator with a dynamic binary translator. Using the framework, we implemented three specializers for an MMU, bi-endianness, and register banks. Experiments with the EEMBC1.1 benchmark showed that the speed of the specialized code was up to 39% faster than the unspecialized code.
本文介绍了一种专门用于嵌入式系统的动态二进制翻译技术的设计与实现。虚拟平台已被广泛用于开发嵌入式软件,动态二进制转换是提高其仿真速度的必要条件。然而,与应用程序模拟不同,为系统模拟生成的代码仍然很慢,因为模拟器必须复制目标硬件的所有功能。嵌入式系统专注于提供一个或几个功能,大多数时候只利用处理器功能的一小部分。例如,它们可以使用处理器中的内存管理单元(Memory Management Unit, MMU)将物理内存映射到有效地址,但是它们可能不需要像操作系统那样支持分页内存。我们可以利用这一点来专门化动态翻译的代码,以获得更高的性能。我们在一个带有动态二进制翻译器的功能模拟器之上构建了一个专门化框架。使用该框架,我们为MMU、双端制和注册库实现了三个专门化器。在EEMBC1.1基准测试中进行的实验表明,专门化代码的速度比非专门化代码快39%。
{"title":"Dynamic binary translation specialized for embedded systems","authors":"Goh Kondoh, H. Komatsu","doi":"10.1145/1735997.1736019","DOIUrl":"https://doi.org/10.1145/1735997.1736019","url":null,"abstract":"This paper describes the design and implementation of a novel dynamic binary translation technique specialized for embedded systems. Virtual platforms have been widely used to develop embedded software and dynamic binary translation is essential to boost their speed in simulations. However, unlike application simulation, the code generated for systems simulation is still slow because the simulator must replicate all of the functions of the target hardware. Embedded systems, which focus on providing one or a few functions, utilize only a small portion of the processor's features most of the time. For example, they may use a Memory Management Unit (MMU) in a processor to map physical memory to effective addresses, but they may not need paged memory support as in an OS. We can exploit this to specialize the dynamically translated code for more performance.\u0000 We built a specialization framework on top of a functional simulator with a dynamic binary translator. Using the framework, we implemented three specializers for an MMU, bi-endianness, and register banks. Experiments with the EEMBC1.1 benchmark showed that the speed of the specialized code was up to 39% faster than the unspecialized code.","PeriodicalId":202844,"journal":{"name":"International Conference on Virtual Execution Environments","volume":"41 2 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2010-03-17","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"131236428","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 12
Looking beyond a singularity 超越奇点
Pub Date : 2010-03-17 DOI: 10.1145/1837854.1735999
G. Hunt
How does one build a truly dependable software system? Seven years ago, Microsoft Research started the Singularity project to answer this question. The premise was to start with the best known software development tools and to build a new kind of operating system from the ground up. The operating system was to be both an output artifact and a laboratory for the research. Portions of the code and ideas have been incorporated into three separate Microsoft operating systems so far. I will give a brief overview of Singularity planned and built, then describe what we learned, both positive and negative. I will speculate on OS futures including current research to build an operating system in which every last assembly instruction has been verified for type safety, a system for truly mobile computation, and new tools for automatically restructuring large software systems.
如何构建一个真正可靠的软件系统?七年前,微软研究院启动了奇点项目来回答这个问题。前提是要从最知名的软件开发工具开始,从头开始构建一种新的操作系统。操作系统既是输出的产物,也是研究的实验室。到目前为止,部分代码和思想已经被整合到三个独立的微软操作系统中。我将简要概述Singularity的计划和构建,然后描述我们学到的东西,包括积极的和消极的。我将推测操作系统的未来,包括当前的研究,以构建一个操作系统,其中每一个汇编指令都经过类型安全验证,一个真正的移动计算系统,以及自动重组大型软件系统的新工具。
{"title":"Looking beyond a singularity","authors":"G. Hunt","doi":"10.1145/1837854.1735999","DOIUrl":"https://doi.org/10.1145/1837854.1735999","url":null,"abstract":"How does one build a truly dependable software system? Seven years ago, Microsoft Research started the Singularity project to answer this question. The premise was to start with the best known software development tools and to build a new kind of operating system from the ground up. The operating system was to be both an output artifact and a laboratory for the research. Portions of the code and ideas have been incorporated into three separate Microsoft operating systems so far. I will give a brief overview of Singularity planned and built, then describe what we learned, both positive and negative. I will speculate on OS futures including current research to build an operating system in which every last assembly instruction has been verified for type safety, a system for truly mobile computation, and new tools for automatically restructuring large software systems.","PeriodicalId":202844,"journal":{"name":"International Conference on Virtual Execution Environments","volume":"120 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2010-03-17","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"128070280","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 0
Energy-efficient storage in virtual machine environments 虚拟机环境中的节能存储
Pub Date : 2010-03-17 DOI: 10.1145/1735997.1736009
Lei Ye, Gen Lu, Sushanth Kumar, C. Gniady, J. Hartman
Current trends in increasing storage capacity and virtualization of resources combined with the need for energy efficiency put a challenging task in front of system designers. Previous studies have suggested many approaches to reduce hard disk energy dissipation in native OS environments; however, those mechanisms do not perform well in virtual machine environments because a virtual machine (VM) and the virtual machine monitor (VMM) that runs it have different semantic contexts. This paper explores the disk I/O activities between VMM and VMs using trace driven simulation to understand the I/O behavior of the VM system. Subsequently, this paper proposes three mechanisms to address the isolation between VMM and VMs, and increase the burstiness of hard disk accesses to increase energy efficiency of a hard disk. Compared to standard shutdown mechanisms, with eight VMs the proposed mechanisms reduce disk spin-ups, increase the disk sleep time, and reduce energy consumption by 14.8% with only 0.5% increase in execution time. We implemented the proposed mechanisms in Xen and validated our simulation results.
当前增加存储容量和资源虚拟化的趋势,以及对能源效率的需求,给系统设计人员带来了一项具有挑战性的任务。以前的研究已经提出了许多方法来减少本地操作系统环境中的硬盘能量消耗;但是,这些机制在虚拟机环境中不能很好地执行,因为虚拟机(VM)和运行它的虚拟机监视器(VMM)具有不同的语义上下文。本文使用跟踪驱动模拟来研究VMM和VM之间的磁盘I/O活动,以了解VM系统的I/O行为。随后,本文提出了三种机制来解决VMM和vm之间的隔离,并增加硬盘访问的突发性,以提高硬盘的能源效率。与标准的关闭机制相比,对于8个vm,建议的机制减少了磁盘旋转,增加了磁盘睡眠时间,并且在执行时间仅增加0.5%的情况下减少了14.8%的能耗。我们在Xen中实现了所提出的机制,并验证了仿真结果。
{"title":"Energy-efficient storage in virtual machine environments","authors":"Lei Ye, Gen Lu, Sushanth Kumar, C. Gniady, J. Hartman","doi":"10.1145/1735997.1736009","DOIUrl":"https://doi.org/10.1145/1735997.1736009","url":null,"abstract":"Current trends in increasing storage capacity and virtualization of resources combined with the need for energy efficiency put a challenging task in front of system designers. Previous studies have suggested many approaches to reduce hard disk energy dissipation in native OS environments; however, those mechanisms do not perform well in virtual machine environments because a virtual machine (VM) and the virtual machine monitor (VMM) that runs it have different semantic contexts. This paper explores the disk I/O activities between VMM and VMs using trace driven simulation to understand the I/O behavior of the VM system. Subsequently, this paper proposes three mechanisms to address the isolation between VMM and VMs, and increase the burstiness of hard disk accesses to increase energy efficiency of a hard disk. Compared to standard shutdown mechanisms, with eight VMs the proposed mechanisms reduce disk spin-ups, increase the disk sleep time, and reduce energy consumption by 14.8% with only 0.5% increase in execution time. We implemented the proposed mechanisms in Xen and validated our simulation results.","PeriodicalId":202844,"journal":{"name":"International Conference on Virtual Execution Environments","volume":"52 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2010-03-17","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"130312066","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 19
Improving compiler-runtime separation with XIR 用XIR改进编译器和运行时的分离
Pub Date : 2010-03-17 DOI: 10.1145/1735997.1736005
Ben L. Titzer, Thomas Würthinger, Doug Simon, M. Cintra
Intense research on virtual machines has highlighted the need for flexible software architectures that allow quick evaluation of new design and implementation techniques. The interface between the compiler and runtime system is a principal factor in the flexibility of both components and is critical to enabling rapid pursuit of new optimizations and features. Although many virtual machines have demonstrated modularity for many components, significant dependencies often remain between the compiler and the runtime system components such as the object model and memory management system. This paper addresses this challenge with a carefully designed strict compiler-runtime interface and the XIR language. Instead of the compiler backend lowering object operations to machine operations using hard-wired runtime-specific logic, XIR allows the runtime system to implement this logic, simultaneously simplifying and separating the backend from runtime-system details. In this paper we describe the design and implementation of this compiler-runtime interface and the XIR language in the C1X dynamic compiler, a port of the HotSpotTM Client compiler. Our results show a significant reduction in backend complexity with XIR and an overall reduction in the compiler-runtime interface complexity while still generating comparable quality code with only minor impact on compilation time.
对虚拟机的深入研究强调了对灵活的软件架构的需求,这种架构允许对新的设计和实现技术进行快速评估。编译器和运行时系统之间的接口是决定这两个组件灵活性的主要因素,并且对于快速实现新的优化和特性至关重要。尽管许多虚拟机已经为许多组件展示了模块化,但编译器和运行时系统组件(如对象模型和内存管理系统)之间仍然存在重要的依赖关系。本文通过精心设计严格的编译器-运行时接口和XIR语言解决了这一挑战。与编译器后端使用硬连接的运行时特定逻辑将对象操作降低到机器操作不同,XIR允许运行时系统实现该逻辑,同时简化并分离了后端与运行时系统细节。在本文中,我们描述了这个编译器运行时接口的设计和实现,以及在C1X动态编译器(HotSpotTM Client编译器的一个端口)中使用XIR语言。我们的结果显示,使用XIR显著降低了后端复杂性,并且总体上降低了编译器-运行时接口的复杂性,同时仍然生成质量相当的代码,对编译时间的影响很小。
{"title":"Improving compiler-runtime separation with XIR","authors":"Ben L. Titzer, Thomas Würthinger, Doug Simon, M. Cintra","doi":"10.1145/1735997.1736005","DOIUrl":"https://doi.org/10.1145/1735997.1736005","url":null,"abstract":"Intense research on virtual machines has highlighted the need for flexible software architectures that allow quick evaluation of new design and implementation techniques. The interface between the compiler and runtime system is a principal factor in the flexibility of both components and is critical to enabling rapid pursuit of new optimizations and features. Although many virtual machines have demonstrated modularity for many components, significant dependencies often remain between the compiler and the runtime system components such as the object model and memory management system. This paper addresses this challenge with a carefully designed strict compiler-runtime interface and the XIR language. Instead of the compiler backend lowering object operations to machine operations using hard-wired runtime-specific logic, XIR allows the runtime system to implement this logic, simultaneously simplifying and separating the backend from runtime-system details. In this paper we describe the design and implementation of this compiler-runtime interface and the XIR language in the C1X dynamic compiler, a port of the HotSpotTM Client compiler. Our results show a significant reduction in backend complexity with XIR and an overall reduction in the compiler-runtime interface complexity while still generating comparable quality code with only minor impact on compilation time.","PeriodicalId":202844,"journal":{"name":"International Conference on Virtual Execution Environments","volume":"29 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2010-03-17","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"128533486","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 18
期刊
International Conference on Virtual Execution Environments
全部 Acc. Chem. Res. ACS Applied Bio Materials ACS Appl. Electron. Mater. ACS Appl. Energy Mater. ACS Appl. Mater. Interfaces ACS Appl. Nano Mater. ACS Appl. Polym. Mater. ACS BIOMATER-SCI ENG ACS Catal. ACS Cent. Sci. ACS Chem. Biol. ACS Chemical Health & Safety ACS Chem. Neurosci. ACS Comb. Sci. ACS Earth Space Chem. ACS Energy Lett. ACS Infect. Dis. ACS Macro Lett. ACS Mater. Lett. ACS Med. Chem. Lett. ACS Nano ACS Omega ACS Photonics ACS Sens. ACS Sustainable Chem. Eng. ACS Synth. Biol. Anal. Chem. BIOCHEMISTRY-US Bioconjugate Chem. BIOMACROMOLECULES Chem. Res. Toxicol. Chem. Rev. Chem. Mater. CRYST GROWTH DES ENERG FUEL Environ. Sci. Technol. Environ. Sci. Technol. Lett. Eur. J. Inorg. Chem. IND ENG CHEM RES Inorg. Chem. J. Agric. Food. Chem. J. Chem. Eng. Data J. Chem. Educ. J. Chem. Inf. Model. J. Chem. Theory Comput. J. Med. Chem. J. Nat. Prod. J PROTEOME RES J. Am. Chem. Soc. LANGMUIR MACROMOLECULES Mol. Pharmaceutics Nano Lett. Org. Lett. ORG PROCESS RES DEV ORGANOMETALLICS J. Org. Chem. J. Phys. Chem. J. Phys. Chem. A J. Phys. Chem. B J. Phys. Chem. C J. Phys. Chem. Lett. Analyst Anal. Methods Biomater. Sci. Catal. Sci. Technol. Chem. Commun. Chem. Soc. Rev. CHEM EDUC RES PRACT CRYSTENGCOMM Dalton Trans. Energy Environ. Sci. ENVIRON SCI-NANO ENVIRON SCI-PROC IMP ENVIRON SCI-WAT RES Faraday Discuss. Food Funct. Green Chem. Inorg. Chem. Front. Integr. Biol. J. Anal. At. Spectrom. J. Mater. Chem. A J. Mater. Chem. B J. Mater. Chem. C Lab Chip Mater. Chem. Front. Mater. Horiz. MEDCHEMCOMM Metallomics Mol. Biosyst. Mol. Syst. Des. Eng. Nanoscale Nanoscale Horiz. Nat. Prod. Rep. New J. Chem. Org. Biomol. Chem. Org. Chem. Front. PHOTOCH PHOTOBIO SCI PCCP Polym. Chem.
×
引用
GB/T 7714-2015
复制
MLA
复制
APA
复制
导出至
BibTeX EndNote RefMan NoteFirst NoteExpress
×
0
微信
客服QQ
Book学术公众号 扫码关注我们
反馈
×
意见反馈
请填写您的意见或建议
请填写您的手机或邮箱
×
提示
您的信息不完整,为了账户安全,请先补充。
现在去补充
×
提示
您因"违规操作"
具体请查看互助需知
我知道了
×
提示
现在去查看 取消
×
提示
确定
Book学术官方微信
Book学术文献互助
Book学术文献互助群
群 号:481959085
Book学术
文献互助 智能选刊 最新文献 互助须知 联系我们:info@booksci.cn
Book学术提供免费学术资源搜索服务,方便国内外学者检索中英文文献。致力于提供最便捷和优质的服务体验。
Copyright © 2023 Book学术 All rights reserved.
ghs 京公网安备 11010802042870号 京ICP备2023020795号-1