Specifying and Verifying Persistent Libraries

被引:0
|
作者
Stefanesco, Leo [1 ]
Raad, Azalea [2 ]
Vafeiadis, Viktor [1 ]
机构
[1] MPI SWS, Kaiserslautern, Germany
[2] Imperial Coll, London, England
基金
欧洲研究理事会; 英国工程与自然科学研究理事会;
关键词
D O I
10.1007/978-3-031-57267-8_8
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
We present a general framework for specifying and verifying persistent libraries, that is, libraries of data structures that provide some persistency guarantees upon a failure of the machine they are executing on. Our framework enables modular reasoning about the correctness of individual libraries (horizontal and vertical compositionality) and is general enough to encompass all existing persistent library specifications ranging from hardware architectural specifications to correctness conditions such as durable linearizability. As case studies, we specify the FliT and Mirror libraries, verify their implementations over Px86, and use them to build higher-level durably linearizable libraries, all within our framework. We also specify and verify a persistent transaction library that highlights some of the technical challenges which are specific to persistent memory compared to weak memory and how they are handled by our framework.
引用
收藏
页码:185 / 211
页数:27
相关论文
共 50 条
  • [1] Tutorial: Specifying, Implementing, and Verifying Algorithms for Persistent Memory
    Cepeda, Diego
    Chowdhury, Sakib
    Golab, Wojciech
    PROCEEDINGS OF THE 2019 ACM SYMPOSIUM ON PRINCIPLES OF DISTRIBUTED COMPUTING (PODC '19), 2019, : 549 - 549
  • [2] Specifying and verifying web transactions
    Li, Jing
    Zhu, Huibiao
    He, Jifeng
    FORMAL TECHNIQUES FOR NETWORKED AND DISTRIBUTED SYSTEMS - FORTE 2008, 2008, 5048 : 149 - 168
  • [3] Specifying and verifying programs in Spec
    Rustan, K.
    Leino, M.
    PERSPECTIVES OF SYSTEMS INFORMATICS, 2007, 4378 : 20 - 20
  • [4] Specifying and verifying parametric processes
    Pawlowski, W
    Paczkowski, P
    Sokolowski, S
    MATHEMATICAL FOUNDATIONS OF COMPUTER SCIENCE 1996, 1996, 1113 : 469 - 481
  • [5] A perspective on specifying and verifying concurrent modules
    Dinsdale-Young, Thomas
    Pinto, Pedro da Rocha
    Gardner, Philippa
    JOURNAL OF LOGICAL AND ALGEBRAIC METHODS IN PROGRAMMING, 2018, 98 : 1 - 25
  • [6] Specifying and Verifying Advanced Control Features
    Leavens, Gary T.
    Naumann, David
    Rajan, Hridesh
    Aotani, Tomoyuki
    LEVERAGING APPLICATIONS OF FORMAL METHODS, VERIFICATION AND VALIDATION: DISCUSSION, DISSEMINATION, APPLICATIONS, ISOLA 2016, PT II, 2016, 9953 : 80 - 96
  • [7] Specifying Languages and Verifying Programs with K
    Rosu, Grigore
    2013 15TH INTERNATIONAL SYMPOSIUM ON SYMBOLIC AND NUMERIC ALGORITHMS FOR SCIENTIFIC COMPUTING (SYNASC 2013), 2014, : 28 - 31
  • [8] Specifying and verifying visual grasping tasks
    Shkel, E
    Ferrier, NJ
    1997 IEEE INTERNATIONAL CONFERENCE ON ROBOTICS AND AUTOMATION - PROCEEDINGS, VOLS 1-4, 1997, : 688 - 694
  • [9] A NOTE ON SPECIFYING AND VERIFYING CONCURRENT PROCESSES
    HOLENDERSKI, L
    INFORMATION PROCESSING LETTERS, 1984, 18 (02) : 77 - 85
  • [10] Specifying and Verifying Sparse Matrix Codes
    Arnold, Gilad
    Hoelzl, Johannes
    Koeksal, Ali Sinan
    Bodik, Rastislav
    Sagiv, Mooly
    ICFP 2010: PROCEEDINGS OF THE 2010 ACM SIGPLAN INTERNATIONAL CONFERENCE ON FUNCTIONAL PROGRAMMING, 2010, : 249 - 260