anchor.diff:  trace of important events that modify the memory contents and input queue,
   including:
   
  -- Process arrival
  -- Process admission to the main memory
  -- Process completion
  +* Process arrival
  +* Process admission to the main memory
  +* Process completion
   
   Please make sure to refer to the input file and the corresponding output files
   that illustrate the expected format. When the simulation terminates (when
  
positive.code: --------------------------------
  Input file: `in1.txt`
  
  - Out1 for file in1 using paging with memory size = 2000 and page size = 100
  - Out2 for file in1 using paging with memory size = 2000 and page size = 200
  - Out3 for file in1 using paging with memory size = 2000 and page size = 400
  
  Your simulator will prompt the user for the size of the memory and associated
  parameters information. The Memory Size (an integer) denotes the capacity of
  
negative.code:   may have to wait in Input Queue until sufficient space is available in
    memory; that is a normal scenario.
  
  * When the MM is allocating a free memory region (hole) to one process/page,
    it may have to choose between the lower end and the upper end of the region.
    In this case, always use the lower end.
  
  * The turnaround time for each process will be computed as the difference
    between its completion time and its arrival time.
  
  * Since the focus of this project is on memory management, do not be concerned
    about the details of CPU scheduling or I/O device management. Just assume
    that the process will be completed after staying in memory for Lifetime in
    Memory time units.
  
  * Feel free to adopt any convenient data structure to represent your memory
    map; explain it in your write-up.
  
  
  