Exterminator- A ... with High Probability.pdf - DSpace at CUSAT ...
Exterminator- A ... with High Probability.pdf - DSpace at CUSAT ...
Exterminator- A ... with High Probability.pdf - DSpace at CUSAT ...
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
<strong>Extermin<strong>at</strong>or</strong><br />
neither source code nor a large deployed user base in order to find errors, and<br />
autom<strong>at</strong>ically gener<strong>at</strong>es runtime p<strong>at</strong>ches th<strong>at</strong> correct them.<br />
Delta debugging autom<strong>at</strong>es the process of identifying the smallest possible inputs th<strong>at</strong> do<br />
and do not exhibit a given error. Given these inputs, it is up to the software developer to<br />
actually loc<strong>at</strong>e the bugs themselves. <strong>Extermin<strong>at</strong>or</strong> focuses on a narrower class of errors, but<br />
is able to isol<strong>at</strong>e and correct an error given just one erroneous input, regardless of its size.<br />
8.4 Fault Tolerance<br />
Recently, there has been an increasing focus on approaches for toler<strong>at</strong>ing hardware<br />
transient errors th<strong>at</strong> are becoming more common due to fabric<strong>at</strong>ion process limit<strong>at</strong>ions.<br />
Work in this area ranges from proposed hardware support to software fault tolerance.While<br />
<strong>Extermin<strong>at</strong>or</strong> also uses redundancy as a method for detecting and correcting errors,<br />
<strong>Extermin<strong>at</strong>or</strong> goes beyond toler<strong>at</strong>ing software errors, which are not transient, to correcting<br />
them permanently. Like <strong>Extermin<strong>at</strong>or</strong>, other efforts in the fault tolerance community seek<br />
to g<strong>at</strong>her d<strong>at</strong>a from multiple program executions to identify potential errors. For example,<br />
Guo et al. use st<strong>at</strong>istical techniques on internal monitoring d<strong>at</strong>a to probabilistically detect<br />
faults, including memory leaks and deadlocks. <strong>Extermin<strong>at</strong>or</strong> goes beyond this previous<br />
work by characterizing each memory error so specifically th<strong>at</strong> a correction can be<br />
autom<strong>at</strong>ically gener<strong>at</strong>ed for it.<br />
Rinard et al. present a compiler-based approach called boundless buffers th<strong>at</strong> caches<br />
out-of-bound writes in a hash table for l<strong>at</strong>er reuse. This approach elimin<strong>at</strong>es buffer<br />
overflow errors (though not dangling pointer errors), but requires source code and imposes<br />
higher performance overheads (1.05x to 8.9x).<br />
Rx oper<strong>at</strong>es by checkpointing program execution and logging inputs. Rx rolls back<br />
crashed applic<strong>at</strong>ions and replays inputs to it in a new environment th<strong>at</strong> pads all alloc<strong>at</strong>ions<br />
or defers all dealloc<strong>at</strong>ions by some amount. If this new environment does not yield<br />
success, Rx rolls back the applic<strong>at</strong>ion again and increases the pad values, up to some<br />
threshold. Unlike Rx, <strong>Extermin<strong>at</strong>or</strong> does not require checkpointing or rollback, and<br />
precisely isol<strong>at</strong>es and corrects memory errors.<br />
8.5 Memory Managers<br />
Conserv<strong>at</strong>ive garbage collection prevents dangling pointer errors, but does not prevent<br />
buffer overflows. <strong>Extermin<strong>at</strong>or</strong>’s error isol<strong>at</strong>ion and correction is orthogonal to garbage<br />
collection.<br />
Finally, there have been numerous debugging memory alloc<strong>at</strong>ors; the document<strong>at</strong>ion<br />
for one of them, mp<strong>at</strong>rol, includes a list of over ninety such systems. Notable recent<br />
alloc<strong>at</strong>ors <strong>with</strong> debugging fe<strong>at</strong>ures include dnmalloc, Heap Server, and version 2.8 of the<br />
Lea alloc<strong>at</strong>or. <strong>Extermin<strong>at</strong>or</strong> either prevents or corrects errors th<strong>at</strong> these alloc<strong>at</strong>ors can only<br />
detect.<br />
Dept. Of Computer Science & Engg. ~ 24 ~ Cochin University of Science & Technology