Methods for Modeling and Analyzing Concurrent Software

Concurrent software executes multiple threads or processes to achieve high performance. However, concurrency results in a huge number of different system behaviors that are difficult to test and verify. The aim of this dissertation is to develop new methods and tools for modeling and analyzing concu...

Full description

Bibliographic Details
Main Author: Zeng, Reng
Format: Others
Published: FIU Digital Commons 2013
Subjects:
Online Access:http://digitalcommons.fiu.edu/etd/931
http://digitalcommons.fiu.edu/cgi/viewcontent.cgi?article=2058&context=etd
id ndltd-fiu.edu-oai-digitalcommons.fiu.edu-etd-2058
record_format oai_dc
spelling ndltd-fiu.edu-oai-digitalcommons.fiu.edu-etd-20582018-07-19T03:33:21Z Methods for Modeling and Analyzing Concurrent Software Zeng, Reng Concurrent software executes multiple threads or processes to achieve high performance. However, concurrency results in a huge number of different system behaviors that are difficult to test and verify. The aim of this dissertation is to develop new methods and tools for modeling and analyzing concurrent software systems at design and code levels. This dissertation consists of several related results. First, a formal model of Mondex, an electronic purse system, is built using Petri nets from user requirements, which is formally verified using model checking. Second, Petri nets models are automatically mined from the event traces generated from scientific workflows. Third, partial order models are automatically extracted from some instrumented concurrent program execution, and potential atomicity violation bugs are automatically verified based on the partial order models using model checking. Our formal specification and verification of Mondex have contributed to the world wide effort in developing a verified software repository. Our method to mine Petri net models automatically from provenance offers a new approach to build scientific workflows. Our dynamic prediction tool, named McPatom, can predict several known bugs in real world systems including one that evades several other existing tools. McPatom is efficient and scalable as it takes advantage of the nature of atomicity violations and considers only a pair of threads and accesses to a single shared variable at one time. However, predictive tools need to consider the tradeoffs between precision and coverage. Based on McPatom, this dissertation presents two methods for improving the coverage and precision of atomicity violation predictions: 1) a post-prediction analysis method to increase coverage while ensuring precision; 2) a follow-up replaying method to further increase coverage. Both methods are implemented in a completely automatic tool. 2013-07-02T07:00:00Z text application/pdf http://digitalcommons.fiu.edu/etd/931 http://digitalcommons.fiu.edu/cgi/viewcontent.cgi?article=2058&context=etd FIU Electronic Theses and Dissertations FIU Digital Commons concurrency multi-threaded program atomicity violation model checking Petri nets verification Mondex scientific workflow Software Engineering
collection NDLTD
format Others
sources NDLTD
topic concurrency
multi-threaded program
atomicity violation
model checking
Petri nets
verification
Mondex
scientific workflow
Software Engineering
spellingShingle concurrency
multi-threaded program
atomicity violation
model checking
Petri nets
verification
Mondex
scientific workflow
Software Engineering
Zeng, Reng
Methods for Modeling and Analyzing Concurrent Software
description Concurrent software executes multiple threads or processes to achieve high performance. However, concurrency results in a huge number of different system behaviors that are difficult to test and verify. The aim of this dissertation is to develop new methods and tools for modeling and analyzing concurrent software systems at design and code levels. This dissertation consists of several related results. First, a formal model of Mondex, an electronic purse system, is built using Petri nets from user requirements, which is formally verified using model checking. Second, Petri nets models are automatically mined from the event traces generated from scientific workflows. Third, partial order models are automatically extracted from some instrumented concurrent program execution, and potential atomicity violation bugs are automatically verified based on the partial order models using model checking. Our formal specification and verification of Mondex have contributed to the world wide effort in developing a verified software repository. Our method to mine Petri net models automatically from provenance offers a new approach to build scientific workflows. Our dynamic prediction tool, named McPatom, can predict several known bugs in real world systems including one that evades several other existing tools. McPatom is efficient and scalable as it takes advantage of the nature of atomicity violations and considers only a pair of threads and accesses to a single shared variable at one time. However, predictive tools need to consider the tradeoffs between precision and coverage. Based on McPatom, this dissertation presents two methods for improving the coverage and precision of atomicity violation predictions: 1) a post-prediction analysis method to increase coverage while ensuring precision; 2) a follow-up replaying method to further increase coverage. Both methods are implemented in a completely automatic tool.
author Zeng, Reng
author_facet Zeng, Reng
author_sort Zeng, Reng
title Methods for Modeling and Analyzing Concurrent Software
title_short Methods for Modeling and Analyzing Concurrent Software
title_full Methods for Modeling and Analyzing Concurrent Software
title_fullStr Methods for Modeling and Analyzing Concurrent Software
title_full_unstemmed Methods for Modeling and Analyzing Concurrent Software
title_sort methods for modeling and analyzing concurrent software
publisher FIU Digital Commons
publishDate 2013
url http://digitalcommons.fiu.edu/etd/931
http://digitalcommons.fiu.edu/cgi/viewcontent.cgi?article=2058&context=etd
work_keys_str_mv AT zengreng methodsformodelingandanalyzingconcurrentsoftware
_version_ 1718712875869011968