code class="asciimath">Create a 9-element FIFO buffer with 2 consumers and 2 producers. Producer X produces letter X, producer Y produces letter Y. An element is removed from the buffer after being read by both consumers, when number of elements in the buffer is bigger than 2. Only the last element in the buffer can be read. Producer X can produce when number of elements in the buffer is less than 4. Producer Y can produce when number of elements in the buffer is more than 3. Make use of: - the Semaphore class defined in the monitor.h file (p() and v() operations), - threads (using global variables).