Not all locks are equally good Example: Test-and-Set (TAS) locks Example: Ticket locks TAS locks acq(( acqui i: getAndlnc( next ) Fair! succ:=false; while(! succ )i ICC: -cas(L, 0, 1); elI serving; serving 1; 1 Ticket locks= e Unfair! 上n Queue management in banks How to distinguish them? What are the progress-aware abstractions?Not all locks are equally good! How to distinguish them? What are the progress-aware abstractions?