motivation Concurrent objects in shared memory Traditional approach: mutual exclusion using locks Some problems with mutual exclusion: no fault tolerance a process may fail in the critical section a slow process may delay others a process can proceed independent of others Questions: what wait-free objects are impossible? how can we implement wait-free objects? Definition: A concurrent object is wait-free if every thread completes a method in finite number of steps