Pre-fetching of pages prior to a hard page fault sequence
First Claim
1. In a computer system, a method for avoiding hard page faults during a hard page fault scenario of an application program module, the hard page fault scenario comprising a situation in which the application program module attempts to access one or more pages that are unavailable in RAM and must be retrieved from a disk storage, the method comprising the computer implemented steps of:
- prior to an occurrence of the hard page fault scenario, determining which pages will be retrieved from disk;
detecting the occurrence of the hard page fault scenario; and
in response to detecting the hard page fault scenario, fetching the determined pages into RAM prior to the occurrence of the hard page faults of the hard page fault scenario, whereby the determined pages will be available in RAM and hard page faults will not occur.
2 Assignments
0 Petitions
Accused Products
Abstract
Hard page fault patterns of an application program module are analyzed in order to determine the pages that will be retrieved from disk storage during a common hard page fault scenario. Copies of, or references to, the determined pages are stored in a scenario file, along with an index referred to as a page sequence. The scenario file may also include a prologue indicating events that lead to a hard page fault scenario and an epilogue that may indicate subsequent hard page fault scenarios. Execution of the application program module is monitored to detect the occurrence of a hard page fault scenario. When a hard page fault scenario is detected, a corresponding scenario file is fetched from disk storage and the determined pages, or copies thereof, are transferred into RAM. The determined pages, or copies thereof, may be placed on a stand-by list in RAM and later soft-faulted into the working set of the application program upon request by the application program module, thereby avoiding a sequence of hard page faults.
56 Citations
29 Claims
-
1. In a computer system, a method for avoiding hard page faults during a hard page fault scenario of an application program module, the hard page fault scenario comprising a situation in which the application program module attempts to access one or more pages that are unavailable in RAM and must be retrieved from a disk storage, the method comprising the computer implemented steps of:
-
prior to an occurrence of the hard page fault scenario, determining which pages will be retrieved from disk;
detecting the occurrence of the hard page fault scenario; and
in response to detecting the hard page fault scenario, fetching the determined pages into RAM prior to the occurrence of the hard page faults of the hard page fault scenario, whereby the determined pages will be available in RAM and hard page faults will not occur. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11)
creating a log of hard page faults that occur during operation of the application program module;
analyzing the log to find a common hard page fault scenario; and
determining from the log which pages were retrieved from disk during that the common hard page fault scenario.
-
-
3. The method of claim 1, further comprising the step of defragging the disk storage.
-
4. The method of claim 1, wherein the pages are compressed in the disk storage;
- and
wherein the method further comprises the step of decompressing the copies of the determined pages prior to fetching them into the RAM.
- and
-
5. The method of claim 1, wherein a copy of each of the determined pages is stored in a sequence file;
- and
wherein the step of fetching the determined pages into RAM comprises fetching the copy of each of the determined pages from the sequence file into RAM.
- and
-
6. The method of claim 5, wherein the sequence file further comprises a prologue indicating one or more events that lead to the hard page fault scenario.
-
7. The method of claim 5, wherein the sequence file further comprises an epilogue indicating one or more subsequent hard page fault scenarios that are likely to follow the hard page fault scenario.
-
8. The method of claim 1, wherein a reference to each of the determined pages is stored in a sequence file;
- and
wherein the step of fetching the determined pages into RAM comprise accessing the sequence file in order to locate and fetch the determined pages into memory.
- and
-
9. The method of claim 8, wherein the sequence file further comprises a prologue indicating one or more events that lead to the hard page fault scenario.
-
10. The method of claim 8, wherein the sequence file further comprises an epilogue indicating one or more subsequent hard page fault scenarios that are likely to follow the hard page fault scenario.
-
11. The method of claim 1, wherein fetching the copies of the determined pages into RAM comprises placing the copies of the determined pages on a standby list in the RAM.
-
12. A computerized system for avoiding a hard page fault during a hard page fault scenario of an application program module, the hard page fault scenario comprising a situation in which the application program module attempts to access one or more determined pages that are unavailable in RAM and must be retrieved from a disk storage, the system comprising:
-
a hard page fault scenario detector for detecting the occurrence of the hard page fault scenario; and
a pre-fetcher for fetching from the disk storage the determined pages into RAM prior to the occurrence of the hard page fault of the hard page fault scenario, the pre-fetcher operating in response to a message received from the hard page fault scenario detector indicating that the hard page fault scenario has been detected, whereby the determined pages will be available in RAM and the hard page fault will not occur. - View Dependent Claims (13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23)
wherein the pre-fetcher fetches the copy of each of the determined pages stored in the sequence file into RAM.
-
-
15. The system of claim 14, wherein the sequence file further comprises a prologue indicating events that lead to the occurrence of the hard page fault scenario;
- and
wherein the hard page fault scenario detector is operable to analyze the prologue of the scenario file in order to detect the hard page fault scenario.
- and
-
16. The system of claim 14, wherein the sequence file further comprises an epilogue indicating one or more subsequent hard page fault scenarios that are likely to follow the hard page fault scenario.
-
17. The system of claim 12, wherein a reference to each of the determined pages is stored in a sequence file;
- and
wherein the pre-fetcher accesses the sequence file in order to locate and fetch the determined pages into RAM.
- and
-
18. The system of claim 17, wherein the sequence file further comprises a prologue indicating events that lead to the occurrence of the hard page fault scenario;
- and
wherein the hard page fault scenario detector is operable to analyze the prologue of the scenario file in order to detect the hard page fault scenario.
- and
-
19. The system of claim 17, wherein the sequence file further comprises an epilogue indicating one or more subsequent hard page fault scenarios that are likely to follow the hard page fault scenario.
-
20. The system of claim 12, further comprising a hard page fault scenario analyzer for analyzing the hard page fault scenario in order to predetermine which pages will be retrieved from disk during the hard page fault of the hard page fault scenario and create a scenario file comprising the copies of the predetermined pages.
-
21. The system of claim 12, further comprising a defragger for defragging the disk storage.
-
22. The system of claim 12, further comprising a compressor/decompressor for compressing the pages stored in the disk storage and decompressing the copies of the predetermined pages prior to fetching them into the RAM.
-
23. The system of claim 12, wherein the pre-fetcher fetches the copies of the predetermined pages into RAM by placing the copies of the predetermined pages on a standby list in the RAM.
-
24. A data structure stored on a computer readable medium for use in conjunction with an application program module for avoiding a sequence of hard page faults during a hard page fault scenario of the application program, the data structure comprising:
-
a page sequence index comprising ordered identifiers of one or more pages that are likely to be retrieved from a disk storage during the sequence of hard page faults; and
copies of the plurality of pages that are likely to be retrieved from a disk storage during the sequence of hard page faults. - View Dependent Claims (25, 26)
-
-
27. A data structure stored on a computer readable medium for use in conjunction with an application program module for avoiding a sequence of hard page faults during a hard page fault scenario of the application program, the data structure comprising:
-
a page sequence index comprising ordered identifiers of one or more pages that are likely to be retrieved from a disk storage during the sequence of hard page faults; and
references to the plurality of pages that are likely to be retrieved from a disk storage during the sequence of hard page faults. - View Dependent Claims (28, 29)
-
Specification