PPT Slide
Semaphores
- Semaphore: Solves both the signaling and mutex problems.
- SOS: We will use an integer value to “name” a semaphore. The values are global (e.g., SID == 4 is the same semaphore for all process).
- New semaphore SOS calls:
- int AttachSemaphore(int sema_gid) - Attach this process to the global semaphore specified by sema_gid. Return a local identifier to be used in later semaphore calls. The first call using sema_gid will create the semaphore and set it’s state to busy.
- int Wait(int sema_id) - If the semaphore specified by local identifier sema_id is not busy then set it to busy and return. If the semaphore is busy, block the calling process on the semaphore’s wait queue.