ACM Home Page
Please provide us with feedback. Feedback
Enforcing resource bounds via static verification of dynamic checks
Full text PdfPdf (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
ACM  New York, NY, USA
Bibliometrics
Downloads (6 Weeks): 5,   Downloads (12 Months): 56,   Citation Count: 1
Additional Information:

abstract   references   cited by   index terms   collaborative colleagues  

Tools and Actions: Request Permissions Request Permissions    Review this Article  
DOI Bookmark: Use this link to bookmark this Article: http://doi.acm.org/10.1145/1275497.1275503
What is a DOI?

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
 
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
 
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


Collaborative Colleagues:
Ajay Chander: colleagues
David Espinosa: colleagues
Nayeem Islam: colleagues
Peter Lee: colleagues
George C. Necula: colleagues