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...
Saved in:
| Published in: | Proceedings of ACM on programming languages Vol. 3; no. POPL; pp. 1 - 31 |
|---|---|
| Main Authors: | , |
| Format: | Journal Article |
| Language: | English |
| Published: |
New York, NY, USA
ACM
02.01.2019
|
| Subjects: | |
| ISSN: | 2475-1421, 2475-1421 |
| Online Access: | Get full text |
| Tags: |
Add Tag
No Tags, Be the first to tag this record!
|
| 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/eLvHCXMwtV1Lb9QwELagcOBSSgvqAq18QFxWgcSx186xKq166JZIlKq3VeJMJNRuumq3qL3w25mJncRakKCHXqLIsvOY-TIznsyDsQ-6KFCrGhkVGr8mmdQiKjKFn7tVpTbSmrLNrTo71icn5vw8y70r-6ZtJ6CbxtzdZYtHZTWOIbMpdfYB7O4vigN4jkzHI7Idj__F-C-4obxdtFnmqKguovoaYEyBoGNXK_YWN9guq2ROUbb3Y5R5CIsh6JByjNoqrq5cSWi-5r26ayNA9van9LPBx3jN21t6_2dvqk_h3rdXvvLdQnwo8KWrB_kNUJEuO5B6_wOlPCVRHLgkhdQqSqTLc_4EfxnzcjYN4JR_zY8DsZkE-tcphT8lu6QiGKnIqMbgoLy6H_YrOq2PNHR512rmFz5lz4RWGYm_6a_AGZel0rRd5_ondwnWtPazX0v2i50H9ktgiJxusHW_g-B7jvOv2BNoNtnLrjsH98J6i-UDEHgPBE5A4AMQOAGBOyDwAAgcgcAdEHgHhNfs--HB6f5R5PtnRIXQehmZamKUmBQCoJQQa0irOgbcIFMLAw1QJ6LUVWELqyp8bVuDtIIsRl3rNIU4fcPWmqsGthnXZRXbSWxLZYlCpVG1lDFQNf8sscKM2CbSZrZwFVI6ao_Yx45WM-tLzlPnk8vZCltGjPcTu2usTHn77ynv2IsBoO_ZGtISdthz-3P54-Z6t-X4b66Rb_Q |
| 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 |