Method to increase performance of acquiring free memory pages
First Claim
Patent Images
1. A method for increasing performance comprising:
- storing at least a portion of data file to a memory page;
ascertaining if the memory page is a candidate for freeing by determining if a quantity of free memory pages in a memory is below a free memory space threshold value relating to the amount of free memory space in a second memory; and
designating the memory page as a free memory page based on the memory page being a candidate for freeing.
1 Assignment
0 Petitions
Accused Products
Abstract
Initially, data is copied from a disk to a page frame and then to a read buffer, for instance. Next, a check is made to determine whether the percent of real memory occupied by file pages is less than a preset maximum volume. If so, no space is allocated for additional file page and no page frames are returned to the free list. If not, the VMM selects the best candidate file pages in real memory and returns them to the free list. Ideal candidates are a thread'"'"'s memory pages, from a thread doing sequential I/O the file system. In so doing, the page frames are added to the free list as soon as the I/O is complete.
41 Citations
41 Claims
-
1. A method for increasing performance comprising:
-
storing at least a portion of data file to a memory page;
ascertaining if the memory page is a candidate for freeing by determining if a quantity of free memory pages in a memory is below a free memory space threshold value relating to the amount of free memory space in a second memory; and
designating the memory page as a free memory page based on the memory page being a candidate for freeing. - View Dependent Claims (2, 3, 4, 5)
determining if the memory page is one of a sequence of memory pages containing data from the data file.
-
-
3. The method recited in claim 2, wherein ascertaining if the memory page is the candidate for freeing further comprises:
comparing an amount of a type of memory pages in a memory to a memory type threshold value relating to the amount of a type of memory pages in the memory.
-
4. The method recited in claim 1, wherein prior to ascertaining if the memory page is the candidate for freeing the method further comprises:
tagging the memory page as a candidate for freeing memory page.
-
5. The method recited in claim 4, wherein ascertaining if a memory page is a candidate for freeing further comprises:
searching the memory for a tagged memory page.
-
6. A method for increasing performance comprising:
-
specifying a free memory page;
inputting at least a portion of data to be output from a first memory to the memory page;
outputting the at least a portion of data output from the memory page;
testing content of a second memory by comparing an amount of a type of memory pages in the second memory to a memory type threshold value relating to an amount of a type of memory pages in the second memory;
ascertaining if the memory page is a candidate for freeing; and
designating the memory page as a free memory page based on the memory page being a candidate for freeing. - View Dependent Claims (7, 8, 15, 16)
determining if the memory page is one of a sequence of memory pages containing data to be output.
-
-
8. The method recited in claim 6, wherein the second memory is real memory.
-
15. The method recited in claim 6, wherein prior to ascertaining if a memory page is a candidate for freeing the method further comprises:
-
copying at least a portion of the requested data from a second memory to the memory page; and
tagging the memory page as a candidate memory page.
-
-
16. The method recited in claim 15, wherein ascertaining if a memory page is a candidate for freeing further comprises:
searching the second memory for a tagged memory page.
-
9. A method for increasing performance comprising:
-
specifying a free memory page by;
receiving a request for data to be output, accessing a free list, containing identities of a plurality of free memory pages in a first memory, identifying a memory page from the free list; and
removing the memory page from the free list of memory pages in the first memory;
inputting at least a portion of data to be output from the first memory to the memory page;
outputting the at least a portion of data output from the memory page;
ascertaining if the memory page is a candidate for freeing; and
designating the memory page as a free memory page based on the memory page being a candidate for freeing. - View Dependent Claims (10, 11, 12, 13)
determining whether the requested data resides in the second memory.
-
-
11. The method recited in claim 9, wherein prior to assessing the free list the method further comprises:
determining whether the free list is empty.
-
12. The method recited in claim 11, further comprises:
stealing a substitute memory page from the first memory in response to the free list being empty.
-
13. The method recited in claim 11, further comprises:
-
determining a least recently used memory page in the first memory in response to the free list being empty;
stealing the least recently used memory page from the first memory; and
adding the least recently used memory page to the free list.
-
-
14. A method for increasing performance comprising:
-
specifying a free memory page;
inputting at least a portion of data to be output from a first memory to a memory page;
outputting the at least a portion of data output from the memory page;
ascertaining if the memory page is a candidate for freeing by determining if a quantity of free memory pages in a second memory is below a free memory space threshold value relating to the amount of free memory space in the second memory; and
designating the memory page as a free memory page based on the memory page being a candidate for freeing.
-
-
17. A method for increasing performance comprising:
-
specifying a free memory page;
inputting at least a portion of data to be output from a first memory to a memory page;
outputting the at least a portion of data output from the memory page;
copying at least a portion of the requested data from a second memory to the memory page;
tagging the memory page as a candidate memory page;
ascertaining if the memory page is a candidate for freeing;
designating the memory page as a free memory page based on the memory page being a candidate for freeing;
determining if a total quantity of free memory pages in the second memory is below a free memory space threshold value relating to the amount of free memory space in the first memory; and
based on the total quantity of free memory pages in a first memory being below the free memory space threshold value and subsequent to ascertaining if the memory page is a candidate for freeing, searching the first memory for tagged memory pages.
-
-
18. A method for increasing performance comprising:
-
sequentially copying a portion of data from a memory device to a memory page;
removing the memory page from free list free of memory pages residing in real memory;
outputting the portion of data from the memory page; and
returning the memory page to the free list based on the portion of data being sequentially copied to the memory page.
-
-
19. A system for increasing performance comprising:
-
storing means for storing at least a portion of a data file to a memory page;
ascertaining means for ascertaining if the memory page is a candidate for freeing by determining means for determining if the memory page is one of a sequence of memory pages containing data from the file, comparing means for comparing an amount of a type of memory pages in a second memory to a memory type threshold value relating to an amount of a type of memory pages in the second memory; and
designating means for designating the memory page as a free memory page based on the memory page being a candidate for freeing. - View Dependent Claims (20, 21, 22)
determining means for determining if a quantity of free memory pages in a memory is below a free memory space threshold value relating to the amount of free memory space in the second memory.
-
-
21. The system recited in claim 19, further comprises:
tagging means for tagging the memory page as a candidate for freeing memory page.
-
22. The system recited in claim 21, wherein the ascertaining means for ascertaining if a memory page is a candidate for freeing further comprises:
searching means for searching the memory for a tagged memory page.
-
23. A system for increasing performance comprising:
-
means for specifying a free memory page;
means for inputting at least a portion of data to be output from a first memory to a memory page;
means for outputting the at least a portion of data output from the memory page;
means for ascertaining if the memory page is a candidate for freeing;
means for designating the memory page as a free memory page based on the memory page being a candidate for freeing; and
means for testing content of a second memory including means for comparing an amount of a type of memory pages in the second memory to a memory type threshold value relating to an amount of a type of memory pages in the second memory. - View Dependent Claims (24, 25, 26, 27, 28, 29)
means for determining if the memory page is one of a sequence of memory pages containing data to be output.
-
-
25. The system recited in claim 23, wherein the second memory is real memory.
-
26. The system recited in claim 23, the means for ascertaining if a memory page is a candidate for freeing, further comprises:
means for determining if a quantity of free memory pages in a second memory is below a free memory space threshold value relating to the amount of free memory space in the second memory.
-
27. The system recited in claim 23, the system further comprises:
-
means for copying at least a portion of the requested data from a second memory to the memory page; and
means for tagging the memory page as a candidate memory page.
-
-
28. The system recited in claim 27, the means for ascertaining if a memory page is a candidate for freeing further comprises:
means for searching the second memory for a tagged memory page.
-
29. The system recited in claim 27, further comprises:
-
means for determining if a total quantity of free memory pages in the second memory is below a free memory space threshold value relating to the amount of free memory space in the first memory;
means for searching the first memory for tagged memory pages based on the total quantity of free memory pages in the first memory being below a free memory space threshold value.
-
-
30. A system for increasing performance comprising:
-
means for specifying a free memory page including means for receiving a request for data to be output, means for accessing a free list containing identities of a plurality of free memory pages in a first memory, means for identifying a memory page from the free list, and means for removing the memory page from the free list of memory pages in the first memory;
means for inputting at least a portion of data to be output from the first memory to the memory page;
means for outputting the at least a portion of data output from the memory page;
means for ascertaining if the memory page is a candidate for freeing; and
means for designating the memory page as a free memory page based on the memory page being a candidate for freeing. - View Dependent Claims (31, 32, 33, 34)
means for determining whether the requested data resides in the second memory.
-
-
32. The system recited in claim 30, the means for assessing the free list the system further comprises:
means for determining whether the free list is empty.
-
33. The system recited in claim 32, further comprises:
means for stealing a substitute memory page from the first memory in response to the free list being empty.
-
34. The system recited in claim 32, further comprises:
-
means for determining a least recently used memory page in the first memory in response to the free list being empty;
means for stealing the least recently used memory page from the first memory; and
means for adding the least recently used memory page to the free list.
-
-
35. A system for increasing performance of acquiring free memory pages comprising:
-
means for sequentially copying a portion of data from a memory device to a memory page;
means for removing the memory page from a list free of memory pages reside in real memory;
means for outputting the portion of data from the memory page; and
means for returning the memory page to the free list based on the portion of data being sequentially copied to the memory page.
-
-
36. A computer program product for increasing performance comprising:
-
storing instruction for storing the at least a portion of data file to a memory page;
ascertaining instruction for ascertaining if the memory page is a candidate for freeing by determining if the memory page is one of a sequence of memory pages containing data from the file, and comparing an amount of a type of memory pages in a second memory to a memory type threshold value relating to the amount of a type of memory pages in the second memory; and
designating instructions for designating the memory page as a free memory page based on the memory page being a candidate for freeing. - View Dependent Claims (37, 38, 39)
determining instructions for determining if a quantity of free memory pages in a memory is below a free memory space threshold value relating to the amount of free memory space in the second memory.
-
-
38. The computer program product recited in claim 36, further comprises:
tagging instructions for tagging the memory page as a candidate memory page.
-
39. The computer program product recited in claim 38, the ascertaining instruction for ascertaining if a memory page is a candidate for freeing further comprises:
searching instructions for searching the memory for a tagged memory page.
-
40. A computer program product for increasing performance of acquiring free memory pages comprising:
-
instruction means for specifying a free memory page;
instruction means for inputting at least a portion of data to be output from a first memory to a memory page;
instruction means for outputting the at least a portion of data output from the memory page;
instruction means for ascertaining if the memory page is a candidate for freeing;
instruction means for designating the memory page as a free memory page based on the memory page being a candidate for freeing; and
instruction means for testing content by comparing an amount of a type of memory pages in a second memory to a memory type threshold value relating to an amount of a type of memory pages in the second memory.
-
-
41. A computer program product for increasing performance of acquiring free memory pages comprising:
-
instruction means for sequentially copying a portion of data from a memory device to a memory page;
instruction means for removing the memory page from a list free of memory pages reside in real memory;
instruction means for outputting the portion of data from the memory page; and
instruction means for returning the memory page to the free list based on the portion of data being sequentially copied to the memory page.
-
Specification