 
Summary: Improved Implementations of Binary Universal
Operations
Hagit Attiya and Eyal Dagan
The Technion
We present an algorithm for implementing binary operations (of any type) from unary load
linked (LL) and storeconditional (SC) operations. The performance of the algorithm is evaluated
according to its sensitivity, measuring the distance between operations in the graph induced by
conflicts, which guarantees that they do not influence the step complexity of each other. The
sensitivity of our implementation is O(log \Lambda n), where n is the number of processors in the system.
That is, operations that
are\Omega\Gammae/2 \Lambda n) apart in the graph induced by conflicts do not delay each
other. Constant sensitivity is achieved for operations used to implement heaps and arraybased
linked lists.
We also prove that there is a problem which can be solved in O(1) steps using binary LL/SC
operations, but requires O(log log \Lambda n) operations if only unary LL/SC operations are used. This
indicates a nonconstant gap between unary and binary LL/SC operations.
Categories and Subject Descriptors: C.2.4 [COMPUTERCOMMUNICATION NETWORKS]:
Distributed Systems; C.4 [PERFORMANCE OF SYSTEMS]: Fault tolerance; D.1.3 [PRO
GRAMMING TECHNIQUES]: Concurrent Programming; D.2.12 [SOFTWARE ENGI
NEERING]: InteroperabilityDistributed objects; D.4.1 [OPERATING SYSTEMS]: Process
