Durability Semantics for Lock-based Multithreaded Programs
نویسندگان
چکیده
Non-volatile storage connected as memory (NVRAM) offers promising opportunities for simplifying and accelerating manipulation of persistent data. Load and store latency is potentially comparable to that of ordinary memory. The challenge is to ensure that the persisted data remains consistent if a failure occurs during execution, especially in a multithreaded programming environment. In this paper, we provide semantics for identifying a globally consistent state for a lock-based multithreaded program. We show how to conveniently ensure that programs are returned to such a globally consistent state after a crash. We discuss challenges and opportunities along the way, and explain why adding durability to transactional programs may be less expensive.
منابع مشابه
Deconstructing Transactional Semantics: The Subtleties of Atomicity
Researchers have recently proposed software and hardware support for transactions as a replacement for the traditional lock-based synchronization most common in multithreaded programs. Transactions allow the programmer to specify a region of the program that should appear to execute atomically, while the hardware and runtime system optimistically execute the transactions concurrently to obtain ...
متن کاملThe Case for Region Serializability
It is difficult to write correct multithreaded code. This difficulty is compounded by the weak memory model [1] provided to multithreaded applications running on commodity multicore hardware, where there is not an easily understood semantics for applications containing data races. For example, the DRF0 memory model only guarantees sequential consistency to data-race free programs [2], and while...
متن کاملMemory model for multithreaded C++: August 2005 status update
The C++ Standard defines single-threaded program execution. Fundamentally, multithreaded execution requires a much more refined memory and execution model. C++ threading libraries are in the awkward situation of specifying (implicitly or explicitly) an extended memory model for C++ in order to specify program execution. We have been working on integrating a memory model suitable for multithread...
متن کاملContext-Bounded Analysis of Multithreaded Programs with Dynamic Linked Structures
Bounded context switch reachability analysis is a useful and efficient approach for detecting bugs in multithreaded programs. In this paper, we address the application of this approach to the analysis of multithreaded programs with procedure calls and dynamic linked structures. We define a program semantics based on concurrent pushdown systems with visible heaps as stack symbols. A visible heap...
متن کاملAbstraction and Verification of Properties of a Real-Time Java
ion and Verification of Properties of a Real-Time Java Nadezhda Baklanova and Martin Strecker IRIT (Institut de Recherche en Informatique de Toulouse) Université de Toulouse 118 route de Narbonne, F-31062 Toulouse CEDEX 9, France [email protected], [email protected] Abstract. We present a tool for analysing resource sharing conflicts in multithreaded Java programs. Java programs ...
متن کامل