Verifying linearisability: A comparative survey
Linearisability is a key correctness criterion for concurrent data structures, ensuring that
each history of the concurrent object under consideration is consistent with respect to a …
each history of the concurrent object under consideration is consistent with respect to a …
Snowboard: Finding kernel concurrency bugs through systematic inter-thread communication analysis
Kernel concurrency bugs are challenging to find because they depend on very specific
thread interleavings and test inputs. While separately exploring kernel thread interleavings …
thread interleavings and test inputs. While separately exploring kernel thread interleavings …
Line-up: a complete and automatic linearizability checker
S Burckhardt, C Dern, M Musuvathi, R Tan - Proceedings of the 31st …, 2010 - dl.acm.org
Modular development of concurrent applications requires thread-safe components that
behave correctly when called concurrently by multiple client threads. This paper focuses on …
behave correctly when called concurrently by multiple client threads. This paper focuses on …
Modular verification of linearizability with non-fixed linearization points
Locating linearization points (LPs) is an intuitive approach for proving linearizability, but it is
difficult to apply the idea in Hoare-style logic for formal program verification, especially for …
difficult to apply the idea in Hoare-style logic for formal program verification, especially for …
Snowcat: Efficient kernel concurrency testing using a learned coverage predictor
Random-based approaches and heuristics are commonly used in kernel concurrency
testing due to the massive scale of modern kernels and corresponding interleaving space …
testing due to the massive scale of modern kernels and corresponding interleaving space …
A skiplist-based concurrent priority queue with minimal memory contention
J Lindén, B Jonsson - Principles of Distributed Systems: 17th International …, 2013 - Springer
Priority queues are fundamental to many multiprocessor applications. Several priority queue
algorithms based on skiplists have been proposed, as skiplists allow concurrent accesses to …
algorithms based on skiplists have been proposed, as skiplists allow concurrent accesses to …
From C to interaction trees: specifying, verifying, and testing a networked server
We present the first formal verification of a networked server implemented in C. Interaction
trees, a general structure for representing reactive computations, are used to tie together …
trees, a general structure for representing reactive computations, are used to tie together …
A survey of recent trends in testing concurrent software systems
Many modern software systems are composed of multiple execution flows that run
simultaneously, spanning from applications designed to exploit the power of modern multi …
simultaneously, spanning from applications designed to exploit the power of modern multi …
Dynamic synthesis for relaxed memory models
Modern architectures implement relaxed memory models which may reorder memory
operations or execute them non-atomically. Special instructions called memory fences are …
operations or execute them non-atomically. Special instructions called memory fences are …
Testing atomicity of composed concurrent operations
We address the problem of testing atomicity of composed concurrent operations. Concurrent
libraries help programmers exploit parallel hardware by providing scalable concurrent …
libraries help programmers exploit parallel hardware by providing scalable concurrent …