본문

서브메뉴

Automating the Detection and Correction of Failures in Modern Persistent Memory Systems- [electronic resource]
Inhalt Info
Automating the Detection and Correction of Failures in Modern Persistent Memory Systems- [electronic resource]
자료유형  
 학위논문
Control Number  
0016935544
International Standard Book Number  
9798380371230
Dewey Decimal Classification Number  
621.3
Main Entry-Personal Name  
Neal, Ian Glen.
Publication, Distribution, etc. (Imprint  
[S.l.] : University of Michigan., 2023
Publication, Distribution, etc. (Imprint  
Ann Arbor : ProQuest Dissertations & Theses, 2023
Physical Description  
1 online resource(120 p.)
General Note  
Source: Dissertations Abstracts International, Volume: 85-03, Section: B.
General Note  
Advisor: Kasikci, Baris.
Dissertation Note  
Thesis (Ph.D.)--University of Michigan, 2023.
Restrictions on Access Note  
This item must not be sold to any third party vendors.
Restrictions on Access Note  
This item must not be added to any third party search indexes.
Summary, Etc.  
요약Modern software systems are deeply embedded into our daily lives; the failures of these systems can therefore result in massive real-world harm. Consequently, considerable resources are spent finding and fixing bugs in testing. Overall, the software industry spends billions of dollars each year on fixing bugs, and ultimately loses trillions of dollars each year due to poor software quality (as a result of bugs that escape testing and wreak havoc once deployed).One particularly challenging domain of software development for developers is the area of Persistent Memory (PM) programming, an abstraction where developers write software that accesses and updates long-term storage with direct memory operations. The PM programming abstraction has become popular in recent years due to new hardware advances in low-latency, byte-addressable storage devices. Unfortunately, writing crash-consistent PM applications is challenging, as un-timely program crashes can result in data corruption and loss if the application does not carefully order updates to PM, and testing all possible crashes for data consistency is intractable. Further-more, crash-consistency bugs are difficult to manually debug and repair, taking weeks or months for a developer to correctly fix. Without advancements in PM testing and program repair tools, developers will be unable to effectively write correct and efficient applications for modern PM platforms, hampering the ease of their adoption.Motivated by these PM software development challenges, this dissertation explores research in developing software techniques that automate difficult and time-consuming PM development tasks. We study PM system design, bugs, and bugs fixes and observe that we can automatically provide scalable and high-coverage bug detection and correction by approximating the reasoning performed by developers as they develop their applications. Based on this insight, we first explore automated bug detection and correction for PM application bugs caused by the misuse of platform-specific PM primitives. We develop a testing technique that prioritizes testing program paths that heavily modify PM, as these paths are more likely to misuse PM. We implement this technique in AGAMOTTO, a symbolic-execution tool that thoroughly explores PM applications to uncover platform-specific bugs, which we use to find 84 new bugs while incurring no false positives. We then develop a technique for generating fixes for PM platform-specific bugs that are provably correct, coupled with heuristic performance optimizations that do not compromise correctness, and implement the technique in a compiler tool, HIPPOCRATES.Second, this dissertation explores automated bug detection for general crash-consistency bugs in PM applications (i.e., bugs caused by the improper ordering of PM updates). We develop a technique that automatically identifies groups of PM program behaviors that are likely to result in the same crash-consistency bugs and only tests one behavior out of the group, thus providing high testing accuracy (by testing all types of behaviors thoroughly) while also increasing efficiency (by eliminating redundant testing on functionally-similar behaviors). We implement this technique in SQUINT, a model-checking tool that selectively tests groups of PM program behaviors identified from a dynamic program trace, which we use to find 108 PM crash-consistency bugs.The works presented in this dissertation provide a holistic automated testing and program repair solution for PM software developers. In sum, these tools have been used to find and fix over two hundred PM bugs in real-world PM systems, demonstrating both the need for such tools and the efficacy of the tools presented in this dissertation.
Subject Added Entry-Topical Term  
Computer engineering.
Subject Added Entry-Topical Term  
Computer science.
Subject Added Entry-Topical Term  
Information technology.
Index Term-Uncontrolled  
Crash consistency
Index Term-Uncontrolled  
Persistent Memory
Index Term-Uncontrolled  
Bug detection
Index Term-Uncontrolled  
Program repair
Index Term-Uncontrolled  
Software engineering
Index Term-Uncontrolled  
Program analysis
Added Entry-Corporate Name  
University of Michigan Computer Science & Engineering
Host Item Entry  
Dissertations Abstracts International. 85-03B.
Host Item Entry  
Dissertation Abstract International
Electronic Location and Access  
로그인을 한후 보실 수 있는 자료입니다.
Control Number  
joongbu:640574
New Books MORE
최근 3년간 통계입니다.

Buch Status

  • Reservierung
  • 캠퍼스간 도서대출
  • 서가에 없는 책 신고
  • Meine Mappe
Sammlungen
Registrierungsnummer callnumber Standort Verkehr Status Verkehr Info
TQ0026499 T   원문자료 열람가능/출력가능 열람가능/출력가능
마이폴더 부재도서신고

* Kredite nur für Ihre Daten gebucht werden. Wenn Sie buchen möchten Reservierungen, klicken Sie auf den Button.

해당 도서를 다른 이용자가 함께 대출한 도서

Related books

Related Popular Books

도서위치