then how no. of page references are found out for frequency based algorithms?? (FBR)
On 8/17/07, Mulyadi Santosa <[EMAIL PROTECTED]> wrote: > > Hello Akshay... > > while reading about page replacement algos, i have a doubt.... > > whenever page table entries are set, pages will be accessed without > > knowledge of kernel. So how no. of references made to a page present in > > cache are found out?? (especially in frquency based algos) > > > > > > This is how I understand the mechanism. If you access those pages > directly i.e using something like mov <address> $variable, of course > kernel won't recognize it and page count reference can not be adjusted. > IIRC, the best the MMU unit can do is simply turn the "accessed" bit on > in the related PTE. > > Page count reference is adjusted when you access them via wrapper > functions. I am not able to tell the exact function names, but here is > example scenario. You mmap() a file... then some data chunks are brought > into page cache. Since this is the only process right now which accesses > them, page ref count is set as 0. Later, while still mmap()-ing them, > another process also want to mmap() the same file. This time, they are > found on page cache, thus page ref count are incremented by 1. > > Minutes later, they are no longer needed by both processes. Unmap() is > called, releasing the pages from process address space's mapping. Then > page ref count are back to zero. > > I hope I illustrate the situation correctly for you and enough to bring > enlightenment. > > regards, > > Mulyadi > >
