Memory Overflow Protection for Embedded Systems using Run-time Checks, Reuse and Compression
Barua, Rajeev K
MetadataПоказать полную информацию
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.