On single-processor systems,
semaphores are used to synchronize the activities of server and self-service client processes that are connected to a database. By default, each database has an array of semaphores, one for each user or server. Each process uses its semaphore when it must wait for a shared resource. Semaphores are not used for single-user sessions or for client sessions connecting to a remote database on a server system.
The following figure shows how semaphores control access to shared resources.

OpenEdge 11.6 Product Documentation has explained semaphores in detail.
Please refer to the following links for additional information:
Administrative Planning : Tunable operating system resources in
OpenEdge Getting Started: Database Essentials
Maintaining and Monitoring Your Database : Managing Performance : Operating system resources : Semaphores in
OpenEdge Data Management: Database Administration