Strict Priority Scheduler FAQ
Questions
What does it mean for synchronization primitives to prefer higher priority threads over lower priority threads?
You should unblock the thread that has the highest priority for any of these synchronization variables. When choosing the next thread to down the semaphore / acquire the lock, you should choose the thread with the highest priority. Similar logic applies when choosing which thread to signal. For broadcasting, you can think about it as signalling until your list of waiters is empty. You should make sure that the highest priority thread gets to the resource first.