ACM Home Page
Please provide us with feedback. Feedback
Memory overflow protection for embedded systems using run-time checks, reuse, and compression
Full text PdfPdf (580 KB)
Source ACM Transactions on Embedded Computing Systems (TECS) archive
Volume 5 ,  Issue 4  (November 2006) table of contents
Pages: 719 - 752  
Year of Publication: 2006
ISSN:1539-9087
Authors
Surupa Biswas  University of Maryland, College Park, Maryland
Thomas Carley  University of Maryland, College Park, Maryland
Matthew Simpson  University of Maryland, College Park, Maryland
Bhuvan Middha  University of Maryland, College Park, Maryland
Rajeev Barua  University of Maryland, College Park, Maryland
Publisher
ACM  New York, NY, USA
Bibliometrics
Downloads (6 Weeks): n/a,   Downloads (12 Months): n/a,   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/1196636.1196637
What is a DOI?

ABSTRACT

Embedded systems usually lack virtual memory and are vulnerable to memory overflow since they lack a mechanism to detect overflow or use swap space thereafter. We present a method to detect memory overflows using compiler-inserted software run-time checks. Its overheads in run-time and energy are 1.35 and 1.12%, respectively. Detection of overflow allows system-specific remedial action. We also present techniques to grow the stack or heap segment after they overflow, into previously unutilized space, such as dead variables, free holes in the heap, and space freed by compressing live variables. These may avoid the out-of-memory error if the space recovered is enough to complete execution. The reuse methods are able to grow the stack or heap beyond its overflow by an amount that varies widely by application---the amount of recovered space ranges from 0.7 to 93.5% of the combined stack and heap size.


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
Analysis, S. Ó. S. U. AbsInt Inc. http://www.absint.com/stackanalyzer/.
 
2
 
3
4
5
 
6
Brylow, D., Damgaard, N., and Palsberg, J. 2000. Stack-size Estimation for Interrupt-driven Microcontrollers. Tech. rep., Purdue University. June. http://www.brics.dk/~damgaard/Download/zilog-test.pdf.
 
7
Carbone, J. 2004. Efficient memory protection for embedded systems. RTC Magazine. http://www.rtcmagazine.com/home/article.php?id=100120.
 
8
Chatterjee, K., Ma, D., Majumdar, R., Zhao, T., Henzinger, T. A., and Palsberg, J. 2003. Stack size analysis of interrupt driven software. In Proceedings of the International Static Analysis Symposium (SAS). 109--126.
 
9
 
10
compiler, T. G. Free Software Foundation. http://gcc.gnu.org/.
11
 
12
Durrant, M. 2000. Running Linux on low cost, low power MMU-less processors. http://www.linuxdevices.com/articles/AT6245686197.html.
 
13
 
14
 
15
Hauck, E. and Dent, B. 1968. Burroughs b 6500/b 7500 stack mechanism. In Proceedings of AFIPS, SJCC, Vol. 32. 245--251.
 
16
 
17
 
18
 
19
 
20
Janzen, J. 2001. Calculating Memory System Power for DDR SDRAM. In DesignLine Journal. Vol. 10(2). Micron Technology Inc. http://www.micron.com/publications/designline.html.
 
21
Kleidermacher, D. and Griglock, M. 2001. Safety-Critical Operating Systems. Embedded Systems Programming 14, 10 (Sept.). http://www.embedded.com/story/OEG20010829S0055.
 
22
 
23
 
24
Lea, D. 2000. A Memory Allocator. http://gee.cs.oswego.edu/dl/html/malloc.html.
 
25
micron-datasheet. 2003. 128Mb DDR SDRAM data sheet. (Dual data-rate synchronous DRAM) Micron Technology Inc. http://www.micron.com/products/dram/ddrsdram/.
26
27
 
28
project debugger, G. T. G. Free Software Foundation. http://www.gnu.org/software/gdb/gdb.html.
 
29
Red Hat, Inc. Newlib C Library. Red Hat, Inc. http://sources.redhat.com/newlib.
 
30
Regehr, J., Reid, A., and Webb, K. 2003. Eliminating stack overflow by abstract interpretation. In Proceedings of the 3rd international conference on embedded software (EMSOFT). Springer-Verlag, New York.
 
31
Simpson, M., Biswas, S., and Barua, R. 2003. Analysis of Compression Algorithms for Program Data. Tech. rep., U. of Maryland, ECE department. August. http://www.ece.umd.edu/~barua/matt-compress-tr.pdf.
32
33
 
34
 
35
36
37
 
38
Wilson, P. R., Kaplan, S. F., and Smaragdakis, Y. 1999. The case for compressed caching in virtual memory systems. In Proceedings of the USENIX Annual Technical Conference. Monterey, CA.
 
39
Wind River, Inc. High availability design for embedded systems. Tech. rep., Wind River, Inc. http://www.windriver.com/whitepapers/high_availability_design.html.
40
 
41


Collaborative Colleagues:
Surupa Biswas: colleagues
Thomas Carley: colleagues
Matthew Simpson: colleagues
Bhuvan Middha: colleagues
Rajeev Barua: colleagues