Memory Overflow Protection for Embedded Systems using Run-time Checks, Reuse and Compression
Memory Overflow Protection for Embedded Systems using Run-time Checks, Reuse and Compression
Files
Publication or External Link
Date
2004-08-11
Authors
Biswas, Surupa
Advisor
Barua, Rajeev K
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.