The virtual memory simulator works as follows: vmsim programList programTrace pageSize replacementPolicy pagingType [verbose] Where programList and programTrace are files (programlist and programtrace are the ones provided); pageSize is an integer equal to either 2, 4, 8, 16, or 32; replacementPolicy is c for clock, f for FIO, or l for LRU; pagingType is d for demand or p for pre; verbosity is optional - if it is v, the simulator will output debugging information. If you run it with programtrace, don't turn on verbosity - it's really slow, and you'll just have to kill the process. But since verbose mode is way cool, I have included a truncated programtrace called shorttrace. Verbose mode will show the contents of the memory queue and clock spots as the program executes each command. This will show the program is working properly. Also don't run the program through valgrind with verbose mode on - it will take forever and it's hard to kill the process because of how it catches keypresses. Prepending a valid set of arguments with valgrind will show that there aren't any memory leaks, though. I dumped all of the functions into the one file, bayles_hw03.cpp for ease of compilation: "g++ bayles_hw03.cpp -o vmsim" will work. The report is bayles_report.doc . More results are available in results.ods , which is in OpenOffice Spreadsheet format. If an Excel file is needed, I can make one.