Decoupling lock-free data structures from memory reclamation for static analysis

Verification of concurrent data structures is one of the most challenging tasks in software verification. The topic has received considerable attention over the course of the last decade. Nevertheless, human-driven techniques remain cumbersome and notoriously difficult while automated approaches suf...

Celý popis

Uloženo v:
Podrobná bibliografie
Vydáno v:Proceedings of ACM on programming languages Ročník 3; číslo POPL; s. 1 - 31
Hlavní autoři: Meyer, Roland, Wolff, Sebastian
Médium: Journal Article
Jazyk:angličtina
Vydáno: New York, NY, USA ACM 02.01.2019
Témata:
ISSN:2475-1421, 2475-1421
On-line přístup:Získat plný text
Tagy: Přidat tag
Žádné tagy, Buďte první, kdo vytvoří štítek k tomuto záznamu!
Abstract Verification of concurrent data structures is one of the most challenging tasks in software verification. The topic has received considerable attention over the course of the last decade. Nevertheless, human-driven techniques remain cumbersome and notoriously difficult while automated approaches suffer from limited applicability. The main obstacle for automation is the complexity of concurrent data structures. This is particularly true in the absence of garbage collection. The intricacy of lock-free memory management paired with the complexity of concurrent data structures makes automated verification prohibitive. In this work we present a method for verifying concurrent data structures and their memory management separately. We suggest two simpler verification tasks that imply the correctness of the data structure. The first task establishes an over-approximation of the reclamation behavior of the memory management. The second task exploits this over-approximation to verify the data structure without the need to consider the implementation of the memory management itself. To make the resulting verification tasks tractable for automated techniques, we establish a second result. We show that a verification tool needs to consider only executions where a single memory location is reused. We implemented our approach and were able to verify linearizability of Michael&Scott's queue and the DGLM queue for both hazard pointers and epoch-based reclamation. To the best of our knowledge, we are the first to verify such implementations fully automatically.
AbstractList Verification of concurrent data structures is one of the most challenging tasks in software verification. The topic has received considerable attention over the course of the last decade. Nevertheless, human-driven techniques remain cumbersome and notoriously difficult while automated approaches suffer from limited applicability. The main obstacle for automation is the complexity of concurrent data structures. This is particularly true in the absence of garbage collection. The intricacy of lock-free memory management paired with the complexity of concurrent data structures makes automated verification prohibitive. In this work we present a method for verifying concurrent data structures and their memory management separately. We suggest two simpler verification tasks that imply the correctness of the data structure. The first task establishes an over-approximation of the reclamation behavior of the memory management. The second task exploits this over-approximation to verify the data structure without the need to consider the implementation of the memory management itself. To make the resulting verification tasks tractable for automated techniques, we establish a second result. We show that a verification tool needs to consider only executions where a single memory location is reused. We implemented our approach and were able to verify linearizability of Michael&Scott's queue and the DGLM queue for both hazard pointers and epoch-based reclamation. To the best of our knowledge, we are the first to verify such implementations fully automatically.
Verification of concurrent data structures is one of the most challenging tasks in software verification. The topic has received considerable attention over the course of the last decade. Nevertheless, human-driven techniques remain cumbersome and notoriously difficult while automated approaches suffer from limited applicability. The main obstacle for automation is the complexity of concurrent data structures. This is particularly true in the absence of garbage collection. The intricacy of lock-free memory management paired with the complexity of concurrent data structures makes automated verification prohibitive. In this work we present a method for verifying concurrent data structures and their memory management separately. We suggest two simpler verification tasks that imply the correctness of the data structure. The first task establishes an over-approximation of the reclamation behavior of the memory management. The second task exploits this over-approximation to verify the data structure without the need to consider the implementation of the memory management itself. To make the resulting verification tasks tractable for automated techniques, we establish a second result. We show that a verification tool needs to consider only executions where a single memory location is reused. We implemented our approach and were able to verify linearizability of Michael&Scott's queue and the DGLM queue for both hazard pointers and epoch-based reclamation. To the best of our knowledge, we are the first to verify such implementations fully automatically.
ArticleNumber 58
Author Meyer, Roland
Wolff, Sebastian
Author_xml – sequence: 1
  givenname: Roland
  surname: Meyer
  fullname: Meyer, Roland
  email: roland.meyer@tu-bs.de
  organization: TU Braunschweig, Germany
– sequence: 2
  givenname: Sebastian
  surname: Wolff
  fullname: Wolff, Sebastian
  email: sebastian.wolff@tu-bs.de
  organization: TU Braunschweig, Germany
BookMark eNptkE1LxDAYhIOs4Lou3j3l5imarzbtUdZPWNCDnsu76Rupts2SpIf-e6u7ioinGZiHYZhjMut9j4ScCn4hhM4ulSy5MuKAzKU2GRNaitkvf0SWMb5xzkWpdKHKOXm6RuuHbdv0r7T19p25gEhrSEBjCoNNQ8BIXfAd7bDzYaQBbQsdpMb31PkwYZO3FHpox9jEE3LooI243OuCvNzePK_u2frx7mF1tWYgjUmsqPMikzlIxI1GblDVjqMReWYKaRCdkBtTgwWb1dN661BbOUXSOKMUcrUgbNdrg48xoKtsk75WpQBNWwlefT5S7R-Z-PM__DY0HYTxH_JsR4LtfqDv8APeWGqr
CitedBy_id crossref_primary_10_1007_s10009_022_00648_0
crossref_primary_10_1145_3622827
crossref_primary_10_1145_3563337
crossref_primary_10_1145_3563292
Cites_doi 10.1145/3178487.3178488
10.1109/ICECCS.2007.39
10.1145/78969.78972
10.1145/383962.384016
10.1007/978-3-662-54434-1_24
10.1145/3092255.3092274
10.1007/978-3-642-14295-6_41
10.1016/j.entcs.2005.04.026
10.1145/571825.571829
10.1145/1375581.1375598
10.1145/2737924.2737983
10.1007/978-3-319-03077-7_21
10.1145/2737924.2737964
10.1007/978-3-642-11319-2_25
10.1007/978-3-662-49122-5_19
10.1145/2486159.2486184
10.1007/978-3-642-14295-6_40
10.1007/978-3-540-70545-1_37
10.1145/1835698.1835722
10.1145/3158125
10.1145/2737924.2737992
10.1145/2755573.2755600
10.1145/1806596.1806634
10.1145/3092282.3092287
10.1007/11817963_44
10.1145/2676726.2676963
10.1007/978-3-642-31424-7_21
10.1007/978-3-642-02652-2_21
10.1007/s00165-012-0250-7
10.1109/ISPAN.2005.42
10.1145/3158113
10.1145/248052.248106
10.1145/2926697.2926699
10.1007/978-3-642-40184-8_18
10.1007/s10009-016-0415-4
10.1007/978-3-662-48653-5_25
10.1145/1190216.1190261
10.1007/978-3-662-46669-8_14
10.1145/2103656.2103711
10.1145/1007912.1007945
10.1145/2611462.2611483
10.1007/978-3-642-12002-2_25
10.1007/978-3-642-05089-3_21
10.1145/2592798.2592808
10.1145/2491956.2462189
10.1007/978-3-642-10672-9_5
10.1145/2755573.2755579
10.1145/2767386.2767436
10.1007/s00165-009-0130-y
10.1007/978-3-642-37036-6_15
10.1145/1993806.1993821
10.1145/1889997.1890001
10.1145/2576235
10.1145/69575.69577
10.1145/2935764.2935790
10.1145/1062247.1062249
10.1145/2506164.2506174
10.1145/3087556.3087588
10.1109/TSE.2012.82
10.1145/2814270.2814298
10.1145/1985793.1986037
ContentType Journal Article
Copyright Owner/Author
Copyright_xml – notice: Owner/Author
DBID AAYXX
CITATION
DOI 10.1145/3290371
DatabaseName CrossRef
DatabaseTitle CrossRef
DatabaseTitleList CrossRef

