struct semaphore* Item, Space
Item = sem_create("Buffer Item", 0);
Space = sem_create("Buffer Spaces", N)
Producer's Pseudo-code:
P(Spaces)
add item to the buffer
V(Items)
Consumer's Pseudo-code:
P(Items)
remove item from the buffer
V(spaces)