Effective Techniques for Stateless Model Checking

Stateless model checking is a technique for testing and verifying concurrent programs, based on exploring the different ways in which operations executed by the processes of a concurrent program can be scheduled. The goal of the technique is to expose all behaviours that can be a result of schedulin...

Full description

Bibliographic Details
Main Author: Aronis, Stavros
Format: Doctoral Thesis
Language:English
Published: Uppsala universitet, Avdelningen för datalogi 2018
Subjects:
Online Access:http://urn.kb.se/resolve?urn=urn:nbn:se:uu:diva-333541
http://nbn-resolving.de/urn:isbn:978-91-513-0160-0
id ndltd-UPSALLA1-oai-DiVA.org-uu-333541
record_format oai_dc
spelling ndltd-UPSALLA1-oai-DiVA.org-uu-3335412017-12-20T05:28:57ZEffective Techniques for Stateless Model CheckingengAronis, StavrosUppsala universitet, Avdelningen för datalogiUppsala universitet, DatalogiUppsala2018ConcurrentParallelModel CheckingPartial Order ReductionDynamic Partial Order ReductionDPORSleep Set BlockingSource SetsSource DPORWakeup TreesOptimal DPORObserversVerificationBoundingExploration Tree BoundingTestingErlangConcuerrorProtocolChain ReplicationCORFUComputer SciencesDatavetenskap (datalogi)Stateless model checking is a technique for testing and verifying concurrent programs, based on exploring the different ways in which operations executed by the processes of a concurrent program can be scheduled. The goal of the technique is to expose all behaviours that can be a result of scheduling non-determinism. As the number of possible schedulings is huge, however, techniques that reduce the number of schedulings that must be explored to achieve verification have been developed. Dynamic partial order reduction (DPOR) is a prominent such technique. This dissertation presents a number of improvements to dynamic partial order reduction that significantly increase the effectiveness of stateless model checking. Central among these improvements are the Source and Optimal DPOR algorithms (and the theoretical framework behind them) and a technique that allows the observability of the interference of operations to be used in dynamic partial order reduction. Each of these techniques can exponentially decrease the number of schedulings that need to be explored to verify a concurrent program. The dissertation also presents a simple bounding technique that is compatible with DPOR algorithms and effective for finding bugs in concurrent programs, if the number of schedulings is too big to make full verification possible in a reasonable amount of time, even when the improved algorithms are used. All improvements have been implemented in Concuerror, a tool for applying stateless model checking to Erlang programs. In order to increase the effectiveness of the tool, the interference of the high-level operations of the Erlang/OTP implementation is examined, classified and precisely characterized. Aspects of the implementation of the tool are also described. Finally, a use case is presented, showing how Concuerror was used to find bugs and verify key correctness properties in repair techniques for the CORFU chain replication protocol. UPMARCRELEASEDoctoral thesis, comprehensive summaryinfo:eu-repo/semantics/doctoralThesistexthttp://urn.kb.se/resolve?urn=urn:nbn:se:uu:diva-333541urn:isbn:978-91-513-0160-0Digital Comprehensive Summaries of Uppsala Dissertations from the Faculty of Science and Technology, 1651-6214 ; 1602application/pdfinfo:eu-repo/semantics/openAccess
collection NDLTD
language English
format Doctoral Thesis
sources NDLTD
topic Concurrent
Parallel
Model Checking
Partial Order Reduction
Dynamic Partial Order Reduction
DPOR
Sleep Set Blocking
Source Sets
Source DPOR
Wakeup Trees
Optimal DPOR
Observers
Verification
Bounding
Exploration Tree Bounding
Testing
Erlang
Concuerror
Protocol
Chain Replication
CORFU
Computer Sciences
Datavetenskap (datalogi)
spellingShingle Concurrent
Parallel
Model Checking
Partial Order Reduction
Dynamic Partial Order Reduction
DPOR
Sleep Set Blocking
Source Sets
Source DPOR
Wakeup Trees
Optimal DPOR
Observers
Verification
Bounding
Exploration Tree Bounding
Testing
Erlang
Concuerror
Protocol
Chain Replication
CORFU
Computer Sciences
Datavetenskap (datalogi)
Aronis, Stavros
Effective Techniques for Stateless Model Checking
description Stateless model checking is a technique for testing and verifying concurrent programs, based on exploring the different ways in which operations executed by the processes of a concurrent program can be scheduled. The goal of the technique is to expose all behaviours that can be a result of scheduling non-determinism. As the number of possible schedulings is huge, however, techniques that reduce the number of schedulings that must be explored to achieve verification have been developed. Dynamic partial order reduction (DPOR) is a prominent such technique. This dissertation presents a number of improvements to dynamic partial order reduction that significantly increase the effectiveness of stateless model checking. Central among these improvements are the Source and Optimal DPOR algorithms (and the theoretical framework behind them) and a technique that allows the observability of the interference of operations to be used in dynamic partial order reduction. Each of these techniques can exponentially decrease the number of schedulings that need to be explored to verify a concurrent program. The dissertation also presents a simple bounding technique that is compatible with DPOR algorithms and effective for finding bugs in concurrent programs, if the number of schedulings is too big to make full verification possible in a reasonable amount of time, even when the improved algorithms are used. All improvements have been implemented in Concuerror, a tool for applying stateless model checking to Erlang programs. In order to increase the effectiveness of the tool, the interference of the high-level operations of the Erlang/OTP implementation is examined, classified and precisely characterized. Aspects of the implementation of the tool are also described. Finally, a use case is presented, showing how Concuerror was used to find bugs and verify key correctness properties in repair techniques for the CORFU chain replication protocol. === UPMARC === RELEASE
author Aronis, Stavros
author_facet Aronis, Stavros
author_sort Aronis, Stavros
title Effective Techniques for Stateless Model Checking
title_short Effective Techniques for Stateless Model Checking
title_full Effective Techniques for Stateless Model Checking
title_fullStr Effective Techniques for Stateless Model Checking
title_full_unstemmed Effective Techniques for Stateless Model Checking
title_sort effective techniques for stateless model checking
publisher Uppsala universitet, Avdelningen för datalogi
publishDate 2018
url http://urn.kb.se/resolve?urn=urn:nbn:se:uu:diva-333541
http://nbn-resolving.de/urn:isbn:978-91-513-0160-0
work_keys_str_mv AT aronisstavros effectivetechniquesforstatelessmodelchecking
_version_ 1718564256667926528