16.08.2013 Views

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 ...

SHOW MORE
SHOW LESS

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

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!