首页 > 最新文献

International Conference on Virtual Execution Environments最新文献

英文 中文
Mortar: filling the gaps in data center memory 砂浆:填补数据中心内存的空白
Pub Date : 2014-03-01 DOI: 10.1145/2576195.2576203
Jinho Hwang, Ahsen J. Uppal, Timothy Wood, Howie Huang
Data center servers are typically overprovisioned, leaving spare memory and CPU capacity idle to handle unpredictable workload bursts by the virtual machines running on them. While this allows for fast hotspot mitigation, it is also wasteful. Unfortunately, making use of spare capacity without impacting active applications is particularly difficult for memory since it typically must be allocated in coarse chunks over long timescales. In this work we propose re- purposing the poorly utilized memory in a data center to store a volatile data store that is managed by the hypervisor. We present two uses for our Mortar framework: as a cache for prefetching disk blocks, and as an application-level distributed cache that follows the memcached protocol. Both prototypes use the framework to ask the hypervisor to store useful, but recoverable data within its free memory pool. This allows the hypervisor to control eviction policies and prioritize access to the cache. We demonstrate the benefits of our prototypes using realistic web applications and disk benchmarks, as well as memory traces gathered from live servers in our university's IT department. By expanding and contracting the data store size based on the free memory available, Mortar improves average response time of a web application by up to 35% compared to a fixed size memcached deployment, and improves overall video streaming performance by 45% through prefetching.
数据中心服务器通常是过度配置的,使空闲内存和CPU容量闲置,以处理在其上运行的虚拟机所产生的不可预测的工作负载突发。虽然这允许快速热点缓解,但也很浪费。不幸的是,在不影响活动应用程序的情况下利用空闲容量对于内存来说尤其困难,因为它通常必须在很长的时间尺度上以粗块的形式分配。在这项工作中,我们建议重新利用数据中心中利用率较低的内存来存储由管理程序管理的易失性数据存储。我们提出了砂浆框架的两种用途:作为预取磁盘块的缓存,以及作为遵循memcached协议的应用程序级分布式缓存。这两个原型都使用框架要求hypervisor在其空闲内存池中存储有用但可恢复的数据。这允许虚拟机监控程序控制退出策略并优先考虑对缓存的访问。我们使用真实的web应用程序和磁盘基准,以及从我们大学IT部门的实时服务器收集的内存跟踪来演示我们的原型的好处。通过根据可用的空闲内存扩展和收缩数据存储大小,与固定大小的memcached部署相比,砂浆将web应用程序的平均响应时间提高了35%,并通过预取将整体视频流性能提高了45%。
{"title":"Mortar: filling the gaps in data center memory","authors":"Jinho Hwang, Ahsen J. Uppal, Timothy Wood, Howie Huang","doi":"10.1145/2576195.2576203","DOIUrl":"https://doi.org/10.1145/2576195.2576203","url":null,"abstract":"Data center servers are typically overprovisioned, leaving spare memory and CPU capacity idle to handle unpredictable workload bursts by the virtual machines running on them. While this allows for fast hotspot mitigation, it is also wasteful. Unfortunately, making use of spare capacity without impacting active applications is particularly difficult for memory since it typically must be allocated in coarse chunks over long timescales. In this work we propose re- purposing the poorly utilized memory in a data center to store a volatile data store that is managed by the hypervisor. We present two uses for our Mortar framework: as a cache for prefetching disk blocks, and as an application-level distributed cache that follows the memcached protocol. Both prototypes use the framework to ask the hypervisor to store useful, but recoverable data within its free memory pool. This allows the hypervisor to control eviction policies and prioritize access to the cache. We demonstrate the benefits of our prototypes using realistic web applications and disk benchmarks, as well as memory traces gathered from live servers in our university's IT department. By expanding and contracting the data store size based on the free memory available, Mortar improves average response time of a web application by up to 35% compared to a fixed size memcached deployment, and improves overall video streaming performance by 45% through prefetching.","PeriodicalId":202844,"journal":{"name":"International Conference on Virtual Execution Environments","volume":"20 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2014-03-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"125981324","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}
引用次数: 25
String deduplication for Java-based middleware in virtualized environments 用于虚拟环境中基于java的中间件的字符串重复数据删除
Pub Date : 2014-03-01 DOI: 10.1145/2576195.2576210
Michihiro Horie, Kazunori Ogata, K. Kawachiya, Tamiya Onodera
To increase the memory efficiency in physical servers is a significant concern for increasing the number of virtual machines (VM) in them. When similar web application service runs in each guest VM, many string data with the same values are created in every guest VMs. These duplications of string data are redundant from the viewpoint of memory efficiency in the host OS. This paper proposes two approaches to reduce the duplication in Java string in a single Java VM (JVM) and across JVMs. The first approach is to share string objects cross JVMs by using a read-only memory-mapped file. The other approach is to selectively unify string objects created at runtime in the web applications. This paper evaluates our approach by using the Apache DayTrader and the DaCapo benchmark suite. Our prototype implementation chieved 7% to 12% reduction in the total size of the objects allocated over the lifetime of the programs. In addition, we observed the performance of DayTrader was maintained even under a situation of high density guest VMs in a KVM host machine.
提高物理服务器的内存效率是增加物理服务器中的虚拟机(VM)数量的一个重要问题。当类似的web应用程序服务在每个客户VM中运行时,在每个客户VM中创建许多具有相同值的字符串数据。从主机操作系统内存效率的角度来看,这些字符串数据的重复是冗余的。本文提出了两种方法来减少Java字符串在单个Java虚拟机(JVM)和跨JVM中的重复。第一种方法是通过使用只读内存映射文件跨jvm共享字符串对象。另一种方法是有选择地统一web应用程序运行时创建的字符串对象。本文通过使用Apache DayTrader和DaCapo基准测试套件来评估我们的方法。我们的原型实现在程序的生命周期内将分配的对象的总大小减少了7%到12%。此外,我们观察到,即使在KVM主机上的高密度客户机vm情况下,DayTrader的性能也保持不变。
{"title":"String deduplication for Java-based middleware in virtualized environments","authors":"Michihiro Horie, Kazunori Ogata, K. Kawachiya, Tamiya Onodera","doi":"10.1145/2576195.2576210","DOIUrl":"https://doi.org/10.1145/2576195.2576210","url":null,"abstract":"To increase the memory efficiency in physical servers is a significant concern for increasing the number of virtual machines (VM) in them. When similar web application service runs in each guest VM, many string data with the same values are created in every guest VMs. These duplications of string data are redundant from the viewpoint of memory efficiency in the host OS. This paper proposes two approaches to reduce the duplication in Java string in a single Java VM (JVM) and across JVMs. The first approach is to share string objects cross JVMs by using a read-only memory-mapped file. The other approach is to selectively unify string objects created at runtime in the web applications. This paper evaluates our approach by using the Apache DayTrader and the DaCapo benchmark suite. Our prototype implementation chieved 7% to 12% reduction in the total size of the objects allocated over the lifetime of the programs. In addition, we observed the performance of DayTrader was maintained even under a situation of high density guest VMs in a KVM host machine.","PeriodicalId":202844,"journal":{"name":"International Conference on Virtual Execution Environments","volume":"32 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2014-03-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"132361558","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}
引用次数: 4
A fast abstract syntax tree interpreter for R 一个快速的抽象语法树解释器
Pub Date : 2014-03-01 DOI: 10.1145/2576195.2576205
T. Kalibera, Petr Maj, Floréal Morandat, J. Vitek
Dynamic languages have been gaining popularity to the point that their performance is starting to matter. The effort required to develop a production-quality, high-performance runtime is, however, staggering and the expertise required to do so is often out of reach of the community maintaining a particular language. Many domain specific languages remain stuck with naive implementations, as they are easy to write and simple to maintain for domain scientists. In this paper, we try to see how far one can push a naive implementation while remaining portable and not requiring expertise in compilers and runtime systems. We choose the R language, a dynamic language used in statistics, as the target of our experiment and adopt the simplest possible implementation strategy, one based on evaluation of abstract syntax trees. We build our interpreter on top of a Java virtual machine and use only facilities available to all Java programmers. We compare our results to other implementations of R.
动态语言越来越受欢迎,以至于它们的性能开始变得重要起来。然而,开发生产质量的高性能运行时所需的工作是惊人的,并且这样做所需的专业知识通常超出了维护特定语言的社区的能力。许多领域特定的语言仍然停留在幼稚的实现上,因为它们对领域科学家来说很容易编写和维护。在本文中,我们试图了解在保持可移植性和不需要编译器和运行时系统专业知识的情况下,可以将一个幼稚的实现推进到什么程度。我们选择R语言,一种用于统计的动态语言,作为我们实验的目标,并采用尽可能简单的实现策略,一种基于抽象语法树评估的策略。我们在Java虚拟机上构建解释器,并且只使用所有Java程序员都可以使用的工具。我们将我们的结果与R的其他实现进行比较。
{"title":"A fast abstract syntax tree interpreter for R","authors":"T. Kalibera, Petr Maj, Floréal Morandat, J. Vitek","doi":"10.1145/2576195.2576205","DOIUrl":"https://doi.org/10.1145/2576195.2576205","url":null,"abstract":"Dynamic languages have been gaining popularity to the point that their performance is starting to matter. The effort required to develop a production-quality, high-performance runtime is, however, staggering and the expertise required to do so is often out of reach of the community maintaining a particular language. Many domain specific languages remain stuck with naive implementations, as they are easy to write and simple to maintain for domain scientists. In this paper, we try to see how far one can push a naive implementation while remaining portable and not requiring expertise in compilers and runtime systems. We choose the R language, a dynamic language used in statistics, as the target of our experiment and adopt the simplest possible implementation strategy, one based on evaluation of abstract syntax trees. We build our interpreter on top of a Java virtual machine and use only facilities available to all Java programmers. We compare our results to other implementations of R.","PeriodicalId":202844,"journal":{"name":"International Conference on Virtual Execution Environments","volume":"120 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2014-03-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"116964568","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}
引用次数: 42
Composable multi-level debugging with Stackdb 可组合的多层调试与Stackdb
Pub Date : 2014-03-01 DOI: 10.1145/2576195.2576212
David Johnson, Mike Hibler, E. Eide
Virtual machine introspection (VMI) allows users to debug software that executes within a virtual machine. To support rich, whole-system analyses, a VMI tool must inspect and control systems at multiple levels of the software stack. Traditional debuggers enable inspection and control, but they limit users to treating a whole system as just one kind of target: e.g., just a kernel, or just a process, but not both. We created Stackdb, a debugging library with VMI support that allows one to monitor and control a whole system through multiple, coordinated targets. A target corresponds to a particular level of the system's software stack; multiple targets allow a user to observe a VM guest at several levels of abstraction simultaneously. For example, with Stackdb, one can observe a PHP script running in a Linux process in a Xen VM via three coordinated targets at the language, process, and kernel levels. Within Stackdb, higher-level targets are components that utilize lower-level targets; a key contribution of Stackdb is its API that supports multi-level and flexible "stacks" of targets. This paper describes the challenges we faced in creating Stackdb, presents the solutions we devised, and evaluates Stackdb through its application to a security-focused, whole-system case study.
虚拟机自省(VMI)允许用户调试在虚拟机内执行的软件。为了支持丰富的全系统分析,VMI工具必须在软件堆栈的多个层次上检查和控制系统。传统的调试器支持检查和控制,但是它们限制了用户将整个系统仅仅作为一种目标:例如,仅仅是一个内核,或者仅仅是一个进程,而不是两者兼而有之。我们创建了Stackdb,这是一个支持VMI的调试库,它允许人们通过多个协调的目标监视和控制整个系统。目标对应于系统软件堆栈的特定级别;多目标允许用户同时在多个抽象级别上观察VM客户机。例如,使用Stackdb,可以通过语言、进程和内核级别的三个协调目标观察在Xen VM中的Linux进程中运行的PHP脚本。在Stackdb中,高级目标是利用低级目标的组件;Stackdb的一个关键贡献是它的API支持多层次和灵活的目标“堆栈”。本文描述了我们在创建Stackdb时面临的挑战,提出了我们设计的解决方案,并通过其应用程序对Stackdb进行了评估,以安全性为重点,对整个系统进行了案例研究。
{"title":"Composable multi-level debugging with Stackdb","authors":"David Johnson, Mike Hibler, E. Eide","doi":"10.1145/2576195.2576212","DOIUrl":"https://doi.org/10.1145/2576195.2576212","url":null,"abstract":"Virtual machine introspection (VMI) allows users to debug software that executes within a virtual machine. To support rich, whole-system analyses, a VMI tool must inspect and control systems at multiple levels of the software stack. Traditional debuggers enable inspection and control, but they limit users to treating a whole system as just one kind of target: e.g., just a kernel, or just a process, but not both.\u0000 We created Stackdb, a debugging library with VMI support that allows one to monitor and control a whole system through multiple, coordinated targets. A target corresponds to a particular level of the system's software stack; multiple targets allow a user to observe a VM guest at several levels of abstraction simultaneously. For example, with Stackdb, one can observe a PHP script running in a Linux process in a Xen VM via three coordinated targets at the language, process, and kernel levels. Within Stackdb, higher-level targets are components that utilize lower-level targets; a key contribution of Stackdb is its API that supports multi-level and flexible \"stacks\" of targets. This paper describes the challenges we faced in creating Stackdb, presents the solutions we devised, and evaluates Stackdb through its application to a security-focused, whole-system case study.","PeriodicalId":202844,"journal":{"name":"International Conference on Virtual Execution Environments","volume":"238 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2014-03-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"124624609","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
DBILL: an efficient and retargetable dynamic binary instrumentation framework using llvm backend DBILL:一个使用llvm后端,高效且可重定向的动态二进制检测框架
Pub Date : 2014-03-01 DOI: 10.1145/2576195.2576213
Yi-Hong Lyu, Ding-Yong Hong, Tai-Yi Wu, Jan-Jan Wu, W. Hsu, Pangfeng Liu, P. Yew
Dynamic Binary Instrumentation (DBI) is a core technology for building debugging and profiling tools for application executables. Most state-of-the-art DBI systems have focused on the same instruction set architecture (ISA) where the guest binary and the host binary have the same ISA. It is uncommon to have a cross-ISA DBI system, such as a system that instruments ARM executables to run on x86 machines. We believe cross-ISA DBI systems are increasingly more important, since ARM executables could be more productively analyzed on x86 based machines such as commonly available PCs and servers. In this paper, we present DBILL, a cross-ISA and re- targetable dynamic binary instrumentation framework that builds on both QEMU and LLVM. The DBILL framework enables LLVM-based static instrumentation tools to become DBI ready, and deployable to different target architectures. Using address sanitizer and memory sanitizer as implementation examples, we show DBILL is an efficient, versatile and easy to use cross-ISA retargetable DBI framework.
动态二进制检测(Dynamic Binary Instrumentation, DBI)是为应用程序可执行文件构建调试和分析工具的核心技术。大多数最先进的DBI系统都专注于相同的指令集体系结构(ISA),其中来宾二进制和主机二进制具有相同的ISA。跨isa DBI系统并不常见,例如将ARM可执行文件配置到x86机器上运行的系统。我们相信跨isa DBI系统将变得越来越重要,因为ARM可执行文件可以在基于x86的机器(如通用的pc和服务器)上进行更高效的分析。在本文中,我们提出了DBILL,一个基于QEMU和LLVM的跨isa和可重目标动态二进制检测框架。DBILL框架使基于llvm的静态检测工具能够为DBI做好准备,并可部署到不同的目标体系结构中。通过地址消毒器和内存消毒器作为实现示例,我们展示了DBILL是一个高效、通用且易于使用的跨isa可重定向DBI框架。
{"title":"DBILL: an efficient and retargetable dynamic binary instrumentation framework using llvm backend","authors":"Yi-Hong Lyu, Ding-Yong Hong, Tai-Yi Wu, Jan-Jan Wu, W. Hsu, Pangfeng Liu, P. Yew","doi":"10.1145/2576195.2576213","DOIUrl":"https://doi.org/10.1145/2576195.2576213","url":null,"abstract":"Dynamic Binary Instrumentation (DBI) is a core technology for building debugging and profiling tools for application executables. Most state-of-the-art DBI systems have focused on the same instruction set architecture (ISA) where the guest binary and the host binary have the same ISA. It is uncommon to have a cross-ISA DBI system, such as a system that instruments ARM executables to run on x86 machines. We believe cross-ISA DBI systems are increasingly more important, since ARM executables could be more productively analyzed on x86 based machines such as commonly available PCs and servers. In this paper, we present DBILL, a cross-ISA and re- targetable dynamic binary instrumentation framework that builds on both QEMU and LLVM. The DBILL framework enables LLVM-based static instrumentation tools to become DBI ready, and deployable to different target architectures. Using address sanitizer and memory sanitizer as implementation examples, we show DBILL is an efficient, versatile and easy to use cross-ISA retargetable DBI framework.","PeriodicalId":202844,"journal":{"name":"International Conference on Virtual Execution Environments","volume":"9 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2014-03-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"121520834","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}
引用次数: 15
COMMA: coordinating the migration of multi-tier applications 逗号:协调多层应用程序的迁移
Pub Date : 2014-03-01 DOI: 10.1145/2576195.2576200
Jie Zheng, T. Ng, K. Sripanidkulchai, Zhaolei Liu
Multi-tier applications are widely deployed in today's virtualized cloud computing environments. At the same time, management operations in these virtualized environments, such as load balancing, hardware maintenance, workload consolidation, etc., often make use of live virtual machine (VM) migration to control the placement of VMs. Although existing solutions are able to migrate a single VM efficiently, little attention has been devoted to migrating related VMs in multi-tier applications. Ignoring the relatedness of VMs during migration can lead to serious application performance degradation. This paper formulates the multi-tier application migration problem, and presents a new communication-impact-driven coordinated approach, as well as a system called COMMA that realizes this approach. Through extensive testbed experiments, numerical analyses, and a demonstration of COMMA on Amazon EC2, we show that this approach is highly effective in minimizing migration's impact on multi-tier applications' performance.
在当今的虚拟化云计算环境中,广泛部署了多层应用程序。同时,在这些虚拟化环境中的管理操作,如负载平衡、硬件维护、工作负载整合等,通常会使用live virtual machine (VM)迁移来控制VM的位置。虽然现有的解决方案能够有效地迁移单个虚拟机,但很少有人关注多层应用程序中相关虚拟机的迁移。在迁移过程中忽略虚拟机的相关性可能会导致应用程序性能严重下降。本文阐述了多层应用程序迁移问题,提出了一种新的通信影响驱动的协调方法,并实现了一个名为COMMA的系统。通过广泛的试验台实验、数值分析和在Amazon EC2上的COMMA演示,我们表明这种方法在最小化迁移对多层应用程序性能的影响方面非常有效。
{"title":"COMMA: coordinating the migration of multi-tier applications","authors":"Jie Zheng, T. Ng, K. Sripanidkulchai, Zhaolei Liu","doi":"10.1145/2576195.2576200","DOIUrl":"https://doi.org/10.1145/2576195.2576200","url":null,"abstract":"Multi-tier applications are widely deployed in today's virtualized cloud computing environments. At the same time, management operations in these virtualized environments, such as load balancing, hardware maintenance, workload consolidation, etc., often make use of live virtual machine (VM) migration to control the placement of VMs. Although existing solutions are able to migrate a single VM efficiently, little attention has been devoted to migrating related VMs in multi-tier applications. Ignoring the relatedness of VMs during migration can lead to serious application performance degradation. This paper formulates the multi-tier application migration problem, and presents a new communication-impact-driven coordinated approach, as well as a system called COMMA that realizes this approach. Through extensive testbed experiments, numerical analyses, and a demonstration of COMMA on Amazon EC2, we show that this approach is highly effective in minimizing migration's impact on multi-tier applications' performance.","PeriodicalId":202844,"journal":{"name":"International Conference on Virtual Execution Environments","volume":"28 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2014-03-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"132368583","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}
引用次数: 39
Deoptimization for dynamic language JITs on typed, stack-based virtual machines 在类型化的、基于堆栈的虚拟机上对动态语言jit进行反优化
Pub Date : 2014-03-01 DOI: 10.1145/2576195.2576209
Madhukar N. Kedlaya, Behnam Robatmili, Calin Cascaval, B. Hardekopf
We are interested in implementing dynamic language runtimes on top of language-level virtual machines. Type specialization is a critical optimization for dynamic language runtimes: generic code that handles any type of data is replaced with specialized code for particular types observed during execution. However, types can change, and the runtime must recover whenever unexpected types are encountered. The state-of-the-art recovery mechanism is called deoptimization. Deoptimization is a well-known technique for dynamic language runtimes implemented in low-level languages like C. However, no dynamic language runtime implemented on top of a virtual machine such as the Common Language Runtime (CLR) or the Java Virtual Machine (JVM) uses deoptimization, because the implementation thereof used in low-level languages is not possible. In this paper we propose a novel technique that enables deoptimization for dynamic language runtimes implemented on top of typed, stack-based virtual machines. Our technique does not require any changes to the underlying virtual machine. We implement our proposed technique in a JavaScript language implementation, MCJS, running on top of the Mono runtime (CLR). We evaluate our implementation against the current state-of-the-art recovery mechanism for virtual machine-based runtimes, as implemented both in MCJS and in IronJS. We show that deoptimization provides significant performance benefits, even for runtimes running on top of a virtual machine.
我们对在语言级虚拟机上实现动态语言运行时很感兴趣。类型专门化是动态语言运行时的关键优化:处理任何类型数据的泛型代码被替换为在执行期间观察到的特定类型的专门化代码。但是,类型可以更改,并且运行时必须在遇到意外类型时进行恢复。最先进的恢复机制被称为去优化。反优化是用c等低级语言实现的动态语言运行时的一种众所周知的技术。然而,在虚拟机(如公共语言运行时(CLR)或Java虚拟机(JVM))上实现的动态语言运行时没有使用反优化,因为在低级语言中实现它是不可能的。在本文中,我们提出了一种新的技术,可以在基于类型的堆栈的虚拟机上实现动态语言运行时的反优化。我们的技术不需要对底层虚拟机进行任何更改。我们在运行于Mono运行时(CLR)之上的JavaScript语言实现MCJS中实现了我们提出的技术。我们根据MCJS和IronJS中实现的基于虚拟机运行时的当前最先进的恢复机制来评估我们的实现。我们展示了反优化提供了显著的性能优势,即使对于运行在虚拟机之上的运行时也是如此。
{"title":"Deoptimization for dynamic language JITs on typed, stack-based virtual machines","authors":"Madhukar N. Kedlaya, Behnam Robatmili, Calin Cascaval, B. Hardekopf","doi":"10.1145/2576195.2576209","DOIUrl":"https://doi.org/10.1145/2576195.2576209","url":null,"abstract":"We are interested in implementing dynamic language runtimes on top of language-level virtual machines. Type specialization is a critical optimization for dynamic language runtimes: generic code that handles any type of data is replaced with specialized code for particular types observed during execution. However, types can change, and the runtime must recover whenever unexpected types are encountered. The state-of-the-art recovery mechanism is called deoptimization. Deoptimization is a well-known technique for dynamic language runtimes implemented in low-level languages like C. However, no dynamic language runtime implemented on top of a virtual machine such as the Common Language Runtime (CLR) or the Java Virtual Machine (JVM) uses deoptimization, because the implementation thereof used in low-level languages is not possible.\u0000 In this paper we propose a novel technique that enables deoptimization for dynamic language runtimes implemented on top of typed, stack-based virtual machines. Our technique does not require any changes to the underlying virtual machine. We implement our proposed technique in a JavaScript language implementation, MCJS, running on top of the Mono runtime (CLR). We evaluate our implementation against the current state-of-the-art recovery mechanism for virtual machine-based runtimes, as implemented both in MCJS and in IronJS. We show that deoptimization provides significant performance benefits, even for runtimes running on top of a virtual machine.","PeriodicalId":202844,"journal":{"name":"International Conference on Virtual Execution Environments","volume":"29 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2014-03-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"125087830","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
Experiences in the land of virtual abstractions 虚拟抽象领域的体验
Pub Date : 2014-03-01 DOI: 10.1145/2674025.2576215
G. Hunt
The Microsoft Research Drawbridge Project began with a simple question: Is it possible to achieve the benefits of hardware virtual machines without the overheads? Following that question, we have built a line of exploratory prototypes. These prototypes range from an ARM-based phone that runs x86 Windows binaries to new forms of secure computation. In this talk, I'll briefly describe our various prototypes and the evidence we have accumulated that our first question can be answered in the affirmative.
微软研究院吊桥项目从一个简单的问题开始:有没有可能在没有开销的情况下获得硬件虚拟机的好处?根据这个问题,我们建立了一系列探索性原型。这些原型包括基于arm的手机,运行x86 Windows二进制文件,以及新的安全计算形式。在这次演讲中,我将简要描述我们的各种原型和我们积累的证据,这些证据可以肯定地回答我们的第一个问题。
{"title":"Experiences in the land of virtual abstractions","authors":"G. Hunt","doi":"10.1145/2674025.2576215","DOIUrl":"https://doi.org/10.1145/2674025.2576215","url":null,"abstract":"The Microsoft Research Drawbridge Project began with a simple question: Is it possible to achieve the benefits of hardware virtual machines without the overheads? Following that question, we have built a line of exploratory prototypes. These prototypes range from an ARM-based phone that runs x86 Windows binaries to new forms of secure computation. In this talk, I'll briefly describe our various prototypes and the evidence we have accumulated that our first question can be answered in the affirmative.","PeriodicalId":202844,"journal":{"name":"International Conference on Virtual Execution Environments","volume":"73 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2014-03-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"130564880","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
CMD: classification-based memory deduplication through page access characteristics CMD:通过页面访问特征进行基于分类的内存重复数据删除
Pub Date : 2014-03-01 DOI: 10.1145/2576195.2576204
Licheng Chen, Zhipeng Wei, Zehan Cui, Mingyu Chen, Haiyang Pan, Yungang Bao
Limited main memory size is considered as one of the major bottlenecks in virtualization environments. Content-Based Page Sharing (CBPS) is an efficient memory deduplication technique to reduce server memory requirements, in which pages with same content are detected and shared into a single copy. As the widely used implementation of CBPS, Kernel Samepage Merging (KSM) maintains the whole memory pages into two global comparison trees (a stable tree and an unstable tree). To detect page sharing opportunities, each tracked page needs to be compared with pages already in these two large global trees. However since the vast majority of compared pages have different content with it, that will induce massive futility comparisons and thus heavy overhead. In this paper, we propose a lightweight page Classification-based Memory Deduplication approach named CMD to reduce futile page comparison overhead meanwhile to detect page sharing opportunities efficiently. The main innovation of CMD is that pages are grouped into different classifications based on page access characteristics. Pages with similar access characteristics are suggested to have higher possibility with same content, thus they are grouped into the same classification. In CMD, the large global comparison trees are divided into multiple small trees with dedicated local ones in each page classification. Page comparisons are performed just in the same classification, and pages from different classifications are never compared (since they probably result in futile comparisons). The experimental results show that CMD can efficiently reduce page comparisons (by about 68.5%) meanwhile detect nearly the same (by more than 98%) or even more page sharing opportunities.
有限的主内存大小被认为是虚拟化环境中的主要瓶颈之一。基于内容的页面共享(CBPS)是一种有效的内存重复数据删除技术,用于减少服务器内存需求,其中检测具有相同内容的页面并将其共享到单个副本中。作为CBPS的一种广泛应用的实现,内核同页合并(KSM)将整个内存页面维护到两个全局比较树(稳定树和不稳定树)中。为了检测页面共享机会,需要将每个跟踪的页面与这两个大型全局树中已有的页面进行比较。然而,由于绝大多数被比较的页面都有不同的内容,这将导致大量无用的比较,从而造成沉重的开销。在本文中,我们提出了一种轻量级的基于页面分类的内存重复数据删除方法CMD,以减少无用的页面比较开销,同时有效地检测页面共享机会。CMD的主要创新是基于页面访问特征将页面分组到不同的分类中。建议具有相似访问特征的页面具有相同内容的可能性更高,因此将它们分组到相同的分类中。在CMD中,大的全局比较树被分成多个小的树,每个页面分类都有专门的局部比较树。页面比较只在相同的分类中执行,从不比较来自不同分类的页面(因为它们可能导致无效的比较)。实验结果表明,CMD可以有效地减少页面比较(约68.5%),同时检测到几乎相同(超过98%)甚至更多的页面共享机会。
{"title":"CMD: classification-based memory deduplication through page access characteristics","authors":"Licheng Chen, Zhipeng Wei, Zehan Cui, Mingyu Chen, Haiyang Pan, Yungang Bao","doi":"10.1145/2576195.2576204","DOIUrl":"https://doi.org/10.1145/2576195.2576204","url":null,"abstract":"Limited main memory size is considered as one of the major bottlenecks in virtualization environments. Content-Based Page Sharing (CBPS) is an efficient memory deduplication technique to reduce server memory requirements, in which pages with same content are detected and shared into a single copy. As the widely used implementation of CBPS, Kernel Samepage Merging (KSM) maintains the whole memory pages into two global comparison trees (a stable tree and an unstable tree). To detect page sharing opportunities, each tracked page needs to be compared with pages already in these two large global trees. However since the vast majority of compared pages have different content with it, that will induce massive futility comparisons and thus heavy overhead.\u0000 In this paper, we propose a lightweight page Classification-based Memory Deduplication approach named CMD to reduce futile page comparison overhead meanwhile to detect page sharing opportunities efficiently. The main innovation of CMD is that pages are grouped into different classifications based on page access characteristics. Pages with similar access characteristics are suggested to have higher possibility with same content, thus they are grouped into the same classification. In CMD, the large global comparison trees are divided into multiple small trees with dedicated local ones in each page classification. Page comparisons are performed just in the same classification, and pages from different classifications are never compared (since they probably result in futile comparisons). The experimental results show that CMD can efficiently reduce page comparisons (by about 68.5%) meanwhile detect nearly the same (by more than 98%) or even more page sharing opportunities.","PeriodicalId":202844,"journal":{"name":"International Conference on Virtual Execution Environments","volume":"95 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2014-03-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"131792627","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}
引用次数: 44
A platform for secure static binary instrumentation 一个安全的静态二进制检测平台
Pub Date : 2014-03-01 DOI: 10.1145/2576195.2576208
Mingwei Zhang, Rui Qiao, N. Hasabnis, R. Sekar
Program instrumentation techniques form the basis of many recent software security defenses, including defenses against common exploits and security policy enforcement. As compared to source-code instrumentation, binary instrumentation is easier to use and more broadly applicable due to the ready availability of binary code. Two key features needed for security instrumentations are (a) it should be applied to all application code, including code contained in various system and application libraries, and (b) it should be non-bypassable. So far, dynamic binary instrumentation (DBI) techniques have provided these features, whereas static binary instrumentation (SBI) techniques have lacked them. These features, combined with ease of use, have made DBI the de facto choice for security instrumentations. However, DBI techniques can incur high overheads in several common usage scenarios, such as application startups, system-calls, and many real-world applications. We therefore develop a new platform for secure static binary instrumentation (PSI) that overcomes these drawbacks of DBI techniques, while retaining the security, robustness and ease-of-use features. We illustrate the versatility of PSI by developing several instrumentation applications: basic block counting, shadow stack defense against control-flow hijack and return-oriented programming attacks, and system call and library policy enforcement. While being competitive with the best DBI tools on CPU-intensive SPEC 2006 benchmark, PSI provides an order of magnitude reduction in overheads on a collection of real-world applications.
程序检测技术构成了最近许多软件安全防御的基础,包括对常见漏洞利用和安全策略实施的防御。与源代码插装相比,二进制插装更容易使用,也更广泛地适用于二进制代码。安全检测所需的两个关键特性是:(a)它应该应用于所有应用程序代码,包括包含在各种系统和应用程序库中的代码,以及(b)它应该不可绕过。到目前为止,动态二进制检测(DBI)技术已经提供了这些特性,而静态二进制检测(SBI)技术缺乏这些特性。这些特性加上易用性,使得DBI成为安全工具的实际选择。然而,DBI技术在一些常见的使用场景中会产生很高的开销,例如应用程序启动、系统调用和许多实际应用程序。因此,我们为安全静态二进制检测(PSI)开发了一个新的平台,该平台克服了DBI技术的这些缺点,同时保留了安全性、健壮性和易用性的特性。我们通过开发几个仪器应用程序来说明PSI的多功能性:基本块计数,针对控制流劫持和面向返回的编程攻击的影子堆栈防御,以及系统调用和库策略实施。虽然在cpu密集型的SPEC 2006基准测试中与最佳DBI工具竞争,但PSI在实际应用程序集合上的开销降低了一个数量级。
{"title":"A platform for secure static binary instrumentation","authors":"Mingwei Zhang, Rui Qiao, N. Hasabnis, R. Sekar","doi":"10.1145/2576195.2576208","DOIUrl":"https://doi.org/10.1145/2576195.2576208","url":null,"abstract":"Program instrumentation techniques form the basis of many recent software security defenses, including defenses against common exploits and security policy enforcement. As compared to source-code instrumentation, binary instrumentation is easier to use and more broadly applicable due to the ready availability of binary code. Two key features needed for security instrumentations are (a) it should be applied to all application code, including code contained in various system and application libraries, and (b) it should be non-bypassable. So far, dynamic binary instrumentation (DBI) techniques have provided these features, whereas static binary instrumentation (SBI) techniques have lacked them. These features, combined with ease of use, have made DBI the de facto choice for security instrumentations. However, DBI techniques can incur high overheads in several common usage scenarios, such as application startups, system-calls, and many real-world applications. We therefore develop a new platform for secure static binary instrumentation (PSI) that overcomes these drawbacks of DBI techniques, while retaining the security, robustness and ease-of-use features. We illustrate the versatility of PSI by developing several instrumentation applications: basic block counting, shadow stack defense against control-flow hijack and return-oriented programming attacks, and system call and library policy enforcement. While being competitive with the best DBI tools on CPU-intensive SPEC 2006 benchmark, PSI provides an order of magnitude reduction in overheads on a collection of real-world applications.","PeriodicalId":202844,"journal":{"name":"International Conference on Virtual Execution Environments","volume":"57 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2014-03-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"133494003","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}
引用次数: 71
期刊
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