|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
n |
At each page
fault the two lists are first examined
|
|
|
to see if the
needed page is still in main memory
|
|
|
|
u |
If it is, we just
need to set the present bit in the
|
|
|
|
corresponding
page table entry (and remove the
|
|
|
matching entry in
the relevant page list)
|
|
|
|
u |
If it is not,
then the needed page is brought in, it is
|
|
|
placed in the
frame pointed by the head of the free
|
|
|
|
frame list
(overwriting the page that was there)
|
|
|
|
F |
the head of the
free frame list is moved to the next entry
|
|
|
|
u |
(the frame
number in the page table entry could be used
|
|
|
to scan the two
lists, or each list entry could contain the
|
|
|
process id and
page number of the occupied frame)
|
|
|
n |
The modified
list also serves to write out modified
|
|
|
pages in
cluster (rather than individually)
|
|