Work through the concepts, then test yourself with the knowledge check.
A semaphore's wait() (P) operation:
P() (from Dutch 'proberen' = to try): decrement. V() (from 'verhogen' = to increment): increment. Mnemonics: P=probe/wait, V=signal/post.
Acquiring (locking) a resource is the wait()/P() operation. Releasing is signal()/V(). Mutex unlock = signal() on a binary semaphore.
A blocked thread is suspended (in BLOCKED state) — it will resume when the semaphore is signaled. Termination is a separate operation.