Return to search

DREM: Architectural Support for Deterministic Redundant Execution of Multithreaded Programs

Recently there have been several proposals to use redundant execution
of diverse replicas to defend against attempts to exploit memory corruption vulnerabilities. However, redundant execution relies on the premise that the replicas behave deterministically, so that if inputs are replicated to both replicas, any divergences in their outputs can only be the result of an attack. Unfortunately, this assumption does not hold for multithreaded programs, which are becoming increasingly prevalent -- the
non-deterministic interleaving of threads can also cause divergences in the replicas.



This thesis presents a method to eliminate concurrency related non-determinism between replicas.
We introduce changes to the existing cache coherence hardware used in multicores to support
deterministic redundant execution. We demonstrate that our solution requires moderate hardware changes and shows modest overhead in scientific applications.

Identiferoai:union.ndltd.org:LACETR/oai:collectionscanada.gc.ca:OTU.1807/18795
Date12 February 2010
CreatorsKvasov, Stanislav
ContributorsLie, David
Source SetsLibrary and Archives Canada ETDs Repository / Centre d'archives des thèses électroniques de Bibliothèque et Archives Canada
Languageen_ca
Detected LanguageEnglish
TypeThesis

Page generated in 0.0022 seconds