DeliveryMethod fulltext_linktorsrc
Discipline Computer Science
EISSN 2475-1421
EndPage 31
ExternalDocumentID 10_1145_3290371
3290371
GroupedDBID AAKMM
AAYFX
ACM
ADPZR
AIKLT
ALMA_UNASSIGNED_HOLDINGS
EBS
GUFHI
LHSKQ
M~E
OK1
ROL
AAYXX
AEFXT
AEJOY
AKRVB
CITATION
ID FETCH-LOGICAL-a277t-8d68526a2eeb4e07e3df0e71657827eef12b7dacac5d475cfe4c278227f733e03
ISICitedReferencesCount 11
ISICitedReferencesURI http://www.webofscience.com/api/gateway?GWVersion=2&SrcApp=Summon&SrcAuth=ProQuest&DestLinkType=CitingArticles&DestApp=WOS_CPL&KeyUT=000678450300058&url=https%3A%2F%2Fcvtisr.summon.serialssolutions.com%2F%23%21%2Fsearch%3Fho%3Df%26include.ft.matches%3Dt%26l%3Dnull%26q%3D
ISSN 2475-1421
IngestDate Sat Nov 29 07:45:46 EST 2025
Tue Nov 18 22:40:29 EST 2025
Mon Feb 24 21:14:27 EST 2025
IsDoiOpenAccess true
IsOpenAccess true
IsPeerReviewed true
IsScholarly true
Issue POPL
Keywords static analysis
memory management
safe memory reclamation
lock-free data structures
linearizability
verification
Language English
License This work is licensed under a Creative Commons Attribution International 4.0 License.
LinkModel OpenURL
MergedId FETCHMERGED-LOGICAL-a277t-8d68526a2eeb4e07e3df0e71657827eef12b7dacac5d475cfe4c278227f733e03
OpenAccessLink https://dl.acm.org/doi/10.1145/3290371
PageCount 31
ParticipantIDs crossref_citationtrail_10_1145_3290371
crossref_primary_10_1145_3290371
acm_primary_3290371
PublicationCentury 2000
PublicationDate 2019-01-02
PublicationDateYYYYMMDD 2019-01-02
PublicationDate_xml – month: 01
  year: 2019
  text: 2019-01-02
  day: 02
