Dynascope: a tool for program directing
PLDI '92 Proceedings of the ACM SIGPLAN 1992 conference on Programming language design and implementation
Architecture support for single address space operating systems
ASPLOS V Proceedings of the fifth international conference on Architectural support for programming languages and operating systems
The SPARC architecture manual (version 9)
The SPARC architecture manual (version 9)
Efficient detection of all pointer and array access errors
PLDI '94 Proceedings of the ACM SIGPLAN 1994 conference on Programming language design and implementation
Sharing and protection in a single-address-space operating system
ACM Transactions on Computer Systems (TOCS) - Special issue on computer architecture
Safe kernel extensions without run-time checking
OSDI '96 Proceedings of the second USENIX symposium on Operating systems design and implementation
Proceedings of the 24th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Proceedings of the seventeenth ACM symposium on Operating systems principles
Programming semantics for multiprogrammed computations
Communications of the ACM
CCured: type-safe retrofitting of legacy code
POPL '02 Proceedings of the 29th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Microsoft C# Language Specifications
Microsoft C# Language Specifications
Java Native Interface: Programmer's Guide and Reference
Java Native Interface: Programmer's Guide and Reference
The Java Programming Language
Proceedings of the 10th international conference on Architectural support for programming languages and operating systems
IBM System/38 support for capability-based addressing
ISCA '81 Proceedings of the 8th annual symposium on Computer Architecture
Overview of the Hydra Operating System development
SOSP '75 Proceedings of the fifth ACM symposium on Operating systems principles
Policy/mechanism separation in Hydra
SOSP '75 Proceedings of the fifth ACM symposium on Operating systems principles
Protection in the Hydra Operating System
SOSP '75 Proceedings of the fifth ACM symposium on Operating systems principles
Automated and Portable Native Code Isolation
ISSRE '01 Proceedings of the 12th International Symposium on Software Reliability Engineering
Efficient Kernel Support of Fine-Grained Protection Domains for Mobile Code
ICDCS '99 Proceedings of the 19th IEEE International Conference on Distributed Computing Systems
A portable virtual machine for program debugging and directing
Proceedings of the 2004 ACM symposium on Applied computing
Mondrix: memory isolation for linux using mondriaan memory protection
Proceedings of the twentieth ACM symposium on Operating systems principles
ATEC '03 Proceedings of the annual conference on USENIX Annual Technical Conference
Hardware works, software doesn't: enforcing modularity with Mondriaan memory protection
HOTOS'03 Proceedings of the 9th conference on Hot Topics in Operating Systems - Volume 9
The java hotspotTM server compiler
JVM'01 Proceedings of the 2001 Symposium on JavaTM Virtual Machine Research and Technology Symposium - Volume 1
Flexible and efficient sandboxing based on fine-grained protection domains
ISSS'02 Proceedings of the 2002 Mext-NSF-JSPS international conference on Software security: theories and systems
Quarantine: a framework to mitigate memory errors in JNI applications
Proceedings of the 9th International Conference on Principles and Practice of Programming in Java
Hi-index | 0.00 |
Java virtual machine (JVM) crashes are often due to an invalid memory reference to the JVM heap. Before the bug that caused the invalid reference can be fixed, its location must be identified. It can be in either the JVM implementation or the native library written in C invoked from Java applications. To help system engineers identify the location, we implemented a feature using page protection that prevents threads executing native methods from referring to the JVM heap. This feature protects the JVM heap during native method execution; if the heap is referred to invalidly, it interrupts the execution by generating a page-fault exception. It then reports the location where the exception was generated. The runtime overhead for using this feature depends on the frequency of native method calls because the protection is switched on each time a native method is called. We evaluated the runtime overhead by running the SPECjvm98, SPECjbb2000, VolanoMark, and JFCMark benchmark suites on a PC with two Intel Xeon^(R) 1.6 GHz processors. The performance loss was less than 2% for the benchmark items that do not call native methods so frequently (~10^4 times per second) and 5%-20% for the benchmark items that do (10^4-10^5 times per second). The worst performance loss was 54%, which was recorded for a benchmark item that calls native methods 2.0x10^6 times per second.