Page fault behavior and two prepaging schemes
Seong-je Cho, Yookun Cho
Abstract
Seong-je Cho, Yookun Cho
Abstract
We study characteristics of page fault behavior of programs under a demand paging system and propose two prepaging schemes: page premapping and page prefetching. Our studies on the page fault behavior show that a large number of page faults occur in the shared library or in the dynamic heap of programs and can be handled without disk access. For those page faults, we propose page premapping that tries to reduce page fault overhead by mapping the page(s) which will be referenced shortly in advance. Premapping is performed by page fault handler whenever a page fault occurs and can save many page faults needed otherwise to execute programs. When a process starts to run, the pages of the text and the initialized data segments must be read from disk at every page fault. In that case the process must wait for a faulted page while it is being read. So the page faults that occur at process start time exert a strong influence on its response time. For those page faults, we propose page prefetching that tries to reduce page-in delay by prefetching page(s) to be referenced shortly. Prefetching is effective in reducing the sleep times of processes due to disk access. Prefetching is performed asynchronously by a low priority kernel level process. Our prepaging schemes use hints that reflect the sequence of page references and the page fault behavior of the program. Experimental results show that our prepaging schemes induce little overhead and can improve the performance of several programs significantly.
OpenAlex reports 9 citations for this work. Citation counts describe recorded attention and do not establish research quality.
A contribution statement is not available in the OpenAlex record.
Method details are not available in the OpenAlex metadata.
Findings are not separately available in the OpenAlex metadata.
Limitations are not available in the OpenAlex metadata.
Application details are not available in the OpenAlex metadata.
We study characteristics of page fault behavior of programs under a demand paging system and propose two prepaging schemes: page premapping and page prefetching. Our studies on the page fault behavior show that a large number of page faults occur in the shared library or in the dynamic heap of programs and can be handled without disk access. For those page faults, we propose page premapping that tries to reduce page fault overhead by mapping the page(s) which will be referenced shortly in advance. Premapping is performed by page fault handler whenever a page fault occurs and can save many page faults needed otherwise to execute programs. When a process starts to run, the pages of the text and the initialized data segments must be read from disk at every page fault. In that case the process must wait for a faulted page while it is being read. So the page faults that occur at process start time exert a strong influence on its response time. For those page faults, we propose page prefetching that tries to reduce page-in delay by prefetching page(s) to be referenced shortly. Prefetching is effective in reducing the sleep times of processes due to disk access. Prefetching is performed asynchronously by a low priority kernel level process. Our prepaging schemes use hints that reflect the sequence of page references and the page fault behavior of the program. Experimental results show that our prepaging schemes induce little overhead and can improve the performance of several programs significantly.
Key concepts: Page fault, Demand paging, Computer science, Page, Page view, Web page, Virtual memory, Paging