PublicationDecade 2010
PublicationPlace New York, NY, USA
PublicationPlace_xml – name: New York, NY, USA
PublicationTitle Proceedings of ACM on programming languages
PublicationTitleAbbrev ACM PACMPL
PublicationYear 2019
Publisher ACM
Publisher_xml – name: ACM
References R.Kent Treiber. 1986. Systems programming: coping with parallelism. Technical Report RJ 5118. IBM.
Robert Colvin, Lindsay Groves, Victor Luchangco, and Mark Moir. 2006. Formal Verification of a Lazy Concurrent List-Based Set Algorithm. In CAV (LNCS), Vol. 4144. Springer, 475–488. 10.1007/11817963_44
Thomas A. Henzinger, Ali Sezgin, and Viktor Vafeiadis. 2013. Aspect-Oriented Linearizability Proofs. In CONCUR (LNCS), Vol. 8052. Springer, 242–256. 10.1007/978-3-642-40184-8_18
Cliff B. Jones. 1983. Tentative Steps Toward a Development Method for Interfering Programs. ACM Trans. Program. Lang. Syst. 5, 4 (1983), 596–619. 10.1145/69575.69577
Pedro Ramalhete and Andreia Correia. 2017. Brief Announcement: Hazard Eras - Non-Blocking Memory Reclamation. In SPAA. ACM, 367–369. 10.1145/3087556.3087588
Pavol Cerný, Arjun Radhakrishna, Damien Zufferey, Swarat Chaudhuri, and Rajeev Alur. 2010. Model Checking of Linearizability of Concurrent List Implementations. In CAV (LNCS), Vol. 6174. Springer, 465–479. 10.1007/978-3-642-14295-6_41
Robert Colvin, Simon Doherty, and Lindsay Groves. 2005. Verifying Concurrent Data Structures by Simulation. Electr. Notes Theor. Comput. Sci. 137, 2 (2005), 93–110. 10.1016/j.entcs.2005.04.026
Lindsay Groves. 2008. Verifying Michael and Scott’s Lock-Free Queue Algorithm using Trace Reduction. In CATS (CRPIT), Vol. 77. Australian Computer Society, 133–142. http://crpit.com/abstracts/CRPITV77Groves.html
Maged M. Michael. 2002. Safe memory reclamation for dynamic lock-free objects using atomic reads and writes. In PODC. ACM, 21–30. 10.1145/571825.571829
Nachshon Cohen and Erez Petrank. 2015a. Automatic memory reclamation for lock-free data structures. In OOPSLA. ACM, 260–279. 10.1145/2814270.2814298
Anders Gidenstam, Marina Papatriantafilou, Håkan Sundell, and Philippas Tsigas. 2005. Efficient and Reliable Lock-Free Memory Reclamation Based on Reference Counting. In ISPAN. IEEE Computer Society, 202–207. 10.1109/ISPAN.2005.42
Albert Mingkun Yang and Tobias Wrigstad. 2017. Type-assisted automatic garbage collection for lock-free data structures. In ISMM. ACM, 14–24. 10.1145/3092255.3092274
Mike Dodds, Andreas Haas, and Christoph M. Kirsch. 2015. A Scalable, Correct Time-Stamped Stack. In POPL. ACM, 233–246. 10.1145/2676726.2676963
Nachshon Cohen and Erez Petrank. 2015b. Efficient Memory Management for Lock-Free Data Structures with Optimistic Access. In SPAA. ACM, 254–263. 10.1145/2755573.2755579
Gavin Lowe. 2017. Testing for linearizability. Concurrency and Computation: Practice and Experience 29, 4 (2017).
Michael Emmi, Constantin Enea, and Jad Hamza. 2015. Monitoring refinement via symbolic reasoning. In PLDI. ACM, 260–269. 10.1145/2737924.2737983
Hongjin Liang, Xinyu Feng, and Ming Fu. 2014. Rely-Guarantee-Based Simulation for Compositional Verification of Concurrent Program Transformations. ACM Trans. Program. Lang. Syst. 36, 1 (2014), 3:1–3:55. 10.1145/2576235
Joseph Tassarotti, Derek Dreyer, and Viktor Vafeiadis. 2015. Verifying read-copy-update in a logic for weak memory. In PLDI. ACM, 110–120. 10.1145/2737924.2737992
Tayfun Elmas, Shaz Qadeer, Ali Sezgin, Omer Subasi, and Serdar Tasiran. 2010. Simplifying Linearizability Proofs with Reduction and Abstraction. In TACAS (LNCS), Vol. 6015. Springer, 296–311. 10.1007/978-3-642-12002-2_25
Zahra Aghazadeh, Wojciech M. Golab, and Philipp Woelfel. 2014. Making objects writable. In PODC. ACM, 385–395. 10.1145/2611462.2611483
Aleksandar Dragojevic, Maurice Herlihy, Yossi Lev, and Mark Moir. 2011. On the power of hardware transactional memory to simplify memory management. In PODC. ACM, 99–108. 10.1145/1993806.1993821
Paul E. McKenney. 2004. Exploiting Deferred Destruction: an Analysis of Read-Copy-Update Techniques in Operating System Kernels. Ph.D. Dissertation. Oregon Health & Science University.
Roland Meyer and Sebastian Wolff. 2018. Decoupling Lock-Free Data Structures from Memory Reclamation for Static Analysis. CoRR abs/1810.10807 (2018). http://arxiv.org/abs/1810.10807
Alexey Gotsman, Noam Rinetzky, and Hongseok Yang. 2013. Verifying Concurrent Memory Reclamation Algorithms with Grace. In ESOP (LNCS), Vol. 7792. Springer, 249–269. 10.1007/978-3-642-37036-6_15
Lindsay Groves. 2007. Reasoning about Nonblocking Concurrency using Reduction. In ICECCS. IEEE Computer Society, 107–116. 10.1109/ICECCS.2007.39
Germán Andrés Delbianco, Ilya Sergey, Aleksandar Nanevski, and Anindya Banerjee. 2017. Concurrent Data Structures Linked in Time. In ECOOP (LIPIcs), Vol. 74. Schloss Dagstuhl - Leibniz-Zentrum fuer Informatik, 8:1–8:30.
Ahmed Bouajjani, Michael Emmi, Constantin Enea, and Suha Orhun Mutluergil. 2017. Proving Linearizability Using Forward Simulations. In CAV (2) (LNCS), Vol. 10427. Springer, 542–563.
Ming Fu, Yong Li, Xinyu Feng, Zhong Shao, and Yu Zhang. 2010. Reasoning about Optimistic Concurrency Using a Program Logic for History. In CONCUR (LNCS), Vol. 6269. Springer, 388–402.
Michalis Kokologiannakis and Konstantinos Sagonas. 2017. Stateless model checking of the Linux kernel’s hierarchical read-copy-update (tree RCU). In SPIN. ACM, 172–181. 10.1145/3092282.3092287
Lihao Liang, Paul E. McKenney, Daniel Kroening, and Tom Melham. 2018. Verification of tree-based hierarchical read-copy update in the Linux kernel. In DATE. IEEE, 61–66.
Alex Horn and Daniel Kroening. 2015. Faster Linearizability Checking via P-Compositionality. In FORTE (LNCS), Vol. 9039. Springer, 50–65.
Mathieu Desnoyers, Paul E. McKenney, and Michel R. Dagenais. 2013. Multi-core systems modeling for formal verification of parallel algorithms. Operating Systems Review 47, 2 (2013), 51–65. 10.1145/2506164.2506174
Matthew J. Parkinson, Richard Bornat, and Peter W. O’Hearn. 2007. Modular verification of a non-blocking stack. In POPL. ACM, 297–302. 10.1145/1190216.1190261
Moshe Y. Vardi. 1987. Verification of Concurrent Programs: The Automata-Theoretic Framework. In LICS. IEEE Computer Society, 167–176.
Michael Emmi and Constantin Enea. 2018. Sound, complete, and tractable linearizability monitoring for concurrent collections. PACMPL 2, POPL (2018), 25:1–25:27. 10.1145/3158113
Shao Jie Zhang. 2011. Scalable automatic linearizability checking. In ICSE. ACM, 1185–1187. 10.1145/1985793.1986037
Divjyot Sethi, Muralidhar Talupur, and Sharad Malik. 2013. Model Checking Unbounded Concurrent Lists. In SPIN (LNCS), Vol. 7976. Springer, 320–340.
Dan Alistarh, Patrick Eugster, Maurice Herlihy, Alexander Matveev, and Nir Shavit. 2014. StackTrack: an automated transactional approach to concurrent memory reclamation. In EuroSys. ACM, 25:1–25:14. 10.1145/2592798.2592808
Brijesh Dongol and John Derrick. 2014. Verifying linearizability: A comparative survey. CoRR abs/1410.6268 (2014). http://arxiv.org/abs/1410.6268
Peter W. O’Hearn, Noam Rinetzky, Martin T. Vechev, Eran Yahav, and Greta Yorsh. 2010. Verifying linearizability with hindsight. In PODC. ACM, 85–94. 10.1145/1835698.1835722
Dave Dice, Maurice Herlihy, and Alex Kogan. 2016. Fast non-intrusive memory reclamation for highly-concurrent data structures. In ISMM. ACM, 36–45. 10.1145/2926697.2926699
Maged M. Michael and Michael L. Scott. 1996. Simple, Fast, and Practical Non-Blocking and Blocking Concurrent Queue Algorithms. In PODC. ACM, 267–275. 10.1145/248052.248106
Bengt Jonsson. 2012. Using refinement calculus techniques to prove linearizability. Formal Asp. Comput. 24, 4-6 (2012), 537–554.
Martin T. Vechev, Eran Yahav, and Greta Yorsh. 2009. Experience with Model Checking Linearizability. In SPIN (LNCS), Vol. 5578. Springer, 261–278. 10.1007/978-3-642-02652-2_21
Simon Doherty and Mark Moir. 2009. Nonblocking Algorithms and Backward Simulation. In DISC (LNCS), Vol. 5805. Springer, 274–288.
Keir Fraser. 2004. Practical lock-freedom. Ph.D. Dissertation. University of Cambridge, UK. http://ethos.bl.uk/OrderDetails. do?uin=uk.bl.ethos.599193
Timothy L. Harris. 2001. A Pragmatic Implementation of Non-blocking Linked-Lists. In DISC (LNCS), Vol. 2180. Springer, 300–314.
Gerhard Schellhorn, Heike Wehrheim, and John Derrick. 2012. How to Prove Algorithms Linearisable. In CAV (LNCS), Vol. 7358. Springer, 243–259. 10.1007/978-3-642-31424-7_21
Hongjin Liang and Xinyu Feng. 2013. Modular verification of linearizability with non-fixed linearization points. In PLDI. ACM, 459–470. 10.1145/2491956.2462189
Yang Liu, Wei Chen, Yanhong A. Liu, Jun Sun, Shao Jie Zhang, and Jin Song Dong. 2013. Verifying Linearizability via Optimized Refinement Checking. IEEE Trans. Software Eng. 39, 7 (2013), 1018–1039. 10.1109/TSE.2012.82
Anastasia Braginsky, Alex Kogan, and Erez Petrank. 2013. Drop the anchor: lightweight memory management for nonblocking data structures. In SPAA. ACM, 33–42. 10.1145/2486159.2486184
David Detlefs, Paul Alan Martin, Mark Moir, and Guy L. Steele Jr. 2001. Lock-free reference counting. In PODC. ACM, 190–199. 10.1145/383962.384016
Ilya Sergey, Aleksandar Nanevski, and Anindya Banerjee. 2015b. Specifying and Verifying Concurrent Algorithms with Histories and Subjectivity. In ESOP (LNCS), Vol. 9032. Springer, 333–358. 10.1007/978-3-662-46669-8_14
Paul E. McKenney and John D. Slingwine. 1998. Read-copy Update: Using Execution History to Solve Concurrency Problems.
Jade Alglave, Daniel Kroening, and Michael Tautschnig. 2013. Partial Orders for Efficient Bounded Model Checking of Concurrent Software. In CAV (LNCS), Vol. 8044. Springer, 141–157.
Dan Alistarh, William M. Leiserson, Alexander Matveev, and Nir Shavit. 2015. ThreadScan: Automatic and Scalable Memory Reclamation. In SPAA. ACM, 123–132. 10.1145/2755573.2755600
Martin T. Vechev and Eran Yahav. 2008. Deriving linearizable fine-grained concurrent objects. In PLDI. ACM, 125–135. 10.1145/1375581.1375598
Josh Berdine, Tal Lev-Ami, Roman Manevich, G. Ramalingam, and Shmuel Sagiv. 2008. Thread Quantification for Concurrent Shape Analysis. In CAV (LNCS), Vol. 5123. Springer, 399–413. 10.1007/978-3-540-70545-1_37
He Zhu, Gustavo Petri, and Suresh Jagannathan. 2015. Poling: SMT Aided Linearizability Proofs. In CAV (2) (LNCS), Vol. 9207. Springer, 3–19.
Daph
e_1_2_2_4_1
Zhu He (e_1_2_2_88_1) 2015
Amit Daphna (e_1_2_2_8_1)
e_1_2_2_24_1
e_1_2_2_49_1
e_1_2_2_6_1
e_1_2_2_22_1
Liang Lihao (e_1_2_2_57_1)
Yang Xiaoxiao (e_1_2_2_86_1) 2017
e_1_2_2_20_1
e_1_2_2_2_1
e_1_2_2_87_1
e_1_2_2_43_1
e_1_2_2_64_1
e_1_2_2_85_1
e_1_2_2_45_1
e_1_2_2_66_1
e_1_2_2_26_1
e_1_2_2_68_1
Lowe Gavin (e_1_2_2_60_1) 2017
Harris Timothy L. (e_1_2_2_41_1)
Dongol Brijesh (e_1_2_2_30_1) 2014
e_1_2_2_83_1
Delbianco Germán Andrés (e_1_2_2_21_1) 2017; 74
e_1_2_2_13_1
e_1_2_2_38_1
e_1_2_2_59_1
e_1_2_2_11_1
Doherty Simon (e_1_2_2_28_1)
Meyer Roland (e_1_2_2_63_1) 2018
e_1_2_2_51_1
Abdulla Parosh Aziz (e_1_2_2_1_1)
e_1_2_2_19_1
e_1_2_2_32_1
e_1_2_2_53_1
e_1_2_2_17_1
e_1_2_2_34_1
e_1_2_2_55_1
e_1_2_2_15_1
Tofan Bogdan (e_1_2_2_76_1)
e_1_2_2_70_1
Horn Alex (e_1_2_2_48_1)
e_1_2_2_72_1
e_1_2_2_25_1
e_1_2_2_23_1
e_1_2_2_7_1
Doherty Simon (e_1_2_2_29_1)
e_1_2_2_42_1
e_1_2_2_84_1
e_1_2_2_9_1
e_1_2_2_44_1
e_1_2_2_67_1
e_1_2_2_27_1
e_1_2_2_46_1
e_1_2_2_69_1
Sethi Divjyot (e_1_2_2_74_1)
Bouajjani Ahmed (e_1_2_2_12_1)
e_1_2_2_82_1
Michael Maged M. (e_1_2_2_65_1) 1995
e_1_2_2_80_1
McKenney Paul E. (e_1_2_2_62_1) 1998
Groves Lindsay (e_1_2_2_40_1) 2008; 77
e_1_2_2_14_1
e_1_2_2_37_1
e_1_2_2_39_1
Holík Lukás (e_1_2_2_47_1)
e_1_2_2_10_1
e_1_2_2_52_1
e_1_2_2_75_1
Abdulla Parosh Aziz (e_1_2_2_3_1)
Alglave Jade (e_1_2_2_5_1)
e_1_2_2_31_1
e_1_2_2_54_1
e_1_2_2_73_1
e_1_2_2_18_1
e_1_2_2_33_1
e_1_2_2_56_1
e_1_2_2_79_1
e_1_2_2_16_1
e_1_2_2_58_1
e_1_2_2_77_1
e_1_2_2_50_1
e_1_2_2_71_1
Fu Ming (e_1_2_2_36_1)
Vardi Moshe Y. (e_1_2_2_81_1)
References_xml – reference: Sebastian Burckhardt, Chris Dern, Madanlal Musuvathi, and Roy Tan. 2010. Line-up: a complete and automatic linearizability checker. In PLDI. ACM, 330–340. 10.1145/1806596.1806634
– reference: Gavin Lowe. 2017. Testing for linearizability. Concurrency and Computation: Practice and Experience 29, 4 (2017).
– reference: Ming Fu, Yong Li, Xinyu Feng, Zhong Shao, and Yu Zhang. 2010. Reasoning about Optimistic Concurrency Using a Program Logic for History. In CONCUR (LNCS), Vol. 6269. Springer, 388–402.
– reference: Joseph Tassarotti, Derek Dreyer, and Viktor Vafeiadis. 2015. Verifying read-copy-update in a logic for weak memory. In PLDI. ACM, 110–120. 10.1145/2737924.2737992
– reference: Trevor Alexander Brown. 2015. Reclaiming Memory for Lock-Free Data Structures: There has to be a Better Way. In PODC. ACM, 261–270. 10.1145/2767386.2767436
– reference: Michael Emmi and Constantin Enea. 2018. Sound, complete, and tractable linearizability monitoring for concurrent collections. PACMPL 2, POPL (2018), 25:1–25:27. 10.1145/3158113
– reference: Gerhard Schellhorn, Heike Wehrheim, and John Derrick. 2012. How to Prove Algorithms Linearisable. In CAV (LNCS), Vol. 7358. Springer, 243–259. 10.1007/978-3-642-31424-7_21
– reference: Michalis Kokologiannakis and Konstantinos Sagonas. 2017. Stateless model checking of the Linux kernel’s hierarchical read-copy-update (tree RCU). In SPIN. ACM, 172–181. 10.1145/3092282.3092287
– reference: Xiaoxiao Yang, Joost-Pieter Katoen, Huimin Lin, and Hao Wu. 2017. Verifying Concurrent Stacks by Divergence-Sensitive Bisimulation. CoRR abs/1701.06104 (2017). http://arxiv.org/abs/1701.06104
– reference: Divjyot Sethi, Muralidhar Talupur, and Sharad Malik. 2013. Model Checking Unbounded Concurrent Lists. In SPIN (LNCS), Vol. 7976. Springer, 320–340.
– reference: Dave Dice, Maurice Herlihy, and Alex Kogan. 2016. Fast non-intrusive memory reclamation for highly-concurrent data structures. In ISMM. ACM, 36–45. 10.1145/2926697.2926699
– reference: Hongjin Liang, Xinyu Feng, and Ming Fu. 2014. Rely-Guarantee-Based Simulation for Compositional Verification of Concurrent Program Transformations. ACM Trans. Program. Lang. Syst. 36, 1 (2014), 3:1–3:55. 10.1145/2576235
– reference: Maged M. Michael. 2002. Safe memory reclamation for dynamic lock-free objects using atomic reads and writes. In PODC. ACM, 21–30. 10.1145/571825.571829
– reference: Oleg Travkin, Annika Mütze, and Heike Wehrheim. 2013. SPIN as a Linearizability Checker under Weak Memory Models. In Haifa Verification Conference (LNCS), Vol. 8244. Springer, 311–326.
– reference: Ilya Sergey, Aleksandar Nanevski, and Anindya Banerjee. 2015a. Mechanized verification of fine-grained concurrent programs. In PLDI. ACM, 77–87. 10.1145/2737924.2737964
– reference: Hongjin Liang and Xinyu Feng. 2013. Modular verification of linearizability with non-fixed linearization points. In PLDI. ACM, 459–470. 10.1145/2491956.2462189
– reference: Martin T. Vechev and Eran Yahav. 2008. Deriving linearizable fine-grained concurrent objects. In PLDI. ACM, 125–135. 10.1145/1375581.1375598
– reference: Artem Khyzha, Mike Dodds, Alexey Gotsman, and Matthew J. Parkinson. 2017. Proving Linearizability Using Partial Orders. In ESOP (LNCS), Vol. 10201. Springer, 639–667. 10.1007/978-3-662-54434-1_24
– reference: Dan Alistarh, William M. Leiserson, Alexander Matveev, and Nir Shavit. 2015. ThreadScan: Automatic and Scalable Memory Reclamation. In SPAA. ACM, 123–132. 10.1145/2755573.2755600
– reference: Robert Colvin, Simon Doherty, and Lindsay Groves. 2005. Verifying Concurrent Data Structures by Simulation. Electr. Notes Theor. Comput. Sci. 137, 2 (2005), 93–110. 10.1016/j.entcs.2005.04.026
– reference: Aleksandar Dragojevic, Maurice Herlihy, Yossi Lev, and Mark Moir. 2011. On the power of hardware transactional memory to simplify memory management. In PODC. ACM, 99–108. 10.1145/1993806.1993821
– reference: Nir Hemed, Noam Rinetzky, and Viktor Vafeiadis. 2015. Modular Verification of Concurrency-Aware Linearizability. In DISC (LNCS), Vol. 9363. Springer, 371–387. 10.1007/978-3-662-48653-5_25
– reference: Parosh Aziz Abdulla, Bengt Jonsson, and Cong Quy Trinh. 2016. Automated Verification of Linearization Policies. In SAS (LNCS), Vol. 9837. Springer, 61–83.
– reference: Tayfun Elmas, Shaz Qadeer, Ali Sezgin, Omer Subasi, and Serdar Tasiran. 2010. Simplifying Linearizability Proofs with Reduction and Abstraction. In TACAS (LNCS), Vol. 6015. Springer, 296–311. 10.1007/978-3-642-12002-2_25
– reference: Roland Meyer and Sebastian Wolff. 2018. Decoupling Lock-Free Data Structures from Memory Reclamation for Static Analysis. CoRR abs/1810.10807 (2018). http://arxiv.org/abs/1810.10807
– reference: Jade Alglave, Daniel Kroening, and Michael Tautschnig. 2013. Partial Orders for Efficient Bounded Model Checking of Concurrent Software. In CAV (LNCS), Vol. 8044. Springer, 141–157.
– reference: Bogdan Tofan, Gerhard Schellhorn, and Wolfgang Reif. 2011. Formal Verification of a Lock-Free Stack with Hazard Pointers. In ICTAC (LNCS), Vol. 6916. Springer, 239–255.
– reference: Paul E. McKenney and John D. Slingwine. 1998. Read-copy Update: Using Execution History to Solve Concurrency Problems.
– reference: Shao Jie Zhang. 2011. Scalable automatic linearizability checking. In ICSE. ACM, 1185–1187. 10.1145/1985793.1986037
– reference: Ahmed Bouajjani, Michael Emmi, Constantin Enea, and Suha Orhun Mutluergil. 2017. Proving Linearizability Using Forward Simulations. In CAV (2) (LNCS), Vol. 10427. Springer, 542–563.
– reference: Lindsay Groves. 2007. Reasoning about Nonblocking Concurrency using Reduction. In ICECCS. IEEE Computer Society, 107–116. 10.1109/ICECCS.2007.39
– reference: Michael Emmi, Constantin Enea, and Jad Hamza. 2015. Monitoring refinement via symbolic reasoning. In PLDI. ACM, 260–269. 10.1145/2737924.2737983
– reference: Yang Liu, Wei Chen, Yanhong A. Liu, Jun Sun, Shao Jie Zhang, and Jin Song Dong. 2013. Verifying Linearizability via Optimized Refinement Checking. IEEE Trans. Software Eng. 39, 7 (2013), 1018–1039. 10.1109/TSE.2012.82
– reference: Daphna Amit, Noam Rinetzky, Thomas W. Reps, Mooly Sagiv, and Eran Yahav. 2007. Comparison Under Abstraction for Verifying Linearizability. In CAV (LNCS), Vol. 4590. Springer, 477–490.
– reference: Maurice Herlihy, Victor Luchangco, Paul A. Martin, and Mark Moir. 2005. Nonblocking memory management support for dynamic-sized data structures. ACM Trans. Comput. Syst. 23, 2 (2005), 146–196. 10.1145/1062247.1062249
– reference: Matthew J. Parkinson, Richard Bornat, and Peter W. O’Hearn. 2007. Modular verification of a non-blocking stack. In POPL. ACM, 297–302. 10.1145/1190216.1190261
– reference: Haosen Wen, Joseph Izraelevitz, Wentao Cai, H. Alan Beadle, and Michael L. Scott. 2018. Interval-based memory reclamation. In PPOPP. ACM, 1–13. 10.1145/3178487.3178488
– reference: Mike Dodds, Andreas Haas, and Christoph M. Kirsch. 2015. A Scalable, Correct Time-Stamped Stack. In POPL. ACM, 233–246. 10.1145/2676726.2676963
– reference: Simon Doherty, Lindsay Groves, Victor Luchangco, and Mark Moir. 2004b. Formal Verification of a Practical Lock-Free Queue Algorithm. In FORTE (LNCS), Vol. 3235. Springer, 97–114.
– reference: Alexey Gotsman, Noam Rinetzky, and Hongseok Yang. 2013. Verifying Concurrent Memory Reclamation Algorithms with Grace. In ESOP (LNCS), Vol. 7792. Springer, 249–269. 10.1007/978-3-642-37036-6_15
– reference: Peter W. O’Hearn, Noam Rinetzky, Martin T. Vechev, Eran Yahav, and Greta Yorsh. 2010. Verifying linearizability with hindsight. In PODC. ACM, 85–94. 10.1145/1835698.1835722
– reference: Keir Fraser. 2004. Practical lock-freedom. Ph.D. Dissertation. University of Cambridge, UK. http://ethos.bl.uk/OrderDetails. do?uin=uk.bl.ethos.599193
– reference: Simon Doherty and Mark Moir. 2009. Nonblocking Algorithms and Backward Simulation. In DISC (LNCS), Vol. 5805. Springer, 274–288.
– reference: Alex Horn and Daniel Kroening. 2015. Faster Linearizability Checking via P-Compositionality. In FORTE (LNCS), Vol. 9039. Springer, 50–65.
– reference: Ilya Sergey, Aleksandar Nanevski, and Anindya Banerjee. 2015b. Specifying and Verifying Concurrent Algorithms with Histories and Subjectivity. In ESOP (LNCS), Vol. 9032. Springer, 333–358. 10.1007/978-3-662-46669-8_14
– reference: Viktor Vafeiadis. 2010b. RGSep Action Inference. In VMCAI (LNCS), Vol. 5944. Springer, 345–361. 10.1007/978-3-642-11319-2_25
– reference: Yang Liu, Wei Chen, Yanhong A. Liu, and Jun Sun. 2009. Model Checking Linearizability via Refinement. In FM (LNCS), Vol. 5850. Springer, 321–337. 10.1007/978-3-642-05089-3_21
– reference: Simon Bäumler, Gerhard Schellhorn, Bogdan Tofan, and Wolfgang Reif. 2011. Proving linearizability with temporal logic. Formal Asp. Comput. 23, 1 (2011), 91–112. 10.1007/s00165-009-0130-y
– reference: Germán Andrés Delbianco, Ilya Sergey, Aleksandar Nanevski, and Anindya Banerjee. 2017. Concurrent Data Structures Linked in Time. In ECOOP (LIPIcs), Vol. 74. Schloss Dagstuhl - Leibniz-Zentrum fuer Informatik, 8:1–8:30.
– reference: Simon Doherty, David Detlefs, Lindsay Groves, Christine H. Flood, Victor Luchangco, Paul Alan Martin, Mark Moir, Nir Shavit, and Guy L. Steele Jr. 2004a. DCAS is not a silver bullet for nonblocking algorithm design. In SPAA. ACM, 216–224. 10.1145/1007912.1007945
– reference: John Derrick, Gerhard Schellhorn, and Heike Wehrheim. 2011. Mechanically verified proof obligations for linearizability. ACM Trans. Program. Lang. Syst. 33, 1 (2011), 4:1–4:43. 10.1145/1889997.1890001
– reference: Thomas A. Henzinger, Ali Sezgin, and Viktor Vafeiadis. 2013. Aspect-Oriented Linearizability Proofs. In CONCUR (LNCS), Vol. 8052. Springer, 242–256. 10.1007/978-3-642-40184-8_18
– reference: R.Kent Treiber. 1986. Systems programming: coping with parallelism. Technical Report RJ 5118. IBM.
– reference: Oana Balmau, Rachid Guerraoui, Maurice Herlihy, and Igor Zablotchi. 2016. Fast and Robust Memory Reclamation for Concurrent Data Structures. In SPAA. ACM, 349–359. 10.1145/2935764.2935790
– reference: Maged M. Michael and Michael L. Scott. 1995. Correction of a Memory Management Method for Lock-Free Data Structures. Technical Report. Rochester, NY, USA.
– reference: Anastasia Braginsky, Alex Kogan, and Erez Petrank. 2013. Drop the anchor: lightweight memory management for nonblocking data structures. In SPAA. ACM, 33–42. 10.1145/2486159.2486184
– reference: Martin T. Vechev, Eran Yahav, and Greta Yorsh. 2009. Experience with Model Checking Linearizability. In SPIN (LNCS), Vol. 5578. Springer, 261–278. 10.1007/978-3-642-02652-2_21
– reference: David Detlefs, Paul Alan Martin, Mark Moir, and Guy L. Steele Jr. 2001. Lock-free reference counting. In PODC. ACM, 190–199. 10.1145/383962.384016
– reference: Lihao Liang, Paul E. McKenney, Daniel Kroening, and Tom Melham. 2018. Verification of tree-based hierarchical read-copy update in the Linux kernel. In DATE. IEEE, 61–66.
– reference: Siddharth Krishna, Dennis E. Shasha, and Thomas Wies. 2018. Go with the flow: compositional abstractions for concurrent data structures. PACMPL 2, POPL (2018), 37:1–37:31. 10.1145/3158125
– reference: Viktor Vafeiadis. 2010a. Automatically Proving Linearizability. In CAV (LNCS), Vol. 6174. Springer, 450–464. 10.1007/978-3-642-14295-6_40
– reference: Anders Gidenstam, Marina Papatriantafilou, Håkan Sundell, and Philippas Tsigas. 2005. Efficient and Reliable Lock-Free Memory Reclamation Based on Reference Counting. In ISPAN. IEEE Computer Society, 202–207. 10.1109/ISPAN.2005.42
– reference: Timothy L. Harris. 2001. A Pragmatic Implementation of Non-blocking Linked-Lists. In DISC (LNCS), Vol. 2180. Springer, 300–314.
– reference: He Zhu, Gustavo Petri, and Suresh Jagannathan. 2015. Poling: SMT Aided Linearizability Proofs. In CAV (2) (LNCS), Vol. 9207. Springer, 3–19.
– reference: Paul E. McKenney. 2004. Exploiting Deferred Destruction: an Analysis of Read-Copy-Update Techniques in Operating System Kernels. Ph.D. Dissertation. Oregon Health & Science University.
– reference: Lukás Holík, Roland Meyer, Tomás Vojnar, and Sebastian Wolff. 2017. Effect Summaries for Thread-Modular Analysis -Sound Analysis Despite an Unsound Heuristic. In SAS (LNCS), Vol. 10422. Springer, 169–191.
– reference: Hongjin Liang, Xinyu Feng, and Ming Fu. 2012. A rely-guarantee-based simulation for verifying concurrent program transformations. In POPL. ACM, 455–468. 10.1145/2103656.2103711
– reference: Parosh Aziz Abdulla, Frédéric Haziza, Lukás Holík, Bengt Jonsson, and Ahmed Rezine. 2017. An Integrated Specification and Verification Technique for Highly Concurrent Data Structures. STTT 19, 5 (2017), 549–563. 10.1007/s10009-016-0415-4
– reference: Nachshon Cohen and Erez Petrank. 2015a. Automatic memory reclamation for lock-free data structures. In OOPSLA. ACM, 260–279. 10.1145/2814270.2814298
– reference: Cliff B. Jones. 1983. Tentative Steps Toward a Development Method for Interfering Programs. ACM Trans. Program. Lang. Syst. 5, 4 (1983), 596–619. 10.1145/69575.69577
– reference: Mathieu Desnoyers, Paul E. McKenney, and Michel R. Dagenais. 2013. Multi-core systems modeling for formal verification of parallel algorithms. Operating Systems Review 47, 2 (2013), 51–65. 10.1145/2506164.2506174
– reference: Albert Mingkun Yang and Tobias Wrigstad. 2017. Type-assisted automatic garbage collection for lock-free data structures. In ISMM. ACM, 14–24. 10.1145/3092255.3092274
– reference: Bengt Jonsson. 2012. Using refinement calculus techniques to prove linearizability. Formal Asp. Comput. 24, 4-6 (2012), 537–554.
– reference: Lindsay Groves. 2008. Verifying Michael and Scott’s Lock-Free Queue Algorithm using Trace Reduction. In CATS (CRPIT), Vol. 77. Australian Computer Society, 133–142. http://crpit.com/abstracts/CRPITV77Groves.html
– reference: Nachshon Cohen and Erez Petrank. 2015b. Efficient Memory Management for Lock-Free Data Structures with Optimistic Access. In SPAA. ACM, 254–263. 10.1145/2755573.2755579
– reference: Pavol Cerný, Arjun Radhakrishna, Damien Zufferey, Swarat Chaudhuri, and Rajeev Alur. 2010. Model Checking of Linearizability of Concurrent List Implementations. In CAV (LNCS), Vol. 6174. Springer, 465–479. 10.1007/978-3-642-14295-6_41
– reference: Josh Berdine, Tal Lev-Ami, Roman Manevich, G. Ramalingam, and Shmuel Sagiv. 2008. Thread Quantification for Concurrent Shape Analysis. In CAV (LNCS), Vol. 5123. Springer, 399–413. 10.1007/978-3-540-70545-1_37
– reference: Maurice Herlihy and Jeannette M. Wing. 1990. Linearizability: A Correctness Condition for Concurrent Objects. ACM Trans. Program. Lang. Syst. 12, 3 (1990), 463–492. 10.1145/78969.78972
– reference: Parosh Aziz Abdulla, Frédéric Haziza, Lukás Holík, Bengt Jonsson, and Ahmed Rezine. 2013. An Integrated Specification and Verification Technique for Highly Concurrent Data Structures. In TACAS (LNCS), Vol. 7795. Springer, 324–338.
– reference: Frédéric Haziza, Lukás Holík, Roland Meyer, and Sebastian Wolff. 2016. Pointer Race Freedom. In VMCAI (LNCS), Vol. 9583. Springer, 393–412. 10.1007/978-3-662-49122-5_19
– reference: Moshe Y. Vardi. 1987. Verification of Concurrent Programs: The Automata-Theoretic Framework. In LICS. IEEE Computer Society, 167–176.
– reference: Pedro Ramalhete and Andreia Correia. 2017. Brief Announcement: Hazard Eras - Non-Blocking Memory Reclamation. In SPAA. ACM, 367–369. 10.1145/3087556.3087588
– reference: Robert Colvin, Lindsay Groves, Victor Luchangco, and Mark Moir. 2006. Formal Verification of a Lazy Concurrent List-Based Set Algorithm. In CAV (LNCS), Vol. 4144. Springer, 475–488. 10.1007/11817963_44
– reference: Michal Segalov, Tal Lev-Ami, Roman Manevich, Ganesan Ramalingam, and Mooly Sagiv. 2009. Abstract Transformers for Thread Correlation Analysis. In APLAS (LNCS), Vol. 5904. Springer, 30–46. 10.1007/978-3-642-10672-9_5
– reference: Zahra Aghazadeh, Wojciech M. Golab, and Philipp Woelfel. 2014. Making objects writable. In PODC. ACM, 385–395. 10.1145/2611462.2611483
– reference: Brijesh Dongol and John Derrick. 2014. Verifying linearizability: A comparative survey. CoRR abs/1410.6268 (2014). http://arxiv.org/abs/1410.6268
– reference: Maged M. Michael and Michael L. Scott. 1996. Simple, Fast, and Practical Non-Blocking and Blocking Concurrent Queue Algorithms. In PODC. ACM, 267–275. 10.1145/248052.248106
– reference: Dan Alistarh, Patrick Eugster, Maurice Herlihy, Alexander Matveev, and Nir Shavit. 2014. StackTrack: an automated transactional approach to concurrent memory reclamation. In EuroSys. ACM, 25:1–25:14. 10.1145/2592798.2592808
– volume-title: DISC (LNCS)
  ident: e_1_2_2_29_1
