Towards formally specifying and verifying transactional memory

被引:37
|
作者
Doherty, Simon [1 ]
Groves, Lindsay [1 ]
Luchangco, Victor [2 ]
Moir, Mark [2 ]
机构
[1] Victoria Univ Wellington, Sch Engn & Comp Sci, Wellington, New Zealand
[2] Oracle Labs, Burlington, MA USA
关键词
Transactional memory; Formal specification; Verification; I/O automation; Simulation proof; Refinement; MODEL; VERIFICATION;
D O I
10.1007/s00165-012-0225-8
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
Over the last decade, great progress has been made in developing practical transactional memory (TM) implementations, but relatively little attention has been paid to precisely specifying what it means for them to be correct, or formally proving that they are. In this paper, we present TMS1 (Transactional Memory Specification 1), a precise specification of correct behaviour of a TM runtime library. TMS1 targets TM runtimes used to implement transactional features in an unmanaged programming language such as C or C++. In such contexts, even transactions that ultimately abort must observe consistent states of memory; otherwise, unrecoverable errors such as divide-by-zero may occur before a transaction aborts, even in a correct program in which the error would not be possible if transactions were executed atomically. We specify TMS1 precisely using an I/O automaton (IOA). This approach enables us to also model TM implementations using IOAs and to construct fully formal and machine-checked correctness proofs for them using well established proof techniques and tools. We outline key requirements for a TM system. To avoid precluding any implementation that satisfies these requirements, we specify TMS1 to be as general as we can, consistent with these requirements. The cost of such generality is that the condition does not map closely to intuition about common TM implementation techniques, and thus it is difficult to prove that such implementations satisfy the condition. To address this concern, we present TMS2, a more restrictive condition that more closely reflects intuition about common TM implementation techniques. We present a simulation proof that TMS2 implements TMS1, thus showing that to prove that an implementation satisfies TMS1, it suffices to prove that it satisfies TMS2. We have formalised and verified this proof using the PVS specification and verification system.
引用
收藏
页码:769 / 799
页数:31
相关论文
共 50 条
  • [41] Formally Specifying Requirements with RSL-IL
    Ferreira, David de Almeida
    da Silva, Alberto Rodrigues
    2012 EIGHTH INTERNATIONAL CONFERENCE ON THE QUALITY OF INFORMATION AND COMMUNICATIONS TECHNOLOGY (QUATIC 2012), 2012, : 217 - 220
  • [42] Formally Verifying Proofs for Algebraic Identities of Matrices
    Schmitz, Leonard
    Levandovskyy, Viktor
    INTELLIGENT COMPUTER MATHEMATICS, CICM 2020, 2020, 12236 : 222 - 236
  • [43] Formally verifying fault tolerant system designs
    Bernardeschi, Cinzia
    Fantechi, Alessandro
    Simoncini, Luca
    1600, Oxford Univ Press, Oxford, United Kingdom (43):
  • [44] VERLANGEN: FORMALLY VERIFYING SYSTEM DESIGNS.
    Britton, Dianne E.
    RCA engineer, 1986, 31 (01): : 56 - 60
  • [45] A Compositional Framework for Formally Verifying Modular Systems
    Furia, Carlo A.
    Rossi, Matteo
    ELECTRONIC NOTES IN THEORETICAL COMPUTER SCIENCE, 2005, 116 : 185 - 198
  • [46] 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
  • [47] 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
  • [48] 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
  • [49] 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
  • [50] A NOTE ON SPECIFYING AND VERIFYING CONCURRENT PROCESSES
    HOLENDERSKI, L
    INFORMATION PROCESSING LETTERS, 1984, 18 (02) : 77 - 85