Show simple item record

dc.contributor.advisorHuang, Jeff
dc.creatorHuang, Shiyou
dc.date.accessioned2020-09-10T15:44:11Z
dc.date.available2021-12-01T08:43:13Z
dc.date.created2019-12
dc.date.issued2019-11-20
dc.date.submittedDecember 2019
dc.identifier.urihttps://hdl.handle.net/1969.1/189061
dc.description.abstractConcurrent programs are ubiquitous, from the high-end servers to personal machines, due to the fact of multi-core hardware. Unfortunately, it is difficult to write correct concurrent programs. Stateless Model Checking (SMT) and Deterministic Replay are powerful techniques for systematic testing and reproducing concurrent failures. However, it is challenging to develop efficient and practical SMT and bug reproduction systems due to the exponentially large thread interleaving space which can be exacerbated when it comes to relaxed memory models. In this work, I introduce my research efforts to address the challenges in developing fast and effective SMT and deterministic replay techniques. I present a new model checking technique based on maximal causality reduction for verifying concurrent programs under different memory models. I also optimize the model checker by using static dependency analysis to reduce the constraints size and introducing a new equivalence for checking the seed interleavings, which I call switch equivalence to further reduce the redundant exploration. To debug heisenbugs more efficiently, I presents a new concurrency failure reproduction technique, H3, that enables reproducing concurrency bugs in production runs on commercial off-the-shelf hardware for the first time. H3 integrates the hardware control flow tracing capability provided in recent Intel processors, Processor Tracing (PT), with symbolic constraint analysis. Compared to a state-of-the-art solution, CLAP, this integration allows H3 to reproduce failures with much lower runtime overhead and much more compact control-flow trace. Moreover, it allows us to develop a highly effective core-based constraint reduction technique that reduces the complexity of the generated symbolic constraints from exponential in the trace size to exponential in the number of cores.en
dc.format.mimetypeapplication/pdf
dc.language.isoen
dc.subjectSoftware Verificationen
dc.subjectConcurrency Debuggingen
dc.subjectModel Checkingen
dc.subjectProgramming Language and Software Engineeringen
dc.subjectRecord and Replayen
dc.titleFast and Effective Approaches for Verifying and Debugging Concurrent Programsen
dc.typeThesisen
thesis.degree.departmentComputer Science and Engineeringen
thesis.degree.disciplineComputer Scienceen
thesis.degree.grantorTexas A&M Universityen
thesis.degree.nameDoctor of Philosophyen
thesis.degree.levelDoctoralen
dc.contributor.committeeMemberGratz, Paul
dc.contributor.committeeMemberRauchwerger, Lawrence
dc.contributor.committeeMemberDa Silva, Dilma
dc.type.materialtexten
dc.date.updated2020-09-10T15:44:12Z
local.embargo.terms2021-12-01
local.etdauthor.orcid0000-0002-2770-9939


Files in this item

Thumbnail

This item appears in the following Collection(s)

Show simple item record