– ident: e_1_2_2_84_1
  doi: 10.1145/3178487.3178488
– volume-title: CAV (LNCS)
  ident: e_1_2_2_5_1
– ident: e_1_2_2_39_1
  doi: 10.1109/ICECCS.2007.39
– ident: e_1_2_2_46_1
  doi: 10.1145/78969.78972
– ident: e_1_2_2_24_1
  doi: 10.1145/383962.384016
– ident: e_1_2_2_51_1
  doi: 10.1007/978-3-662-54434-1_24
– ident: e_1_2_2_85_1
  doi: 10.1145/3092255.3092274
– ident: e_1_2_2_16_1
  doi: 10.1007/978-3-642-14295-6_41
– volume-title: Verifying linearizability: A comparative survey. CoRR abs/1410.6268
  year: 2014
  ident: e_1_2_2_30_1
– ident: e_1_2_2_19_1
  doi: 10.1016/j.entcs.2005.04.026
– ident: e_1_2_2_64_1
  doi: 10.1145/571825.571829
– volume-title: Verification of Concurrent Programs: The Automata-Theoretic Framework
  ident: e_1_2_2_81_1
– volume-title: Verifying Concurrent Stacks by Divergence-Sensitive Bisimulation. CoRR abs/1701.06104
  year: 2017
  ident: e_1_2_2_86_1
