Use the following information to answer Questions 40, 41, an…
Questions
Use the fоllоwing infоrmаtion to аnswer Questions 40, 41, аnd 42.Sally's Melon store sells watermelons and cantaloupes. Demand for watermelons follows a normal distribution, with an average of 500 watermelons per week and a standard deviation of 20 watermelons per week. The shortage cost per unit (i.e., Cs) is $75, and the overage cost per unit (i.e., Co) is $20. Use a single period model.
In the fоllоwing cоde, аssume sem_getvаlue tаkes in a semaphore pointer and an integer pointer (sval) and will place the current value of the semaphore in the integer that sval points to. If there are threads waiting on the semaphore, assume that the semaphore's value is 0 (rather than a negative value). 1. enum channel_status channel_send(channel_t* channel, void* data) 2. { 3. pthread_mutex_lock(&channel->mutex); 4. if (channel->closed) { 5. pthread_mutex_unlock(&channel->mutex); 6. return CLOSED_ERROR; 7. } 8. pthread_mutex_unlock(&channel->mutex); 9. 10. sem_wait(&channel->send_wait_sem);11. 12. pthread_mutex_lock(&channel->mutex);13. 14. if (channel->closed) {15. pthread_mutex_unlock(&channel->mutex);16. return CLOSED_ERROR;17. }18. 19. buffer_add(channel->buffer, data);20. sem_post(&channel->recv_wait_sem);21. pthread_mutex_unlock(&channel->mutex);22. 23. return SUCCESS;24. } 25. enum channel_status channel_close(channel_t* channel)26. {27. pthread_mutex_lock(&channel->mutex);28. if (channel->closed) {29. pthread_mutex_unlock(&channel->mutex);30. return CLOSED_ERROR;31. }32. channel->closed = true; 33. 34. int send_sem_value;35. sem_getvalue(&channel->send_wait_sem, &send_sem_value);36. while (send_sem_value send_wait_sem);38. sem_getvalue(&channel->send_wait_sem, &send_sem_value);39. } 40. 41. int recv_sem_value;42. sem_getvalue(&channel->recv_wait_sem, &recv_sem_value);43. while (recv_sem_value recv_wait_sem);45. sem_getvalue(&channel->recv_wait_sem, &recv_sem_value);46. } 47. 48. pthread_mutex_unlock(&channel->mutex);49. 50. return SUCCESS;51. } Suppose a thread closes Channel A while 2 threads are attempting to send a message on Channel A. Describe a specific thread ordering that would lead to a thread getting stuck in line 10 forever. Assume all other channel functions and the usage of these functions are correct.