Abstract
Virtual machines (vms) have enjoyed a resurgence as a way of allowing the same
application program to be used across a range of computer systems. This flexibility
comes from the abstraction that the vm provides over the native interface of a
particular computer. However, this also means that the application is prevented from
taking thefeatures of particular physical machines into account in its implementation.
This dissertation addresses the question of why, where and how it is useful, possible
and practicable to provide an application with access to lower-level interfaces. It
argues that many aspects of vm implementation can be devolved safely to untrusted
applications and demonstrates this through a prototype which allows control over
run-time compilation, object placement within the heap and thread scheduling. The
proposed architecture separates these application-specific policy implementations
from the application itself. This allows one application to be used with different
policies on different systems and also allows naïve or premature optimizations to be
removed.
Users
Please
log in to take part in the discussion (add own reviews or comments).