– volume-title: Scott
  year: 1995
  ident: e_1_2_2_65_1
– ident: e_1_2_2_82_1
  doi: 10.1145/1375581.1375598
– ident: e_1_2_2_34_1
  doi: 10.1145/2737924.2737983
– ident: e_1_2_2_77_1
  doi: 10.1007/978-3-319-03077-7_21
– ident: e_1_2_2_72_1
  doi: 10.1145/2737924.2737964
– ident: e_1_2_2_80_1
  doi: 10.1007/978-3-642-11319-2_25
– ident: e_1_2_2_42_1
  doi: 10.1007/978-3-662-49122-5_19
– ident: e_1_2_2_13_1
  doi: 10.1145/2486159.2486184
– volume: 74
  volume-title: ECOOP (LIPIcs)
  year: 2017
  ident: e_1_2_2_21_1
– ident: e_1_2_2_79_1
  doi: 10.1007/978-3-642-14295-6_40
– ident: e_1_2_2_11_1
  doi: 10.1007/978-3-540-70545-1_37
– volume-title: CAV (2) (LNCS)
  ident: e_1_2_2_12_1
– ident: e_1_2_2_67_1
  doi: 10.1145/1835698.1835722
– ident: e_1_2_2_53_1
  doi: 10.1145/3158125
