• DocumentCode
    1768167
  • Title

    Synthesis of synchronization using uninterpreted functions

  • Author

    Bloem, Roderick ; Hofferek, Georg ; Konighofer, Bettina ; Konighofer, Robert ; Auserlechner, Simon ; Spork, Raphael

  • Author_Institution
    Inst. for Appl. Inf. Process. & Commun. (IAIK), Graz Univ. of Technol., Graz, Austria
  • fYear
    2014
  • fDate
    21-24 Oct. 2014
  • Firstpage
    35
  • Lastpage
    42
  • Abstract
    Correctness of a program with respect to concurrency is often hard to achieve, but easy to specify: the concurrent program should produce the same results as a sequential reference version. We show how to automatically insert small atomic sections into a program to ensure correctness with respect to this implicit specification. Using techniques from bounded software model checking, we transform the program into an SMT formula that becomes unsatisfiable when we add correct atomic sections. By using uninterpreted functions to abstract data-related computational details, we make our approach applicable to programs with very complex computations, e.g., cryptographic algorithms. Our method starts with an empty set of atomic sections, and, based on counterexamples obtained from the SMT solver, refines the program by adding new atomic sections until correctness is achieved. We compare two different such refinement methods and provide experimental results, including Linux kernel modules where we successfully fix race conditions.
  • Keywords
    Linux; cryptography; formal verification; Linux kernel modules; SMT formula; SMT solver; abstract data-related computational details; concurrency; concurrent program; cryptographic algorithms; sequential reference version; software model checking; synchronization; uninterpreted functions; Concurrent computing; Context; Encoding; Message systems; Programming; Switches; Synchronization;
  • fLanguage
    English
  • Publisher
    ieee
  • Conference_Titel
    Formal Methods in Computer-Aided Design (FMCAD), 2014
  • Conference_Location
    Lausanne
  • Type

    conf

  • DOI
    10.1109/FMCAD.2014.6987593
  • Filename
    6987593