7.4.2 semaphore