– ident: e_1_2_2_75_1
  doi: 10.1145/2737924.2737992
– ident: e_1_2_2_7_1
  doi: 10.1145/2755573.2755600
– ident: e_1_2_2_15_1
  doi: 10.1145/1806596.1806634
– ident: e_1_2_2_52_1
  doi: 10.1145/3092282.3092287
– volume-title: SPIN (LNCS)
  ident: e_1_2_2_74_1
– volume-title: CONCUR (LNCS)
  ident: e_1_2_2_36_1
– ident: e_1_2_2_20_1
  doi: 10.1007/11817963_44
– ident: e_1_2_2_26_1
  doi: 10.1145/2676726.2676963
– ident: e_1_2_2_70_1
  doi: 10.1007/978-3-642-31424-7_21
– volume-title: Testing for linearizability. Concurrency and Computation: Practice and Experience 29, 4
  year: 2017
  ident: e_1_2_2_60_1
– ident: e_1_2_2_83_1
  doi: 10.1007/978-3-642-02652-2_21
– ident: e_1_2_2_50_1
  doi: 10.1007/s00165-012-0250-7
– volume-title: FORTE (LNCS)
  ident: e_1_2_2_28_1
– ident: e_1_2_2_37_1
  doi: 10.1109/ISPAN.2005.42
