Suppose that a process omits the wait(mutex),or the signal(mutex),or both. In this case, either mutual exclusion is violated or a deadlock will occur.
These examples illustrate that various types of errors can be generated easily when programmers use semaphores incorrectly to solve the critical-section problem.
Similar problems may arise in the other synchronization models discussed in Section 5.7.