Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
10.5555/1884866.1884873guideproceedingsArticle/Chapter ViewAbstractPublication PagesConference Proceedingsacm-pubtype
Article

A rely-guarantee proof system for x86-TSO

Published: 16 August 2010 Publication History
  • Get Citation Alerts
  • Abstract

    Current multiprocessors provide weak or relaxed memory models. Existing program logics assume sequential consistency, and are therefore typically unsound for weak memory. We introduce a novel Rely-Guarantee style proof system for reasoning about x86 assembly programs running against the weak x86-TSO memory model. Interesting features of the logic include processor assertions which can refer to the local state of other processors (including their program counters), and a syntactic operation of closing an assertion under write buffer interference. We use the expressivity of the proof system to construct a new correctness proof for an x86-TSO version of Simpson's four slot algorithm. Mechanization in the Hol theorem prover provides a flexible tool to support semi-automated verification.

    References

    [1]
    Blazy, S., Leroy, X.: Mechanized semantics for the Clight subset of the C language. CoRR, abs/0901.3619 (2009).
    [2]
    Clint, M., Hoare, C.A.R.: Program proving: Jumps and functions. Acta Informatica 1, 214-224 (1972).
    [3]
    Coleman, J.W.: Expression decomposition in a Rely/Guarantee context. In: Shankar, N., Woodcock, J. (eds.) VSTTE 2008. LNCS, vol. 5295, pp. 146- 160. Springer, Heidelberg (2008).
    [4]
    Cohen, E., Schirmer, N.: A better reduction theorem for store buffers. Technical report (2009).
    [5]
    Floyd, R.W.: Assigning meanings to programs. In: Proc. American Mathematical Society Symposia in Applied Mathematics, vol. 19 (1967).
    [6]
    Henderson, N.: Proving the correctness of Simpson's 4-slot ACM using an assertional Rely-Guarantee proof method. In: Araki, K., Gnesi, S., Mandrioli, D. (eds.) FME 2003. LNCS, vol. 2805, pp. 244-263. Springer, Heidelberg (2003).
    [7]
    Hoare: An axiomatic basis for computer programming. CACM: Communications of the ACM 12 (1969).
    [8]
    Jones, C.B.: Development Methods for Computer Programmes Including a Notion of Interference. PhD thesis, Prgr. Res. Grp. 25, Oxford Univ., Comp. Lab., UK (June 1981).
    [9]
    Linux Kernel mailing list, thread "spin_unlock optimization(i386)", 119 messages (November 20 - December 7, 1999), http://www.gossamer-threads. com/lists/engine?post=105365;list=linux (Accessed 2009/11/18).
    [10]
    Myreen, M.O., Slind, K., Gordon, M.J.C.: Machine-code verification for multiple architectures: An application of decompilation into logic. In: Proc. FMCAD (2008).
    [11]
    Owens, S., Sarkar, S., Sewell, P.: A better x86 memory model: x86-TSO. In: Urban, C. (ed.) TPHOLs 2009. LNCS, vol. 5674, pp. 391-407. Springer, Heidelberg (2009).
    [12]
    Owens, S.: Reasoning about the implementation of concurrency abstractions on x86-TSO. In: D'Hondt, T. (ed.) ECOOP 2010. LNCS, vol. 6183, pp. 478- 503. Springer, Heidelberg (2010).
    [13]
    Park, Dill: An executable specification, analyzer and verifier for RMO (relaxed memory order). In: SPAA: Annual ACM Symposium on Parallel Algorithms and Architectures (1995).
    [14]
    Ridge, T.: Operational reasoning for concurrent Caml programs and weak memory models. In: Schneider, K., Brandt, J. (eds.) TPHOLs 2007. LNCS, vol. 4732, pp. 278-293. Springer, Heidelberg (2007).
    [15]
    Rushby, J.: Model checking Simpson's four-slot fully asynchronous communication mechanism (2002).
    [16]
    Simpson, H.R.: Four-slot fully asynchronous communication mechanism. IEE Proceedings, Computers and Digital Techniques 137(1), 17-30 (1990).

    Cited By

    View all
    • (2019)On library correctness under weak memory consistency: specifying and verifying concurrent libraries under declarative consistency modelsProceedings of the ACM on Programming Languages10.1145/32903813:POPL(1-31)Online publication date: 2-Jan-2019
    • (2016)Taming release-acquire consistencyACM SIGPLAN Notices10.1145/2914770.283764351:1(649-662)Online publication date: 11-Jan-2016
    • (2016)Taming release-acquire consistencyProceedings of the 43rd Annual ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages10.1145/2837614.2837643(649-662)Online publication date: 11-Jan-2016
    • Show More Cited By

    Recommendations

    Comments

    Information & Contributors

    Information

    Published In

    cover image Guide Proceedings
    VSTTE'10: Proceedings of the Third international conference on Verified software: theories, tools, experiments
    August 2010
    216 pages
    ISBN:364215056X
    • Editors:
    • Gary T. Leavens,
    • Peter O'Hearn,
    • Sriram K. Rajamani

    Sponsors

    • EPSRC: Engineering and Physical Sciences Research Council
    • NSF: National Science Foundation
    • Altran Praxis
    • Microsoft Research: Microsoft Research
    • SICSA: The Scottish Informatics and Computer Science Alliance

    Publisher

    Springer-Verlag

    Berlin, Heidelberg

    Publication History

    Published: 16 August 2010

    Qualifiers

    • Article

    Contributors

    Other Metrics

    Bibliometrics & Citations

    Bibliometrics

    Article Metrics

    • Downloads (Last 12 months)0
    • Downloads (Last 6 weeks)0
    Reflects downloads up to 10 Aug 2024

    Other Metrics

    Citations

    Cited By

    View all
    • (2019)On library correctness under weak memory consistency: specifying and verifying concurrent libraries under declarative consistency modelsProceedings of the ACM on Programming Languages10.1145/32903813:POPL(1-31)Online publication date: 2-Jan-2019
    • (2016)Taming release-acquire consistencyACM SIGPLAN Notices10.1145/2914770.283764351:1(649-662)Online publication date: 11-Jan-2016
    • (2016)Taming release-acquire consistencyProceedings of the 43rd Annual ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages10.1145/2837614.2837643(649-662)Online publication date: 11-Jan-2016
    • (2016)A Program Logic for C11 Memory FencesProceedings of the 17th International Conference on Verification, Model Checking, and Abstract Interpretation - Volume 958310.1007/978-3-662-49122-5_20(413-430)Online publication date: 17-Jan-2016
    • (2015)Relaxing safely: verified on-the-fly garbage collection for x86-TSOACM SIGPLAN Notices10.1145/2813885.273800650:6(99-109)Online publication date: 3-Jun-2015
    • (2015)Relaxing safely: verified on-the-fly garbage collection for x86-TSOProceedings of the 36th ACM SIGPLAN Conference on Programming Language Design and Implementation10.1145/2737924.2738006(99-109)Online publication date: 3-Jun-2015
    • (2015)Owicki-Gries Reasoning for Weak Memory ModelsProceedings, Part II, of the 42nd International Colloquium on Automata, Languages, and Programming - Volume 913510.1007/978-3-662-47666-6_25(311-323)Online publication date: 6-Jul-2015
    • (2015)Moving AroundRevised Selected Papers of the 7th International Conference on Verified Software: Theories, Tools, and Experiments - Volume 959310.1007/978-3-319-29613-5_10(165-182)Online publication date: 18-Jul-2015
    • (2014)GPSACM SIGPLAN Notices10.1145/2714064.266024349:10(691-707)Online publication date: 15-Oct-2014
    • (2014)GPSProceedings of the 2014 ACM International Conference on Object Oriented Programming Systems Languages & Applications10.1145/2660193.2660243(691-707)Online publication date: 15-Oct-2014
    • Show More Cited By

    View Options

    View options

    Get Access

    Login options

    Media

    Figures

    Other

    Tables

    Share

    Share

    Share this Publication link

    Share on social media