Runtime Monitoring on Multicores via OASES

Vijay Nagarajan, Rajiv Gupta

Research output: Contribution to journalArticlepeer-review


Runtime monitoring support serves as a foundation for the important tasks of providing security, performing debugging, and improving performance of applications. Often runtime monitoring requires the maintenance of information associated with each of the application's original memory location, which is held in corresponding shadow memory locations. Unfortunately, existing robust shadow memory implementations are inefficient. In this paper, we present OASES: OS and Architectural Support for Efficient Shadow memory implementation for multicores that is also robust. A combination of operating system support (in the form of coupled allocation of memory pages used by the application and associated shadow memory pages) and architectural support (in the form of ISA support and exposed cache events) is proposed. Our page allocation policy enables fast translation of original addresses into corresponding shadow memory addresses; thus allowing implicit addressing of shadow memory. By exposing the cache events to the software, we ensure in software that the shadow memory instructions execute atomically with their corresponding original memory instructions. Our experiments show that the overheads of runtime monitoring tasks are significantly reduced in comparison to previous software implementations.
Original languageEnglish
Pages (from-to)15-24
Number of pages10
JournalOperating Systems Review
Issue number2
Publication statusPublished - 1 Apr 2009


  • atomic updates, exposed cache events, shadow memory


Dive into the research topics of 'Runtime Monitoring on Multicores via OASES'. Together they form a unique fingerprint.

Cite this