– volume-title: DISC (LNCS)
  ident: e_1_2_2_41_1
– ident: e_1_2_2_33_1
  doi: 10.1145/3158113
– ident: e_1_2_2_66_1
  doi: 10.1145/248052.248106
– volume-title: TACAS (LNCS)
  ident: e_1_2_2_1_1
– ident: e_1_2_2_25_1
  doi: 10.1145/2926697.2926699
– ident: e_1_2_2_44_1
  doi: 10.1007/978-3-642-40184-8_18
– ident: e_1_2_2_2_1
  doi: 10.1007/s10009-016-0415-4
– volume-title: Poling: SMT Aided Linearizability Proofs. In CAV (2) (LNCS)
  year: 2015
  ident: e_1_2_2_88_1
– ident: e_1_2_2_43_1
  doi: 10.1007/978-3-662-48653-5_25
– ident: e_1_2_2_68_1
  doi: 10.1145/1190216.1190261
– ident: e_1_2_2_73_1
  doi: 10.1007/978-3-662-46669-8_14
– volume-title: Slingwine
  year: 1998
  ident: e_1_2_2_62_1
– ident: e_1_2_2_55_1
  doi: 10.1145/2103656.2103711
– ident: e_1_2_2_27_1
  doi: 10.1145/1007912.1007945
– ident: e_1_2_2_4_1
  doi: 10.1145/2611462.2611483
