Appeal No. 2000-1238 Application 08/566,638 can be viewed in terms of a granularity scale, with the single global semaphore method as the least granular and the one semaphore per object method as the most granular. The rest of the allocation schemes lie somewhere in the middle of the granularity scale. Incidentally, the most desirable allocation scheme would consist of not too many semaphores such that deadlock may become a problem and not too few semaphores such that concurrency may be limited (or no concurrency at all as in the case of the single global semaphore method). Specification at 4, ll. 1-9. Appellant's solution is to employ a semaphore manager data structure which implements the following assignment criteria: "a class can only be assigned to one semaphore but a semaphore can be assigned to more than one class" (id. at 5, ll. 19-21). The advantages of this data structure include the number of actual semaphores that can be controlled so that the computer system would not be overwhelmed, the semaphore mapping can be performed statically at the time of compilation or dynamically during time of execution, potential deadlock situations can be reduced due to the assurance that only one class can request one semaphore at a time, and the semaphore tracing or debugging capabilities can be enhanced because all semaphores are managed centrally. Id. at 5, ll. 21-28. In addition to classes which include objects, Appellant's preferred embodiment employs a semaphore class and a semaphore manager class. Id. at 10, ll. 18-21. A specific example, including sections 1-6, is given in the specification at page 11, line 23 to page 12, line 33. In section 1, each of the five classes is assigned a unique index -3-Page: Previous 1 2 3 4 5 6 7 8 9 10 11 NextLast modified: November 3, 2007