| Enforcing resource bounds via static verification of dynamic checks |
| Full text |
Pdf
(425 KB)
|
Source
|
ACM Transactions on Programming Languages and Systems (TOPLAS)
archive
Volume 29 , Issue 5 (August 2007)
table of contents
Special Issue ESOP'05
Article No. 28
Year of Publication: 2007
ISSN:0164-0925
|
|
Authors
|
|
Ajay Chander
|
DoCoMo Labs USA, Palo Alto, CA
|
|
David Espinosa
|
DoCoMo Labs USA, Palo Alto, CA
|
|
Nayeem Islam
|
DoCoMo Labs USA, Palo Alto, CA
|
|
Peter Lee
|
Carnegie Mellon University, Pittsburgh, PA
|
|
George C. Necula
|
University of California, Berkeley, CA
|
|
| Publisher |
|
| Bibliometrics |
Downloads (6 Weeks): 5, Downloads (12 Months): 56, Citation Count: 1
|
|
|
ABSTRACT
We show how to limit a program's resource usage in an efficient way, using a novel combination of dynamic checks and static analysis. Usually, dynamic checking is inefficient due to the overhead of checks, while static analysis is difficult and rejects many safe programs. We propose a hybrid approach that solves these problems. We split each resource-consuming operation into two parts. The first is a dynamic check, called reserve. The second is the actual operation, called consume, which does not perform any dynamic checks. The programmer is then free to hoist and combine reserve operations. Combining reserve operations reduces their overhead, while hoisting reserve operations ensures that the program does not run out of resources at an inconvenient time. A static verifier ensures that the program reserves resources before it consumes them. This verification is both easier and more flexible than an a priori static verification of resource usage. We present a sound and efficient static verifier based on Hoare logic and linear inequalities. As an example, we present a version of tar written in Java.
REFERENCES
Note: OCR errors may be found in this Reference List extracted from the full text article. ACM has opted to expose the complete List rather than only correct and linked references.
| |
1
|
Chander, A., Espinosa, D., Islam, N., Lee, P., and Necula, G. 2005. JVer: A Java verifier. In Proceedings of the Conference on Computer Aided Verification (Edinburgh, Scotland).
|
| |
2
|
Chander, A., Mitchell, J., and Shin, I. 2001. Mobile code security by Java bytecode instrumentation. In Proceedings of the DARPA Information Survivability Confernce and Exposition.
|
 |
3
|
|
 |
4
|
|
 |
5
|
Grzegorz Czajkowski , Thorsten von Eicken, JRes: a resource accounting interface for Java, Proceedings of the 13th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications, p.21-35, October 18-22, 1998, Vancouver, British Columbia, Canada
|
| |
6
|
Detlefs, D., Nelson, G., and Saxe, J. 2003. Simplify: A theorem prover for program checking. Tech. Rep. HPL-2003-148, HP Laboratories. July.
|
| |
7
|
|
| |
8
|
Endres, T. 2003. Java tar 2.5. http://www.trustice.com.
|
 |
9
|
|
| |
10
|
Evans, D. and Twyman, A. 1999. Flexible policy-directed code safety. In Proceedings of the IEEE Symposium on Security and Privacy (Oakland, CA).
|
| |
11
|
|
 |
12
|
Cormac Flanagan , K. Rustan M. Leino , Mark Lillibridge , Greg Nelson , James B. Saxe , Raymie Stata, Extended static checking for Java, Proceedings of the ACM SIGPLAN 2002 Conference on Programming language design and implementation, June 17-19, 2002, Berlin, Germany
|
| |
13
|
|
 |
14
|
|
 |
15
|
|
| |
16
|
|
| |
17
|
Kim, M., Kannan, S., Lee, I., and Sokolsky, O. 2001. Java-MaC: A run-time assurance tool for Java programs. Electron. Not. Theor. Comput. Sci. 55, 2.
|
| |
18
|
|
 |
19
|
|
 |
20
|
|
 |
21
|
|
 |
22
|
|
| |
23
|
Pandey, R. and Hashii, B. 2000. Providing fine-grained access control for Java programs via binary editing. Concurrency: Pract. Exper. 12, 1405--1430.
|
| |
24
|
Patel, P. and Lepreau, J. 2003. Hybrid resource control of active extensions. In Proceedings of the IEEE Conference on Open Architectures and Network Programming (San Francisco, CA).
|
| |
25
|
|
 |
26
|
|
 |
27
|
|
 |
28
|
|
|