You are on page 1of 3

Operating Systems Programming 300698

Workshop D
1 Introduction
Central to implementation of a modern memory management system is the page re-
placement algorithm. Modern virtual memory sytems break memory up into pages and
map (via a page table) only the pages needed, or a maximum number of pages that is
constrained by system load, into the address space of the process. The page replace-
ment algorithm is used to decide which page/s of memory to evict when different pages
of memory are needed.
Using the simulators provided you will develop an understanding of the algorithms
involved and perform a comparison of the efciency of these algorithms.
2 The Simulators
The specications of the simulators are as follows:
Only a single process run is simulated, so all the available physical memory
constitutes the resident set for this process. This represents xed allocation, local
scope policy for the resident sets.
The physical memory size (in frames) is an input parameter to the program. This
should be less than the number of virtual pages, so some of the process pages
will not t into physical memory.
The virtual address is 16-bit long. The page is addressed by the high-order 8 bits,
and the offset within the page by the low-order 8 bits, so there are 256 virtual
pages, each capable of holding 256 bytes.
The following data structures are provided:
A linear page table, which maps the virtual page number to a physical frame
number. Each page table entry contains the physical frame number, and a valid
bit. Other control bits or items should be added to facilitate implementation of
the chosen page replacement strategy.
A free list, which is a list of all frames in physical memory available for alloca-
tion to the process. Initially all available frames belong to this list.
A resident set, which is a list of physical frames allocated to the process. Initially
this list is empty.
1
Initially all available frames are free, and can be allocated to the process on demand.
When the free list runs out of frames, one of the frames in the resident set must be freed
for the incoming page. The choice of the victim page is governed by the replacement
policy.
The execution of the process is simulated by the pager program which reads virtual
addresses from the input le, and allocates new frames to the process as required.
3 Simulator Algorithms
Three simulators (that share a common codebase) have been provided. They implement
the following algorithms:
FIFO
LRU
Optimal
You should research each of these algorithms and develop an understanding of how
these algorithms work. You do not need to understand the code beyond the level of
how to run the simulators.
4 Algorithm Comparison
Four input les have been provided that simulate different process workloads. You
should use these as input to the simulators, varying the memory size to determine
which is the most efcient algorithm for each input, and which is the most efcient
overall. Plotting available memory versus page fault rate will help you in this task. A
spreadsheet has also been provided to assist you in making these plots.
You should after performing these experiments be able to make a recommendation
about which algorithm is best for use in a real system.
5 Deliverable and Marking Guide
You are required to write a report that includes the following information, with the
marks available are indicated on the right hand side:
Introduction to the report (1)
Description of FIFO (1)
Description of LRU (1)
Description of Optimal (1)
Description of experiments performed, this should be an overview of the tech- (1)
niques used, the results will pin this down.
Presentation of results for input le 1, (this could just be a graph), and a ranking (1)
of the three algorithms performance.
2
Presentation of results for input le 2 and a ranking of the three algorithms per- (1)
formance.
Presentation of results for input le 3 and a ranking of the three algorithms per- (1)
formance.
Presentation of results for input le 4 and a ranking of the three algorithms per- (1)
formance.
Conclusions and recommendation of algorithm, this should be supported by your (1)
data.
3

You might also like