We propose an integration of field access rights into the java type system such that those access permission checks which are now performed dynamically (at run time), can instead be done statically, i.e. checked by th...
详细信息
We propose an integration of field access rights into the java type system such that those access permission checks which are now performed dynamically (at run time), can instead be done statically, i.e. checked by the java compiler and rechecked (at link time) by the bytecode verifier. We explain how this can be extended to remove all dynamic checks of field read access rights, completely eliminating the overhead of get methods for reading the value of a field. Improvements include using fast static lookup instead of dynamic dispatch for field access (without requiring a sophisticated inlining analysis), the space required by get methods is avoided, and denial-of-service attacks on field access is prevented. We sketch a formalization of adding field access to the bytecode verifier which will make it possible to prove that the change is safe and backwards compatible. Copyright (C) 2001 John Wiley & Sons, Ltd.
Understanding control flows in a computer program is essential for many software engineering tasks such as testing, debugging, reverse engineering, and maintenance. In this paper ,we present a control flow analysis te...
详细信息
Understanding control flows in a computer program is essential for many software engineering tasks such as testing, debugging, reverse engineering, and maintenance. In this paper ,we present a control flow analysis technique to analyze the control flow in java bytecode. To perform the analysis, we construct a control flow graph(CFG) for java bytecode not only at the intraprocedural level but also at the interprocedural level. We also discuss some applications of a CFG in a maintenance environment for java bytecode.
In this paper we examine a procedure for the analysis of data produced by the dynamic profiling of java programs. In particular, we describe the issues involved in dynamic analysis, propose a metric for discrimination...
详细信息
ISBN:
(纸本)0769513875
In this paper we examine a procedure for the analysis of data produced by the dynamic profiling of java programs. In particular, we describe the issues involved in dynamic analysis, propose a metric for discrimination between the resulting data sets, and examine its application over different test suites and compilers.
The Multitasking virtualmachine (called from now on simply MVM) is a modification of the java (TM) virtualmachine. It enables safe, secure, and scalable multitasking. Safety is achieved by strict isolation of applic...
详细信息
The Multitasking virtualmachine (called from now on simply MVM) is a modification of the java (TM) virtualmachine. It enables safe, secure, and scalable multitasking. Safety is achieved by strict isolation of applications from one another. Resource control mechanisms augment security by preventing some denial-of-service attacks. Improved scalability results from an aggressive application of the main design principle of MVM: share as much of the runtime as possible among applications and replicate everything else. The system can be described as a 'no compromise' approach - all the known APIs and mechanisms of the java programming language are available to applications. MVM is implemented as a series of carefully tuned modifications to the java HotSpot (TM) virtualmachine, including the dynamic compiler. This paper presents the design of MVM, focusing on several novel and general techniques: an in-runtime design of lightweight isolation, an extension of a copying, generational garbage collector to provide best-effort management of a portion of the heap space, and a transparent and automated mechanism for safe execution of user-level native code. MVM demonstrates that multitasking in a safe language can be accomplished with a high degree of protection, without constraining the language, and with competitive performance characteristics.
The JBits Application Programming Interface has significantly shortened FPGA reconfiguration times by manipulating the configurable resources of the FPGAs directly under software control. The execution of JBits prog...
详细信息
The JBits Application Programming Interface has significantly shortened FPGA reconfiguration times by manipulating the configurable resources of the FPGAs directly under software control. The execution of JBits programs, however, requires a java virtual machine to be implemented on the platform where the configurations will be modified. This presents a problem for embedded systems where a microprocessor to run a java virtual machine may not be available or desirable. This thesis discusses the implementation of a FPGA platform that allows the execution of JBits programs, effectively changing the configuration of a FPGA within a FPGA. This thesis also presents a four step developing and testing strategy for JBits programs that are intended to run on this FPGA platform.
The multitasking virtualmachine (called from now on simply MVM) is a modification of the java virtual machine. It enables safe, secure, and scalable multitasking. Safety is achieved by strict isolation of application...
详细信息
ISBN:
(纸本)9781581133356
The multitasking virtualmachine (called from now on simply MVM) is a modification of the java virtual machine. It enables safe, secure, and scalable multitasking. Safety is achieved by strict isolation of application from one another. Resource control augment security by preventing some denial-of-service attacks. Improved scalability results from an aggressive application of the main design principle of MVM: share as much of the runtime as possible among applications and replicate everything else. The system can be described as a 'no compromise'approach --- all the known APIs and mechanisms of the java programming language are available to applications. MVM is implemented as a series of carefully tuned modifications to the java HotSpot virtualmachine, including the dynamic compiler. this paper presents the design of MVM, focusing on several novel and general techniques: an in-runtime design of lightweight isolation, an extension of a copying, generational garbage collector to provide best-effort management of a portion of the heap space, and a transparent and automated mechanism for safe execution of user-level native code. MVM demonstrates that multitasking in a safe language can be accomplished with a high degree of protection, without constraining the language, and and with competitive performance characteristics
J - is a set of tools designed for system developers who need to generate native code for the java virtual machine. This set of tools is composed by a disassembler, an assembler, an integrated environment and a class ...
详细信息
J - is a set of tools designed for system developers who need to generate native code for the java virtual machine. This set of tools is composed by a disassembler, an assembler, an integrated environment and a class library that hides the binary format used by JVM to represent its classes. This package includes comprehensive documentation, which allows its use without any previous knowledge on JVM. The project is not platform specific, and it is currently running on Windows95, WindowsNT and Xwindow.
We give a formal specification of the dynamic semantics of java bytecode, in the form of an operational semantics for the java virtual machine (JVM). For each JVM instruction we give a rule describing the instruction&...
详细信息
We give a formal specification of the dynamic semantics of java bytecode, in the form of an operational semantics for the java virtual machine (JVM). For each JVM instruction we give a rule describing the instruction's effect on the machine state and the conditions under which the instruction will execute without error. This paper outlines the formalization of the JVM machine state and illustrates our approach for a few select JVM instructions. Our full specification, covering the entire JVM instruction set except for synchronization instructions, is available in the work of Bertelsen (Semantics of java byte code, Technical Report, Department of Mathematics and Physics, Royal Veterinary and Agricultural University, Copenhagen, Denmark, April 1997). (C) 2000 Elsevier Science B.V. All rights reserved.
cJVM is a java virtual machine (JVM) which provides a single system image of a traditional JVM while executing in a distributed fashion on the nodes of a cluster. cJVM virtualizes the cluster. transparently distributi...
详细信息
cJVM is a java virtual machine (JVM) which provides a single system image of a traditional JVM while executing in a distributed fashion on the nodes of a cluster. cJVM virtualizes the cluster. transparently distributing the objects and threads of any pure java application. The aim of cJVM is to obtain improved scalability Tor java server applications by distributing the application's work among the cluster's computing resources, cJVM's architecture, its unique object model, thread, and memory models, were described by Y. Aridor et al. (1999. in "International Conference on Parallel Processing, September 21-24) and at http://***/projects/systech/***. In this article, we focus on the optimization techniques employed in cJVM to achieve high scalability. In particular, we focus on the techniques used to enhance locality, thereby reducing the amount of communication generated by cJVM. Our optimization techniques are based on three principles. First, we employ a large number of mostly simple optimizations which address caching, locality of execution, and object migration. Second, we take advantage of the java semantics and of common usage patterns in implementing the optimizations. Third, we use speculative optimizations. taking advantage of the fact that the cJVM run-time environment can correct false speculations. We have demonstrated the usefulness of these techniques on a large 110 Kloc), real. java application where we demonstrate an 80% efficiency on a four-node cluster. This paper discusses the various techniques used and reports our results. (C) 2000 Academic Press.
JESSICA stands for java-enabled single-system-image computing architecture, a middleware that runs on top of the standard UNIX operating system to support parallel execution of multithreaded java applications in a clu...
详细信息
JESSICA stands for java-enabled single-system-image computing architecture, a middleware that runs on top of the standard UNIX operating system to support parallel execution of multithreaded java applications in a cluster of computers. JESSICA hides the physical boundaries between machines and makes the cluster appear as a single computer to applications a single system image. JESSICA supports preemptive thread migration, which allows a thread to freely move between machines during its execution, and global object sharing through the help of a distributed shared-memory subsystem. JESSICA implements location-transparency through a message-redirection mechanism. The result is a parallel execution environment where threads are automatically redistributed across the cluster for achieving the maximal possible parallelism. A JESSICA prototype that runs on a Linux cluster has been implemented and considerable speedups have been obtained for all the experimental applications tested. (C) 2000 Academic Press.
暂无评论