Verifying linearisability: A comparative survey

B Dongol, J Derrick - ACM Computing Surveys (CSUR), 2015 - dl.acm.org
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 …

Snowboard: Finding kernel concurrency bugs through systematic inter-thread communication analysis

S Gong, D Altinbüken, P Fonseca… - Proceedings of the ACM …, 2021 - dl.acm.org
Kernel concurrency bugs are challenging to find because they depend on very specific
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 …

Modular verification of linearizability with non-fixed linearization points

H Liang, X Feng - Proceedings of the 34th ACM SIGPLAN Conference …, 2013 - dl.acm.org
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 …

Snowcat: Efficient kernel concurrency testing using a learned coverage predictor

S Gong, D Peng, D Altınbüken, P Fonseca… - Proceedings of the 29th …, 2023 - dl.acm.org
Random-based approaches and heuristics are commonly used in kernel concurrency
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 …

From C to interaction trees: specifying, verifying, and testing a networked server

N Koh, Y Li, Y Li, L Xia, L Beringer, W Honoré… - Proceedings of the 8th …, 2019 - dl.acm.org
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 …

A survey of recent trends in testing concurrent software systems

FA Bianchi, A Margara, M Pezzè - IEEE Transactions on …, 2017 - ieeexplore.ieee.org
Many modern software systems are composed of multiple execution flows that run
simultaneously, spanning from applications designed to exploit the power of modern multi …

Dynamic synthesis for relaxed memory models

F Liu, N Nedev, N Prisadnikov, M Vechev… - ACM SIGPLAN …, 2012 - dl.acm.org
Modern architectures implement relaxed memory models which may reorder memory
operations or execute them non-atomically. Special instructions called memory fences are …

Testing atomicity of composed concurrent operations

O Shacham, N Bronson, A Aiken, M Sagiv… - Proceedings of the …, 2011 - dl.acm.org
We address the problem of testing atomicity of composed concurrent operations. Concurrent
libraries help programmers exploit parallel hardware by providing scalable concurrent …