In this assignment, you are going to implement the Combiner program (from Assignment 1&2) using multiple processes. As in Assignment 1&2, you will be using shared memory and synchronization primitives (mutexes, condition variables, or semaphores) . However, in this assignment you need to use the mmap system call to set up the shared region. We require that you use anonymous mapping (no backing file). Also, you need to initialize the synchronization primitives to be process shared. The command line parameters and the expected output will be the same as in Assignment 2. Your solution must be free of data races and deadlocks.
Please submit your solution including a Readme and a Makefile on CANVAS by the due date.