For strategy 3 in project 4, it says:
1 mutex + 1 producer + 1 consumer semaphore for every 10 ports.
With this approach, would we (a) limit the message capacity to 10 for all 10 ports (i.e. 1 message per port on average), (b) set the semaphore to 100 to allow for an average of 10 messages per port, or (c) do some other workaround to only use 1 semaphore while still enforcing the exact limit of 10 messages per port?
If we were to go with (c) and a requested port is full, would yielding while the port is full, inside a critical section in send(), work?