The purpose of this project is to write a simulation that explores the effects of limited memory and memory management policies. Your simulator will read policy information and the characteristics of the workload from input files. Then, it will simulate the execution of the processes as well as decisions of a Memory Manager (MM). The simulator will generate an output file with the trace of important “events,” as well as the memory map and the input queue status after each event. At the end of the simulation, your program will also print the average turnaround time per process.