Resource management is essential to build reliable middleware and to host potentially untrusted software components. Resource accounting allows to study and optimize program performance and to charge users for the resource consumption of their deployed components, while resource control can limit the resource consumption of components in order to prevent denial-of-service attacks. In the approach presented here, program transformations enable resource management in Java-based environments, even though the underlying runtime system may not expose information concerning the resource consumption of applications. We present a fully portable program transformation scheme to enhance standard Java runtime systems with mechanisms for CPU management. We implemented several optimizations in order to reduce the overhead of our CPU accounting scheme. Detailed performance measurements quantify this overhead and show the impact of various optimizations.
[1]
Walter Binder,et al.
Program transformations for portable CPU accounting and control in Java
,
2004,
PEPM '04.
[2]
Grzegorz Czajkowski,et al.
A resource management interface for the Java™ platform
,
2005,
Softw. Pract. Exp..
[3]
Walter Binder,et al.
Portable resource control in Java
,
2001,
OOPSLA '01.
[4]
Middleware Track.
A Portable CPU-Management Framework for Java
,
2004
.
[5]
Frank Yellin,et al.
The Java Virtual Machine Specification
,
1996
.
[6]
Grzegorz Czajkowski,et al.
A resource management interface for the Java™ platform
,
2005
.