– volume-title: Decoupling Lock-Free Data Structures from Memory Reclamation for Static Analysis. CoRR abs/1810.10807
  year: 2018
  ident: e_1_2_2_63_1
– ident: e_1_2_2_32_1
  doi: 10.1007/978-3-642-12002-2_25
– ident: e_1_2_2_58_1
  doi: 10.1007/978-3-642-05089-3_21
– ident: e_1_2_2_6_1
  doi: 10.1145/2592798.2592808
– volume-title: SAS (LNCS)
  ident: e_1_2_2_47_1
– ident: e_1_2_2_54_1
  doi: 10.1145/2491956.2462189
– ident: e_1_2_2_71_1
  doi: 10.1007/978-3-642-10672-9_5
– ident: e_1_2_2_18_1
  doi: 10.1145/2755573.2755579
– ident: e_1_2_2_14_1
  doi: 10.1145/2767386.2767436
– ident: e_1_2_2_10_1
  doi: 10.1007/s00165-009-0130-y
– ident: e_1_2_2_38_1
  doi: 10.1007/978-3-642-37036-6_15
– ident: e_1_2_2_31_1
  doi: 10.1145/1993806.1993821
– volume-title: SAS (LNCS)
  ident: e_1_2_2_3_1
– volume: 77
  volume-title: CATS (CRPIT)
  year: 2008
  ident: e_1_2_2_40_1
– ident: e_1_2_2_22_1
  doi: 10.1145/1889997.1890001
– ident: e_1_2_2_56_1
  doi: 10.1145/2576235
– ident: e_1_2_2_49_1
  doi: 10.1145/69575.69577
– volume-title: ICTAC (LNCS)
  ident: e_1_2_2_76_1
– ident: e_1_2_2_9_1
  doi: 10.1145/2935764.2935790
– volume-title: CAV (LNCS)
  ident: e_1_2_2_8_1
– ident: e_1_2_2_45_1
  doi: 10.1145/1062247.1062249
– ident: e_1_2_2_23_1
  doi: 10.1145/2506164.2506174
– volume-title: FORTE (LNCS)
  ident: e_1_2_2_48_1
– ident: e_1_2_2_69_1
  doi: 10.1145/3087556.3087588
– ident: e_1_2_2_59_1
  doi: 10.1109/TSE.2012.82
– volume-title: Verification of tree-based hierarchical read-copy update in the Linux kernel
  ident: e_1_2_2_57_1
– ident: e_1_2_2_17_1
  doi: 10.1145/2814270.2814298
– ident: e_1_2_2_87_1
  doi: 10.1145/1985793.1986037
SSID ssj0001934839
Score 2.1646316
Snippet Verification of concurrent data structures is one of the most challenging tasks in software verification. The topic has received considerable attention over...
SourceID crossref
acm
SourceType Enrichment Source
Index Database
Publisher
StartPage 1
SubjectTerms Data structures design and analysis
Design and analysis of algorithms
Parallel algorithms
Program analysis
Program reasoning
Program specifications
Program verification
Semantics and reasoning
Shared memory algorithms
Theory of computation
SubjectTermsDisplay Theory of computation -- Design and analysis of algorithms -- Data structures design and analysis
Theory of computation -- Design and analysis of algorithms -- Parallel algorithms -- Shared memory algorithms
Theory of computation -- Semantics and reasoning -- Program reasoning -- Program analysis
Theory of computation -- Semantics and reasoning -- Program reasoning -- Program specifications
Theory of computation -- Semantics and reasoning -- Program reasoning -- Program verification
Title Decoupling lock-free data structures from memory reclamation for static analysis
URI https://dl.acm.org/doi/10.1145/3290371
Volume 3
WOSCitedRecordID wos000678450300058&url=https%3A%2F%2Fcvtisr.summon.serialssolutions.com%2F%23%21%2Fsearch%3Fho%3Df%26include.ft.matches%3Dt%26l%3Dnull%26q%3D
hasFullText 1
inHoldings 1
isFullTextHit
isPrint
journalDatabaseRights – providerCode: PRVHPJ
  databaseName: ROAD: Directory of Open Access Scholarly Resources
  customDbUrl:
  eissn: 2475-1421
  dateEnd: 99991231
  omitProxy: false
  ssIdentifier: ssj0001934839
  issn: 2475-1421
  databaseCode: M~E
  dateStart: 20170101
  isFulltext: true
  titleUrlDefault: https://road.issn.org
  providerName: ISSN International Centre
link http://cvtisr.summon.serialssolutions.com/2.0.0/link/0/eLvHCXMwtV3Nb9MwFLfGtgMXYBuI8iUfEJcqkNhO7RynAeKwbpEY0m5V6jxLiDWrtg5tl_3tey92EqsgwQ67RJVlp61_P70P-30w9t6SYoHMJamp0UEBq5KKLhwrWVmLmBtdt3VmD_XRkTk9LcpwlH3ZthPQTWOur4vlg0KNYwg2pc7eA-7-pTiAnxF0fCLs-Pwv4D-jQ3m1bLPMUVH9StwFwJgCQce-VuwVOtg-q2RBUbY3Y5R5SIsh6JByjNoqrr5cSWy-lr26ayNA9g-mdNkQYrwW7VeG88_eVJ_CTWivfB66hYRQ4DNfD_I7oCJddSQN5w-U8pQlaXQkKZTOk0z5POeP8JexIGdlRKfyuDyMxGYW6V-vFP6U7IqKYEhRUI3BQXl1F_ZrOq2PNPR51_ksLHzEtoTOCxJ_09voMK6QyrRd5_pf7hOsae2nsJbsF7uI7JfIEDl5xp4ED4Lve-R32AY0u-xp152DB2G9x8qBCLwnAici8IEInIjAPRF4RASOROCeCLwjwnP24-uXk4NvSeifkVRC61Vi6onJxaQSAHMFqQZZuxTQQaYWBhrAZWKu68pWNq_xb1sHygqyGLXTUkIqX7DN5ryBl4zP64mT2qS1KuYKVxnrKF2v0jp3Qjo5Yru4N7Olr5DS7faIfej2amZDyXnqfHI2W4NlxHg_sXvH2pRX_57ymj0eCPqGbeJewlu2bX-vfl5evGsRvwMCpnCz
linkProvider ISSN International Centre
openUrl ctx_ver=Z39.88-2004&ctx_enc=info%3Aofi%2Fenc%3AUTF-8&rfr_id=info%3Asid%2Fsummon.serialssolutions.com&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=article&rft.atitle=Decoupling+lock-free+data+structures+from+memory+reclamation+for+static+analysis&rft.jtitle=Proceedings+of+ACM+on+programming+languages&rft.au=Meyer%2C+Roland&rft.au=Wolff%2C+Sebastian&rft.date=2019-01-02&rft.issn=2475-1421&rft.eissn=2475-1421&rft.volume=3&rft.issue=POPL&rft.spage=1&rft.epage=31&rft_id=info:doi/10.1145%2F3290371&rft.externalDBID=n%2Fa&rft.externalDocID=10_1145_3290371
thumbnail_l http://covers-cdn.summon.serialssolutions.com/index.aspx?isbn=/lc.gif&issn=2475-1421&client=summon
thumbnail_m http://covers-cdn.summon.serialssolutions.com/index.aspx?isbn=/mc.gif&issn=2475-1421&client=summon
thumbnail_s http://covers-cdn.summon.serialssolutions.com/index.aspx?isbn=/sc.gif&issn=2475-1421&client=summon