title: what is the reason that semaphores mus be atomic
body: <p>Im learning about semaphores: sem_wait and sem_signal.
  Resources say that semaphores must be atomic to for implementing mutual exclusion
  I can't understand why they must be atomic?! what happens if they are not?!</p>