Memory overflow protection for embedded systems using run-time checks, reuse, and compression

  • Authors:
  • Surupa Biswas;Thomas Carley;Matthew Simpson;Bhuvan Middha;Rajeev Barua

  • Affiliations:
  • University of Maryland, College Park, Maryland;University of Maryland, College Park, Maryland;University of Maryland, College Park, Maryland;University of Maryland, College Park, Maryland;University of Maryland, College Park, Maryland

  • Venue:
  • ACM Transactions on Embedded Computing Systems (TECS)
  • Year:
  • 2006

Quantified Score

Hi-index 0.00

Visualization

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.