I was asked this question in an interview Plz tell me the answer :-
You have no documentation of the kernel. You only knows that you kernel supports paging.
How will you find that page size ? There is no flag or macro you have that can tell you about page size.
I was given the hint as you can use Time to get the answer. I still have no clue for it.
Run code like the following:
Graph the results with stride on the X axis and runtime on the Y axis. There should be a point at stride=pagesize, where the performance no longer drops.
This works by incurring a number of page faults. Once stride surpasses pagesize, the number of faults ceases to increase, so the program’s performance no longer degrades noticeably.
If you want to be cleverer, you could exploit the fact that the
mprotectsystem call must work on whole pages. Try it with something smaller, and you’ll get an error. I’m sure there are other “holes” like that, too – but the code above will work on any system which supports paging and where disk access is much more expensive than RAM access. That would be every seminormal modern system.