A process blocked on a semaphore is currently unblocked if it is the first process found in the process table that is blocked on that semaphore. The preference is ordered by:
- Processes belonging to arbiters with a lower socket number.
- Processes at the front of the arbiter's process list (a linked-list).
The implications of this scheme means that the system is biased towards processes that happen to be registered last in arbiters that connected earliest. To implement semaphores fairly, the process that blocked first should be the first to be unblocked if the semaphore is "upped".
A process blocked on a semaphore is currently unblocked if it is the first process found in the process table that is blocked on that semaphore. The preference is ordered by:
The implications of this scheme means that the system is biased towards processes that happen to be registered last in arbiters that connected earliest. To implement semaphores fairly, the process that blocked first should be the first to be unblocked if the semaphore is "upped".