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 条
  • [1] Towards Formally Specifying and Verifying Transactional Memory
    Doherty, Simon
    Groves, Lindsay
    Luchangco, Victor
    Moir, Mark
    ELECTRONIC NOTES IN THEORETICAL COMPUTER SCIENCE, 2009, 259 : 245 - 261
  • [2] A Framework for Formally Verifying Software Transactional Memory Algorithms
    Lesani, Mohsen
    Luchangco, Victor
    Moir, Mark
    CONCUR 2012 - CONCURRENCY THEORY, 2012, 7454 : 516 - 530
  • [3] Formally specifying and verifying real-time systems
    Kemmerer, RA
    Kolano, PZ
    FIRST IEEE INTERNATIONAL CONFERENCE ON FORMAL ENGINEERING METHODS, PROCEEDINGS, 1997, : 112 - 120
  • [4] The SCR method for formally specifying, verifying, and validating requirements: Tool support
    Heitmeyer, C
    Kirby, J
    Labaw, B
    PROCEEDINGS OF THE 1997 INTERNATIONAL CONFERENCE ON SOFTWARE ENGINEERING, 1997, : 610 - 611
  • [5] Formally specifying and mechanically verifying programs for the Motorola complex arithmetic processor DSP
    Brock, BC
    Hunt, WA
    INTERNATIONAL CONFERENCE ON COMPUTER DESIGN - VLSI IN COMPUTERS AND PROCESSORS, PROCEEDINGS, 1997, : 31 - 36
  • [6] Formally specifying and verifying mobile agents - Model checking mobility: The MobiOZ approach
    Information Systems Architecture Research Division, Grace Center National Institute of Informatics, 2-1-2 Hitotsubashi, Chiyoda-ku, Tokyo 101 8430, Japan
    不详
    International Journal of Agent-Oriented Software Engineering, 2008, 2 (04) : 449 - 474
  • [7] Formally Verifying Memory Isolation Based on ARM Processors
    Zhu, Jiabin
    Huang, Wenchao
    Xiong, Yan
    2018 4TH INTERNATIONAL CONFERENCE ON BIG DATA COMPUTING AND COMMUNICATIONS (BIGCOM 2018), 2018, : 195 - 200
  • [8] 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
  • [9] Verifying Safety and Liveness for the FlexTM Hybrid Transactional Memory
    Abdulla, Parosh
    Dwarkadas, Sandhya
    Rezine, Ahmed
    Shriraman, Arrvindh
    Zhu, Yunyun
    DESIGN, AUTOMATION & TEST IN EUROPE, 2013, : 785 - 790
  • [10] Formally verifying the distributed shared memory weak consistency models
    Chennareddy, Venkateswarlu
    Deka, Jatindra Kumar
    2006 INTERNATIONAL CONFERENCE ON ADVANCED COMPUTING AND COMMUNICATIONS, VOLS 1 AND 2, 2007, : 443 - +