CS/COE 1550 – Introduction to Operating Systems
1
Project 3: Virtual Memory Simulator1
Due: Monday, April 6th, 2020 @11:59 pm
Late: Wednesday, April 8st, 2020 @11:59 pm with 10% reduction per late day
Table of Contents
PROJECT OVERVIEW .............................................................................................................................................. 2
PROJECT DETAILS ................................................................................................................................................... 2
IMPLEMENTATION .......................................................................................................................................................... 3
IMPORTANT NOTES ........................................................................................................................................................ 3
WRITE UP .................................................................................................................................................................... 3
FILE BACKUPS ............................................................................................................................................................... 4
REQUIREMENTS AND SUBMISSION ........................................................................................................................ 4
GRADING SHEET/RUBRIC ....................................................................................................................................... 4
1 Based upon Project 3 of Dr. Misurda's CS 1550 course.
CS/COE 1550 – Introduction to Operating Systems
2
Project Overview
In class, we have been discussing various page replacement algorithms that an Operating System
implementer may choose to use. In this project, you will compare the results of three different
algorithms on traces of memory references. While simulating an algorithm, you will collect statistics
about its performance, such as the number of page faults that occur and the number of dirty frames
that had to be written back to disk. When you are done with your program, you will write up your
results and provide a graph that compares the performance of the various algorithms.
The three algorithms for this project are:
OPT – Simulate what the optimal page replacement algorithm would choose if it had perfect
knowledge
Least Recently Used (LRU)– Simulate least recently used, whereby you will track when pages
were last accessed and evict the least recently used page.
Second Chance Algorithm – Candidate pages are considered for removal in a round robin
manner, and a page that has been accessed between consecutive page faults will not be evicted.
The page will be replaced if it has not been accessed since its last consideration. That is, each
page gets a “second chance” before it is replaced. In the worst case, if the second chance bit is
set for all pages, the bit is cleared and second chance algorithm degenerates to FIFO.
You may write your program in C/C++, Java, Perl, or Python as long as it runs on thoth.cs.pitt.edu.
Implement a page table for a 32-bit address space. All pages will be 4KB in size. The number of frames
will be a parameter to the execution of your program.
Project Details
You will write a program called vmsim that takes the following command line arguments:
./vmsim –n -a