Method for providing dynamic cache management in a computer system
First Claim
1. A method of cache memory management for use with a computer operating system that utilizes a cache management software component whereby physical memory is dynamically shared between the cache system and the operating system, the method comprising the steps of:
- monitoring the operating system to determine the availability of free physical memory and its location;
determining the address of a procedure in the operating system that when called, allocates a free physical memory page to linear memory;
initializing a counter with a value representing the minimum amount of physical memory allocated to the cache management software component;
allocating a portion of the free physical memory to the cache management software component;
de-allocating a portion of free physical memory from the operating system;
delineating a portion of physical memory allocated to the cache memory management software component that cannot be re-allocated to the operating system;
detecting the need for physical memory by the operating system;
monitoring the operating system to detect when said procedure has been or is about to be called by the operating system and there is less than a predetermined amount of free physical memory available;
de-allocating at least a portion of the physical memory allocated to the cache management software component and re-allocating it to the operating system as the detection and monitoring steps require;
determining the values of internal variables of the computer operating system that indicate the quantity of available free physical memory to values that reflect the memory allocation and de-allocation;
decrementing the counter if a particular page of physical memory allocated to the cache memory management software component is to remain allocated and its data retained;
if the counter has been decremented, detecting whether the counter value is negative, in which case the internal variables of the operating system are decremented;
incrementing the counter if a particular page of physical memory allocated to the cache memory management software component contains data that may be discarded and the page reloaded with new data; and
if the counter has been incremented, detecting whether the counter value is negative, in which case the internal variables of the operating system are incremented.
4 Assignments
0 Petitions
Accused Products
Abstract
A method for dynamic caching of data in a disk based operating system whereby physical memory is dynamically shared between the cache management system and the operating system. The operating system is monitored to determine the availability of free physical memory in the computer system and its location therein. A portion of free physical memory may be borrowed from the memory management component of the operating system and allocated to the cache management system for the purpose of increasing the cache memory size. The borrowed physical memory is returned to the memory management software component when needed by the operating system.
-
Citations
10 Claims
-
1. A method of cache memory management for use with a computer operating system that utilizes a cache management software component whereby physical memory is dynamically shared between the cache system and the operating system, the method comprising the steps of:
-
monitoring the operating system to determine the availability of free physical memory and its location; determining the address of a procedure in the operating system that when called, allocates a free physical memory page to linear memory; initializing a counter with a value representing the minimum amount of physical memory allocated to the cache management software component; allocating a portion of the free physical memory to the cache management software component; de-allocating a portion of free physical memory from the operating system; delineating a portion of physical memory allocated to the cache memory management software component that cannot be re-allocated to the operating system; detecting the need for physical memory by the operating system; monitoring the operating system to detect when said procedure has been or is about to be called by the operating system and there is less than a predetermined amount of free physical memory available; de-allocating at least a portion of the physical memory allocated to the cache management software component and re-allocating it to the operating system as the detection and monitoring steps require; determining the values of internal variables of the computer operating system that indicate the quantity of available free physical memory to values that reflect the memory allocation and de-allocation; decrementing the counter if a particular page of physical memory allocated to the cache memory management software component is to remain allocated and its data retained; if the counter has been decremented, detecting whether the counter value is negative, in which case the internal variables of the operating system are decremented; incrementing the counter if a particular page of physical memory allocated to the cache memory management software component contains data that may be discarded and the page reloaded with new data; and if the counter has been incremented, detecting whether the counter value is negative, in which case the internal variables of the operating system are incremented. - View Dependent Claims (2, 3, 4)
-
-
5. A method of cache memory management for use with the Windows®
- operating system that is embodied in a cache memory management software component adapted to emulate or replace the VCache software component whereby physical memory is dynamically shared between the cache memory system and the Windows®
Virtual Machine Manager (VMM), the method comprising the steps of;monitoring the VMM to determine the availability of free physical memory and its location; initializing a counter variable with a value representing the minimum amount of physical memory allocated to the cache management software component; determining the addresses of internal variables in the Windows®
operating system representing DIPhys-- Count and DIUnlock-- Count fields returned by the Virtual Machine Manager (VMM) procedure -- GetDemandPagelnfo, wherein the values of the internal variables are representative of a quantity at least equal to the quantity of free physical memory plus the quantity of physical memory allocated to the cache memory management software component minus the minimum quantity of free physical memory to be allocated to the cache memory management system;allocating a portion of free physical memory to the cache management software component; decrementing the counter if a particular page of physical memory allocated to the cache memory management software component is to remain allocated and its data retained; if the counter has been decremented, detecting whether the counter value is negative, in which case the VMM internal variables are decremented; de-allocating the portion of free physical memory from the VMM; detecting the need for physical memory by the VMM; flushing at least enough cache data to re-allocate physical memory to the VMM as the detection step requires; incrementing the counter if a particular page of physical memory allocated to the cache memory management software component contains data that may be discarded and the page reloaded with new data; and if the counter has been incremented, detecting whether the counter value is negative, in which case the VMM internal variables are incremented. - View Dependent Claims (6, 7, 8, 9, 10)
- operating system that is embodied in a cache memory management software component adapted to emulate or replace the VCache software component whereby physical memory is dynamically shared between the cache memory system and the Windows®
Specification