C++ or Java Programming assignment.
This program assignment is designed to implement a simulation program which shows the the demand paging scheme with page replacement of virtual memory systems. As the system resource, a certain amout of memory spaces is allocated as the physical memory. In order to provide the demand paging scheme, a frame allocation and a page replacement algorithms are supposed to be incorporated into the system kernel. Page demand will be simulated according to a reference string.
7, 0, 1, 2, 0, 3, 0, 4, 2, 3, 0, 3, 2, 1, 2, 0, 1, 7, 0, 1
You may or may not create processes or threads to generate the above page faults.
In order to implement virtual memory, you will make the page tables have special bits in each page table entry.
valid-invalid bit to tell the machine which virutal pages are resident in memory and which are not resident.
reference bit (use bit) to indicate a page is referenced (either a read or a write to any byte in the page). This is associated with each entry in the page table and used as the basis for many page-replacement algorithms.
dirty bit to mark whether a process modified the corresponding vitual page and inform the kernel that the page is dirty.
First Phase: Demand paging using page faults should show that the kernel, memory management unit (MMU), dynamically loads virtual pages on demand by allocating a frame from a pool of free frames.
Second Phase: Implement a page replacement algorithm, enabling your system (kernel) to evict any virtual page from physical memory in order to free up a physical page frame to effectively handle a page fault. This demand paging and page replacement together allow the kernel to execute more processes than can fit in the available physical memory. Frame allocation will be simplifed by adopting equal or proportional allocation.