liu.seSearch for publications in DiVA
Change search
CiteExportLink to record
Permanent link

Direct link
Cite
Citation style
  • apa
  • ieee
  • modern-language-association-8th-edition
  • vancouver
  • oxford
  • Other style
More styles
Language
  • de-DE
  • en-GB
  • en-US
  • fi-FI
  • nn-NO
  • nn-NB
  • sv-SE
  • Other locale
More languages
Output format
  • html
  • text
  • asciidoc
  • rtf
An integrated specification and verification technique for highly concurrent data structures
Uppsala University, Sweden.
Uppsala University, Sweden.
Uppsala University, Sweden; Brno University of Technology, Czech Republic.
Uppsala University, Sweden.
Show others and affiliations
2017 (English)In: International Journal on Software Tools for Technology Transfer, ISSN 1433-2779, E-ISSN 1433-2787, Vol. 19, no 5, p. 549-563Article in journal (Refereed) Published
Abstract [en]

We present a technique for automatically verifying safety properties of concurrent programs, in particular programs that rely on subtle dependencies of local states of different threads, such as lock-free implementations of stacks and queues in an environment without garbage collection. Our technique addresses the joint challenges of infinite-state specifications, an unbounded number of threads, and an unbounded heap managed by explicit memory allocation. Our technique builds on the automata-theoretic approach to model checking, in which a specification is given by an automaton that observes the execution of a program and accepts executions that violate the intended specification. We extend this approach by allowing specifications to be given by a class of infinite-state automata. We show how such automata can be used to specify queues, stacks, and other data structures, by extending a data-independence argument. For verification, we develop a shape analysis, which tracks correlations between pairs of threads, and a novel abstraction to make the analysis practical. We have implemented our method and used it to verify programs, some of which have not been verified by any other automatic method before.

Place, publisher, year, edition, pages
SPRINGER HEIDELBERG , 2017. Vol. 19, no 5, p. 549-563
Keywords [en]
Verification; Pointer programs; Explicit memory allocation; Queue; Stack; Unbounded; Concurrency; Specification; Linearizability
National Category
Computer Sciences
Identifiers
URN: urn:nbn:se:liu:diva-141116DOI: 10.1007/s10009-016-0415-4ISI: 000409295800004OAI: oai:DiVA.org:liu-141116DiVA, id: diva2:1144777
Note

Funding Agencies|Uppsala Programming for Multicore Architectures Research Center (UPMARC); Czech Science Foundation [13-37876P]; Brno University of Technology [FIT-S-12-1, FIT-S-14-2486]; CENIIT research organization at Linkoping [12.04]

Available from: 2017-09-27 Created: 2017-09-27 Last updated: 2024-01-17

Open Access in DiVA

No full text in DiVA

Other links

Publisher's full textCorrection

Search in DiVA

By author/editor
Rezine, Ahmed
By organisation
Software and SystemsFaculty of Science & Engineering
In the same journal
International Journal on Software Tools for Technology Transfer
Computer Sciences

Search outside of DiVA

GoogleGoogle Scholar

doi
urn-nbn

Altmetric score

doi
urn-nbn
Total: 327 hits
CiteExportLink to record
Permanent link

Direct link
Cite
Citation style
  • apa
  • ieee
  • modern-language-association-8th-edition
  • vancouver
  • oxford
  • Other style
More styles
Language
  • de-DE
  • en-GB
  • en-US
  • fi-FI
  • nn-NO
  • nn-NB
  • sv-SE
  • Other locale
More languages
Output format
  • html
  • text
  • asciidoc
  • rtf