Results 1 
4 of
4
Efficient Transformations of ObstructionFree Algorithms into Nonblocking Algorithms
"... Abstract. Three well studied progress conditions for implementing concurrent algorithms without locking are, obstructionfreedom, nonblocking and waitfreedom. Obstructionfreedom is weaker than nonblocking which, in turn, is weaker than waitfreedom. While obstructionfreedom and nonblocking hav ..."
Abstract

Cited by 5 (1 self)
 Add to MetaCart
(Show Context)
Abstract. Three well studied progress conditions for implementing concurrent algorithms without locking are, obstructionfreedom, nonblocking and waitfreedom. Obstructionfreedom is weaker than nonblocking which, in turn, is weaker than waitfreedom. While obstructionfreedom and nonblocking have the potential to significantly improve the performance of concurrent applications, waitfreedom (although desirable) imposes too much overhead upon the implementation. In [5], Fich, Luchangco, Moir, and Shavit have presented an interesting transformation that converts any obstructionfree algorithm into a waitfree algorithm when analyzed in the unknownbound semisynchronous model. The FLMS transformation uses n atomic singlewriter registers, n atomic multiwriter registers and a single fetchandincrement object, where n is the number of processes. We define a time complexity measure for analyzing such transformations, and prove that the time complexity of the FLMS transformation is exponential in the number of processes n. This leads naturally to the question of whether the time and/or space complexity of the FLMS transformation can be improved by relaxing the waitfreedom progress condition. We present several efficient transformations that convert any obstructionfree algorithm into a nonblocking algorithm when analyzed in the unknownbound semisynchronous model. All our transformations have O(1) time complexity. One transformation uses n atomic singlewriter registers and a single compareandswap object; another transformation uses only a single compareandswap object which is assumed to support also a read operation.
ABSTRACT The Notion of a Timed Register and its Application to Indulgent Synchronization
"... A new type of shared object, called timed register, is proposed and used for the design of indulgent timingbased algorithms. A timed register generalizes the notion of an atomic register as follows: if a process invokes two consecutive operations on the same timed register which are a read followed ..."
Abstract
 Add to MetaCart
(Show Context)
A new type of shared object, called timed register, is proposed and used for the design of indulgent timingbased algorithms. A timed register generalizes the notion of an atomic register as follows: if a process invokes two consecutive operations on the same timed register which are a read followed by a write, then the write operation is executed only if it is invoked at most d time units after the read operation, where d is defined as part of the read operation. In this context, a timingbased algorithm is an algorithm whose correctness relies on the existence of a bound ∆ such that any pair of consecutive constrained read and write operations issued by the same process on the same timed register are separated by at most ∆ time units. An indulgent algorithm is an algorithm that always guarantees the safety properties, and ensures the liveness property as soon as the timing assumptions are satisfied. The usefulness of this new type of shared object is demonstrated by presenting simple and elegant indulgent timingbased algorithms that solve the mutual exclusion, ℓexclusion, adaptive renaming, test&set, and consensus problems. Interestingly, timed registers are universal objects in systems with process crashes and transient timing failures (i.e., they allow building any concurrent object with a sequential specification). The paper also suggests connections with schedulers and contention managers. Categories ands Subject Descriptors
Indulgence
"... Abstract. An indulgent algorithm is a distributed algorithm that, besides tolerating process failures, also tolerates arbitrarily long periods of instability, with an unbounded number of timing and scheduling failures. In particular, no process can take any irrevocable action based on the operationa ..."
Abstract
 Add to MetaCart
Abstract. An indulgent algorithm is a distributed algorithm that, besides tolerating process failures, also tolerates arbitrarily long periods of instability, with an unbounded number of timing and scheduling failures. In particular, no process can take any irrevocable action based on the operational status, correct or failed, of other processes. This paper presents an intuitive and general characterization of indulgence. The characterization can be viewed as a simple application of Murphy’s law to partial runs of a distributed algorithm, in a computing model that encompasses various communication and resilience schemes. We use our characterization to establish several results about the inherent power and limitations of indulgent algorithms.