<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="/oai-pmh.xsl"?>
<OAI-PMH xmlns="http://www.openarchives.org/OAI/2.0/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.openarchives.org/OAI/2.0/ http://www.openarchives.org/OAI/2.0/OAI-PMH.xsd">
  <responseDate>2026-09-21T23:30:06Z</responseDate>
  <request identifier="oai:www.ideals.illinois.edu:2142/18421" metadataPrefix="etdms" verb="GetRecord">https://www.ideals.illinois.edu/oai-pmh</request>
  <GetRecord>
    <record>
      <header>
        <identifier>oai:www.ideals.illinois.edu:2142/18421</identifier>
        <datestamp>2023-07-10</datestamp>
        <setSpec>col_2142_5131</setSpec>
        <setSpec>col_2142_10761</setSpec>
        <setSpec>com_2142_5130</setSpec>
        <setSpec>com_2142_10755</setSpec>
        <setSpec>com_2142_234</setSpec>
      </header>
      <metadata>
        <thesis xmlns="http://www.ndltd.org/standards/metadata/etdms/1.1/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:dc="http://purl.org/dc/elements/1.1/" xsi:schemaLocation="http://www.ndltd.org/standards/metadata/etdms/1.1/ http://www.ndltd.org/standards/metadata/etdms/1.1/etdms11.xsd http://purl.org/dc/elements/1.1/ http://www.ndltd.org/standards/metadata/etdms/1.1/etdmsdc.xsd">
          <dc:contributor>Adve, Vikram S.</dc:contributor>
          <dc:contributor>Adve, Vikram S.</dc:contributor>
          <dc:contributor>Adve, Sarita V.</dc:contributor>
          <dc:contributor>King, Samuel T.</dc:contributor>
          <dc:contributor>Zhou, Yuanyuan</dc:contributor>
          <dc:creator>Lenharth, Andrew D.</dc:creator>
          <dc:date>2011-01-14T22:50:17Z</dc:date>
          <dc:date>2011-01-14T22:50:17Z</dc:date>
          <dc:date>2011-01-14T22:50:17Z</dc:date>
          <dc:description>Gracefully recovering from software and hardware faults is important to ensuring
highly reliable and available systems. Operating systems have privileged
access to all aspects of system operation, thus a fault related to them
is able to affect the entire system. Existing approaches to operating system
recovery either do not protect the entire system or require a completely new
operating system design.
This dissertation presents a new approach to fault recovery in operating
systems called Recovery Domains. This approach allows recovery from
unanticipated faults in commodity operating systems. Recovery is organized
around the concept of a dynamic request. Operating system entry points initiate
requests to perform some action. System calls, for example, are a request
by an application to the operating system. When a fault is detected, the recovery
system rolls back the effects of the offending recovery domain while
leaving the remainder of the system running. To ensure that the entire system
(including the state of other concurrent kernel threads) remains consistent
after the rollback, dependencies between domains are tracked as the system
runs. When rolling back a faulting domain, any other domains that were dependent
on the it, because of dataflow
between the domains, are rolled back
and restarted.
Recovery Domains do not make faults transparent. Request failures are
reported to the requester. This visibility allows handling of faults which are
permanent: those faults which would reoccur if the request were retried. Recovery
Domains also handle timing and transient faults.
Recovery Domains require compiler support to instrument the system.
The necessary support is simple, but can cause unnecessarily large system
overhead. This dissertation describes several performance improvements to
Recovery Domains based on dynamic analysis of the system state and static
analysis of memory regions, allocators, and locks. Runtime analysis of the
interdependence
of the active requests can allow reduced tracking of state
changes. The recovery compiler can reason about memory regions and data
structures protected by a lock to eliminate instrumentation on many operations
to locked memory. “Fresh” heap objects, those objects which have been
allocated and have not yet become visible to other requests and threads, require
no instrumentation. These improvements to the recovery runtime and
compiler provide substantial performance improvements over more simple
implementations.
This dissertation describes the goals, approach, semantics, and programming
model of Recovery Domains; the minimal implementation of the runtime
and compiler; the static analysis and optimization at the compiler level
and dynamic optimization to the runtime; and the porting of two significantly
different versions of the Linux kernel to the recovery system. It evaluates
the overhead, effectiveness, and coverage of recovery. Finally it describes
the potential integration of a model fault detector with the Recovery
Domains system.</dc:description>
          <dc:description>Item withdrawn by Mark Zulauf (zulauf@illinois.edu) on 2010-09-03T15:50:14Z
Item was in collections:
University of Illinois Theses &amp; Dissertations (ID: 1)
No. of bitstreams: 2
lenharth_andrew_source.tar: 5795840 bytes, checksum: 3f7370ee1a306bbfefe2742674bbf2b0 (MD5)
Lenharth_Andrew.pdf: 1084222 bytes, checksum: 69de1b19758bd2418af4800db4694c6d (MD5)</dc:description>
          <dc:description>Made available in DSpace on 2011-01-14T22:50:17Z (GMT). No. of bitstreams: 3
Lenharth_Andrew.pdf: 1084222 bytes, checksum: 69de1b19758bd2418af4800db4694c6d (MD5)
license.txt: 4065 bytes, checksum: 275e96ab20908e1973061591201dac90 (MD5)
lenharth_andrew_source.tar: 5795840 bytes, checksum: 3f7370ee1a306bbfefe2742674bbf2b0 (MD5)</dc:description>
          <dc:identifier>http://hdl.handle.net/2142/18421</dc:identifier>
          <dc:language>en</dc:language>
          <dc:rights>Copyright 2010 Andrew David Lenharth</dc:rights>
          <dc:subject>Recovery</dc:subject>
          <dc:subject>Transactions</dc:subject>
          <dc:subject>Operating Systems</dc:subject>
          <dc:subject>Compilers</dc:subject>
          <dc:title>Automatic recovery for request oriented systems</dc:title>
          <dc:date>2010-12</dc:date>
          <degree>
            <department>Computer Science</department>
            <departmentCode>1434</departmentCode>
            <discipline>Computer Science</discipline>
            <disciplineCode>0112</disciplineCode>
            <grantor>University of Illinois at Urbana-Champaign</grantor>
            <level>Dissertation</level>
            <name>Ph.D.</name>
            <program>PHD:Computer Science -UIUC</program>
            <programCode>10KS0112PHD</programCode>
          </degree>
        </thesis>
      </metadata>
    </record>
  </GetRecord>
</OAI-PMH>
