HiveBrain v1.2.0
Get Started
← Back to all entries
patternMinor

Are Test and set primitives as powerful as semaphores?

Submitted by: @import:stackexchange-cs··
0
Viewed 0 times
arepowerfulprimitivestestandsemaphoresset

Problem

I get confused because i don't know if it is possible to use Test and Set primitives in case where more then one process can be enter in critical section at the same time.

Solution

Your hunch is correct, they aren't equivalent. Test-and-set has a consensus number of 2, which means, roughly speaking, that it is only able to efficiently synchronize between 2 processes. See Why is the consensus number for test-and-set, 2?. Semaphores allow synchronization between an arbitrary number of processes (assuming no bound on the number of processes waiting on a semaphore).

It isn't really a “fair” comparison, since test-and-set is a hardware primitive while semaphores are a software interface. But if does show that test-and-set isn't sufficient to implement (wait-free) semaphores.

Context

StackExchange Computer Science Q#83146, answer score: 5

Revisions (0)

No revisions yet.