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 条
  • [31] A Formal Framework for Specifying and Verifying Microservices Based Process Flows
    Camilli, Matteo
    Bellettini, Carlo
    Capra, Lorenzo
    Monga, Mattia
    SOFTWARE ENGINEERING AND FORMAL METHODS, SEFM 2017, 2018, 10729 : 187 - 202
  • [32] Axioms and Abstract Predicates on Interfaces in Specifying/Verifying OO Components
    Hong, Ali
    Liu, Yijing
    Qiu, Zongyan
    FORMAL ASPECTS OF COMPONENT SOFTWARE, 2014, 8348 : 174 - 195
  • [33] A TOOL ENVIRONMENT FOR SPECIFYING AND VERIFYING MULTI-AGENT SYSTEMS
    Schwarz, Christian
    Mohammed, Ammar
    Stolzenburg, Frieder
    ICAART 2010: PROCEEDINGS OF THE 2ND INTERNATIONAL CONFERENCE ON AGENTS AND ARTIFICIAL INTELLIGENCE, VOL 2: AGENTS, 2010, : 323 - 326
  • [34] Specifying and verifying usage control models and policies in TLA+
    Grompanopoulos, Christos
    Gouglidis, Antonios
    Mavridou, Anastasia
    INTERNATIONAL JOURNAL ON SOFTWARE TOOLS FOR TECHNOLOGY TRANSFER, 2021, 23 (05) : 685 - 700
  • [35] Formally Modeling and verifying Ricart&Agrawala distributed mutual exclusion algorithm
    Ogata, K
    Futatsugi, K
    SECOND ASIA-PACIFIC CONFERENCE ON QUALITY SOFTWARE, PROCEEDINGS, 2001, : 357 - 366
  • [36] Specifying and Verifying Real-Time Self-Adaptive Systems
    Camilli, Matteo
    Gargantini, Angelo
    Scandurra, Patrizia
    2015 IEEE 26TH INTERNATIONAL SYMPOSIUM ON SOFTWARE RELIABILITY ENGINEERING (ISSRE), 2015, : 303 - 313
  • [37] From C to Interaction Trees Specifying, Verifying, and Testing a Networked Server
    Koh, Nicolas
    Li, Yao
    Li, Yishuai
    Xia, Li-yao
    Beringer, Lennart
    Honore, Wolf
    Mansky, William
    Pierce, Benjamin C.
    Zdancewic, Steve
    PROCEEDINGS OF THE 8TH ACM SIGPLAN INTERNATIONAL CONFERENCE ON CERTIFIED PROGRAMS AND PROOFS (CPP' 19), 2019, : 234 - 248
  • [38] A survey on temporal logics for specifying and verifying real-time systems
    Konur, Savas
    FRONTIERS OF COMPUTER SCIENCE, 2013, 7 (03) : 370 - 403
  • [39] A general language-based framework for specifying and verifying notions of opacity
    Andrew Wintenberg
    Matthew Blischke
    Stéphane Lafortune
    Necmiye Ozay
    Discrete Event Dynamic Systems, 2022, 32 : 253 - 289
  • [40] A general language-based framework for specifying and verifying notions of opacity
    Wintenberg, Andrew
    Blischke, Matthew
    Lafortune, Stephane
    Ozay, Necmiye
    DISCRETE EVENT DYNAMIC SYSTEMS-THEORY AND APPLICATIONS, 2022, 32 (02): : 253 - 289