It is our great pleasure to welcome you to the 1st International Conference on Virtual Execution Environments - VEE'05. Up to now, research results on virtual execution engines were scattered among a number of different venues in the language (VM, PLDI, OOPSLA, IVME, ICFP), operating system (SOSP, OSDI), and architecture (ASPLOS, CGO, PACT) communities. The organizers of the USENIX VM Symposium and the ACM SIGPLAN IVME Workshop felt the needs of the community would be better served by a single conference that could address the breadth of issues related to virtual execution environments. VEE is intended to be a unique forum that brings together practitioners and researchers working on interpreters, high-level language virtual machines, machine emulators, translators, and machine simulators. VEE'05 gives researchers and practitioners a unique opportunity to share their perspectives with others interested in the various aspects of virtual execution environments. This year's VEE is co-located with PLDI 2005 in Chicago, Illinois. Future instances are planned jointly with leading conferences in operating systems, programming languages, and architecture.The call for papers attracted 65 submissions from the USA (31), Canada (9), Austria (6), Switzerland (3), Japan (3), Ireland (2), Israel (2), Australia, Belgium, China, Finland, Germany, Hungary, Russia, Sweden, and the United Kingdom,. The submissions showed a healthy mix between academia (34), industry (22) and joint academia-industry projects (9). The program committee met at IBM Research in Hawthorne, NY on Friday, March 25, 2005. The committee accepted 19 excellent papers that cover a wide spectrum of topics related to virtual execution environments. On Saturday, March 26, members of the committee participated in an informal workshop that provided a forum for committee members to present their work and build collaborations. We hope this tradition will continue in future program committee meetings. In addition to the 19 accepted papers, the program includes keynote talks by James E. Smith and Martin Nally.
Proceeding Downloads
A unified view of virtualization
Virtualization technologies have been developed by a number of computer science and engineering disciplines, sometimes independently, often by different groups and at different times. Not surprisingly, these groups each view virtualization as a sub-...
Friendly virtual machines: leveraging a feedback-control model for application adaptation
With the increased use of "Virtual Machines" (VMs) as vehicles that isolate applications running on the same host, it is necessary to devise techniques that enable multiple VMs to share underlying resources both fairly and efficiently. To that end, one ...
Diagnosing performance overheads in the xen virtual machine environment
Virtual Machine (VM) environments (e.g., VMware and Xen) are experiencing a resurgence of interest for diverse uses including server consolidation and shared hosting. An application's performance in a virtual machine environment can differ markedly from ...
Supporting per-processor local-allocation buffers using lightweight user-level preemption notification
One challenge for runtime systems like the Java™ platform that depend on garbage collection is the ability to scale performance with the number of allocating threads. As the number of such threads grows, allocation of memory in the heap becomes a point ...
A programmable microkernel for real-time systems
We present a new software system architecture for the implementation of hard real-time applications. The core of the system is a microkernel whose reactivity (interrupt handling as in synchronous reactive programs) and proactivity (task scheduling as in ...
The pauseless GC algorithm
Modern transactional response-time sensitive applications have run into practical limits on the size of garbage collected heaps. The heap can only grow until GC pauses exceed the response-time limits. Sustainable, scalable concurrent collection has ...
Using page residency to balance tradeoffs in tracing garbage collection
We introduce an extension of mostly copying collection that uses page residency to determine when to relocate objects. Our collector promotes pages with high residency in place, avoiding unnecessary work and wasted space. It predicts the residency of ...
Exploiting frequent field values in java objects for reducing heap memory requirements
The capabilities of applications executing on embedded and mobile devices are strongly influenced by memory size limitations. In fact, memory limitations are one of the main reasons that applications run slowly or even crash in embedded/mobile devices. ...
An efficient and generic reversible debugger using the virtual machine based approach
The reverse execution of programs is a function where programs are executed backward in time. A reversible debugger is a debugger that provides such a functionality. In this paper, we propose a novel reversible debugger that enables reverse execution of ...
Module-aware translation for real-life desktop applications
A dynamic binary translator is a just-in-time compiler that translates source architecture binaries into target architecture binaries on the fly. It enables the fast running of the source architecture binaries on the target architecture. Traditional ...
Planning for code buffer management in distributed virtual execution environments
Virtual execution environments have become increasingly useful in system implementation, with dynamic translation techniques being an important component for performance-critical systems. Many devices have exceptionally tight performance and memory ...
Application servers: virtualizing location, resources, memory, users and threads for business applications and web applications
Application servers provide an environment for running business and web applications. By virtualizing threads, data and processing resources, memory and users, they provide the simplifying illusion for the programmer that the application is interacting ...
Escape analysis in the context of dynamic compilation and deoptimization
In object-oriented programming languages, an object is said to escape the method or thread in which it was created if it can also be accessed by other methods or threads. Knowing which objects do not escape allows a compiler to perform aggressive ...
Inlining java native calls at runtime
We introduce a strategy for inlining native functions into Java™ applications using a JIT compiler. We perform further optimizations to transform inlined callbacks into semantically equivalent lightweight operations. We show that this strategy can ...
Optimized interval splitting in a linear scan register allocator
We present an optimized implementation of the linear scan register allocation algorithm for Sun Microsystems' Java HotSpot™ client compiler. Linear scan register allocation is especially suitable for just-in-time compilers because it is faster than the ...
An execution layer for aspect-oriented programming languages
Language mechanisms deserve language implementation effort. While this maxim has led to sophisticated support for language features specific to object-oriented, functional and logic programming languages, aspect-oriented programming languages are still ...
Virtual machine showdown: stack versus registers
Virtual machines (VMs) are commonly used to distribute programs in an architecture-neutral format, which can easily be interpreted or compiled. A long-running question in the design of VMs is whether stack architecture or register architecture can be ...
Instrumenting annotated programs
Instrumentation is commonly used to track application behavior: to collect program profiles; to monitor component health and performance; to aid in component testing; and more. Program annotation enables developers and tools to pass extra information to ...
PDS: a virtual execution environment for software deployment
The Progressive Deployment System (PDS) is a virtual execution environment and infrastructure designed specifically for deploying software, or "assets", on demand while enabling management from a central location. PDS intercepts a select subset of ...
The entropia virtual machine for desktop grids
Desktop distributed computing allows companies to exploit the idle cycles on pervasive desktop PC systems to increase the available computing power by orders of magnitude (10x - 1000x). Applications are submitted, distributed, and run on a grid of ...
HyperSpector: virtual distributed monitoring environments for secure intrusion detection
In this paper, a virtual distributed monitoring environment called HyperSpector is described that achieves secure intrusion detection in distributed computer systems. While multiple intrusion detection systems (IDSes) can protect a distributed system ...