In Chapter 6, we discussed using semaphores as a method of implementing a simple admission control policy. In this scenario, there exist a finite number of non-shareable resources. When a resource is requested, we will only grant the request if there are sufficient resources available; otherwise the requesting process is forced to wait until a resource becomes available. Semaphores may be used to implement an admission control policy by first initializing a semaphore
to the number of resources available. Every request for a resource is made through a waitO operation on the semaphore; a resource is released with an invocation of signal 0 on the semaphore. Once all resources are in use, subsequent calls to wait () block until there is a corresponding signal 0 .