Memory Overflow Protection for Embedded Systems using Run-time Checks, Reuse and Compression

Loading...
Thumbnail Image

Files

umi-umd-1813.pdf (593.33 KB)
No. of downloads: 2582

Publication or External Link

Date

2004-08-11

Citation

DRUM DOI

Abstract

Out-of-memory errors are a serious source of unreliability in embedded systems. This is because embedded systems typically do not have hard disks and hence, no swap-space and in case of an out-of-memory error the application simply crashes. Further, in most cases protection from virtual memory is absent. Thus, the fact that a segment has exceeded its bound is not even detected and no pre-crash remedial action is possible.

This work improves reliability in two ways. First, it proposes a low-overhead scheme of run-time checks which enables detection of out-of-memory errors and hence, allows the designer to incorporate system-specific remedial action. Second, it proposes five techniques to grow the stack or heap, after it is out of memory, into previously un-utilized space such as dead variables and space freed by compressing live variables. These techniques can avoid the out-of-memory error if the space recovered is enough to complete execution.

Notes

Rights