← Back to Patent Explorer
US5581736A Expired / Lapsed US ⏱️ 0.0 years remaining

Method and system for dynamically sharing RAM between virtual memory and disk cache

Assignee: Microsoft Technology Licensing LLC
•
Filing: 1994-07-18
•
Granted: 1996-12-03
•
Expires: 2014-07-18
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract In a computer system having a processing unit, a primary memory space (RAM) and a secondary memory space (disk), the primary memory space being allocated between a virtual memory portion and a disk cache portion, a method of dynamically adjusting the allocation of the primary memory space. The number of times that the processing unit accesses the secondary memory space in a predetermined time period is measured. Next, it is determined whether an adjustment to the allocation of the primary memory space would reduce the number of times that the secondary memory space is accessed by the processing unit. If it is determined that an adjustment to the allocation of the primary memory space would reduce the number of times that the secondary memory space is accessed by the processing unit, then the allocation of the primary memory space will be adjusted by increasing the portion allocated to either virtual memory or disk cache, and decreasing the portion allocated to the other.

Inventors

  • 👤 Brian J. Smith

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-11-06 20:06
CPC Classifications
G; G06; G06F; G06F12/00; G06F12/02; G06F12/08; G06F12/0802; G06F12/0866; G06F2212/00; G06F2212/31; G06F2212/311

Claims Analysis

Total Claims: 25
Claim 1
Independent Claim 268 words
A computer system, comprising: a processing unit; a primary memory space coupled to said processing unit, said primary memory space including a first portion allocated for virtual memory and a second portion allocated for disk cache, said virtual memory including a first set of least recently used pages of information and said disk cache including a second set of least recently used pages of information; a secondary memory space coupled to said processing unit, said secondary memory space including a plurality of paging files having a set of pages recently discarded from said virtual memory, said secondary memory space further including a plurality of data files having a set of pages recently discarded from said disk cache; said processing unit responsive to computer-implemented instructions to dynamically adjust the allocation of said primary memory space between said virtual memory and said disk cache by conducting the steps of: (i) measuring the number of times that said processing unit accesses a subset of the pages recently discarded from said virtual memory within a predetermined time interval; (ii) measuring the number of times that said processing unit accesses a subset of the least recently used pages in said disk cache within said predetermined time interval; (iii) if the number of times that said processing unit accesses the subset of the pages recently discarded from said virtual memory within said predetermined time interval is not equal to the number of times that said processing unit accesses the subset of the least recently used pages in said disk cache within said predetermined time interval, then adjusting the allocation of said primary memory space.
Claim 2
Dependent Claim 268 words
A computer system, comprising: a processing unit; a primary memory space coupled to said processing unit, said primary memory space including a first portion allocated for virtual memory and a second portion allocated for disk cache, said virtual memory including a first set of least recently used pages of information and said disk cache including a second set of least recently used pages of information; a secondary memory space coupled to said processing unit, said secondary memory space including a plurality of paging files having a set of pages recently discarded from said virtual memory, said secondary memory space further including a plurality of data files having a set of pages recently discarded from said disk cache; said processing unit responsive to computer-implemented instructions to dynamically adjust the allocation of said primary memory space between said virtual memory and said disk cache by conducting the steps of: (i) measuring the number of times that said processing unit accesses a subset of the pages recently discarded from said virtual memory within a predetermined time interval; (ii) measuring the number of times that said processing unit accesses a subset of the least recently used pages in said disk cache within said predetermined time interval; (iii) if the number of times that said processing unit accesses the subset of the pages recently discarded from said virtual memory within said predetermined time interval is not equal to the number of times that said processing unit accesses the subset of the least recently used pages in said disk cache within said predetermined time interval, then adjusting the allocation of said primary memory space.
Claim 3
Dependent Claim 91 words
The computer system of claim 1, wherein said adjusting step further comprises: if the number of times that said processing unit accesses the subset of the pages recently discarded from said virtual memory within said predetermined time interval is greater than the number of times that said processing unit accesses the subset of the least recently used pages in said disk cache within said predetermined time interval, then increasing the size of said virtual memory by a predetermined amount and decreasing the size of said disk cache by said predetermined amount.
Claim 4
Dependent Claim 29 words
The computer system of claim 2, wherein said predetermined amount is equal to the number of pages in the subset of the pages recently discarded from said virtual memory.
Claim 5
Dependent Claim 91 words
The computer system of claim 1, wherein said adjusting step further comprises: if the number of times that said processing unit accesses the subset of the pages recently discarded from said virtual memory within said predetermined time interval is less than the number of times that said processing unit accesses the subset of the least recently used pages in said disk cache within said predetermined time interval, then increasing the size of said disk cache by a predetermined amount and decreasing the size of said virtual memory by said predetermined amount.
Claim 6
Dependent Claim 30 words
The computer system of claim 4, wherein said predetermined amount is equal to the number of pages in the subset of the least recently used pages in said disk cache.
Claim 7
Dependent Claim 43 words
The computer system of claim 5, wherein the number of pages in the subset of the pages recently discarded from said virtual memory is equal to the number of pages in the subset of the least recently used pages in said disk cache.
Claim 8
Dependent Claim 26 words
The computer system of claim 6, wherein the number of pages in the subset of the pages recently discarded from virtual memory is approximately 26 pages.
Claim 9
Dependent Claim 15 words
The computer system of claim 1, wherein said predetermined time interval is approximately 1 second.
Claim 10
Dependent Claim 268 words
A computer system, comprising: a processing unit; a primary memory space coupled to said processing unit, said primary memory space including a first portion allocated for virtual memory and a second portion allocated for disk cache, said virtual memory including a first set of least recently used pages of information and said disk cache including a second set of least recently used pages of information; a secondary memory space coupled to said processing unit, said secondary memory space including a plurality of paging files having a set of pages recently discarded from said virtual memory, said secondary memory space further including a plurality of data files having a set of pages recently discarded from said disk cache; said processing unit responsive to computer-implemented instructions to dynamically adjust the allocation of said primary memory space between said virtual memory and said disk cache by conducting the steps of: (i) measuring the number of times that said processing unit accesses a subset of the pages recently discarded from said disk cache within a predetermined time interval; (ii) measuring the number of times that said processing unit accesses a subset of the least recently used pages in said virtual memory within said predetermined time interval; (iii) if the number of times that said processing unit accesses the subset of the pages recently discarded from said disk cache within said predetermined time interval is not equal to the number of times that said processing unit accesses the subset of the least recently used pages in said virtual memory within said predetermined time interval, then adjusting the allocation of said primary memory space.
Claim 11
Dependent Claim 268 words
A computer system, comprising: a processing unit; a primary memory space coupled to said processing unit, said primary memory space including a first portion allocated for virtual memory and a second portion allocated for disk cache, said virtual memory including a first set of least recently used pages of information and said disk cache including a second set of least recently used pages of information; a secondary memory space coupled to said processing unit, said secondary memory space including a plurality of paging files having a set of pages recently discarded from said virtual memory, said secondary memory space further including a plurality of data files having a set of pages recently discarded from said disk cache; said processing unit responsive to computer-implemented instructions to dynamically adjust the allocation of said primary memory space between said virtual memory and said disk cache by conducting the steps of: (i) measuring the number of times that said processing unit accesses a subset of the pages recently discarded from said disk cache within a predetermined time interval; (ii) measuring the number of times that said processing unit accesses a subset of the least recently used pages in said virtual memory within said predetermined time interval; (iii) if the number of times that said processing unit accesses the subset of the pages recently discarded from said disk cache within said predetermined time interval is not equal to the number of times that said processing unit accesses the subset of the least recently used pages in said virtual memory within said predetermined time interval, then adjusting the allocation of said primary memory space.
Claim 12
Dependent Claim 91 words
The computer system of claim 9, wherein said adjusting step further comprises: if the number of times that said processing unit accesses the subset of the pages recently discarded from said disk cache within said predetermined time interval is greater than the number of times that said processing unit accesses the subset of the least recently used pages in said virtual memory within said predetermined time interval, then increasing the size of said disk cache by a predetermined amount and decreasing the size of said virtual memory by said predetermined amount.
Claim 13
Dependent Claim 91 words
The computer system of claim 9, wherein said adjusting step further comprises: if the number of times that said processing unit accesses the subset of the pages recently discarded from said disk cache within said predetermined time interval is less than the number of times that said processing unit accesses the subset of the least recently used pages in said virtual memory within said predetermined time interval, then increasing the size of said virtual memory by a predetermined amount and decreasing the size of said disk cache by said predetermined amount.
Claim 14
Dependent Claim 278 words
In a computer system having a processing unit, a primary memory space and a secondary memory space, said primary memory space being allocated between virtual memory and disk cache, said virtual memory including a first set of least recently used pages of information and said disk cache including a second set of least recently used pages of information, said secondary memory space including a plurality of paging files having a set of pages recently discarded from said virtual memory, said secondary memory space further including a plurality of data files having a set of pages recently discarded from said disk cache, a method of dynamically adjusting the allocation of said primary memory space between said virtual memory and said disk cache, said method comprising the steps of: measuring the number of times that a subset of the pages recently discarded from said disk cache is accessed within a predetermined time interval to provide a first measurement; measuring the number of times that a subset of the least recently used pages in said disk cache is accessed within said predetermined time interval to provide a second measurement; measuring the number of times that a subset of the pages recently discarded from said virtual memory is accessed within said predetermined time interval to provide a third measurement; measuring the number of times that a subset of the least recently used pages in said virtual memory is accessed within said predetermined time interval to provide a fourth measurement; if the difference between the first measurement and the fourth measurement does not equal the difference between the second measurement and the third measurement, then adjusting the allocation of said primary memory space.
Claim 15
Dependent Claim 278 words
In a computer system having a processing unit, a primary memory space and a secondary memory space, said primary memory space being allocated between virtual memory and disk cache, said virtual memory including a first set of least recently used pages of information and said disk cache including a second set of least recently used pages of information, said secondary memory space including a plurality of paging files having a set of pages recently discarded from said virtual memory, said secondary memory space further including a plurality of data files having a set of pages recently discarded from said disk cache, a method of dynamically adjusting the allocation of said primary memory space between said virtual memory and said disk cache, said method comprising the steps of: measuring the number of times that a subset of the pages recently discarded from said disk cache is accessed within a predetermined time interval to provide a first measurement; measuring the number of times that a subset of the least recently used pages in said disk cache is accessed within said predetermined time interval to provide a second measurement; measuring the number of times that a subset of the pages recently discarded from said virtual memory is accessed within said predetermined time interval to provide a third measurement; measuring the number of times that a subset of the least recently used pages in said virtual memory is accessed within said predetermined time interval to provide a fourth measurement; if the difference between the first measurement and the fourth measurement does not equal the difference between the second measurement and the third measurement, then adjusting the allocation of said primary memory space.
Claim 16
Dependent Claim 54 words
The method of claim 12, wherein said adjusting step further comprises the step of: if the difference between the first measurement and the fourth measurement is greater than the difference between the second measurement and the third measurement, then increasing the size of said disk cache and decreasing the size of said virtual memory.
Claim 17
Dependent Claim 54 words
The method of claim 12, wherein said adjusting step further comprises the step of: if the difference between the first measurement and the fourth measurement is less than the difference between the second measurement and the third measurement, then increasing the size of said virtual memory and decreasing the size of said disk cache.
Claim 18
Dependent Claim 284 words
In a computer system having a processing unit, a primary memory space and a secondary memory space, said primary memory space being allocated between virtual memory and disk cache, a method of dynamically adjusting the allocation of said primary memory space between virtual memory and disk cache, said method comprising the steps of: (A) measuring a performance level of the computer system; (B) determining whether an adjustment to the allocation of said primary memory space would improve the performance level of the computer system by: (B1) measuring the number of times that a subset of pages recently discarded from the disk cache is accessed within a predetermined time interval to provide a first measurement; (B2) measuring the number of times that a subset of least recently used pages in the disk cache is accessed within said predetermined time interval to provide a second measurement; (B3) measuring the number of times that a subset of pages recently discarded from the virtual memory is accessed within said predetermined time interval to provide a third measurement; and (B4) measuring the number of times that a subset of least recently used pages in the virtual memory is accessed within said predetermined time interval to provide a fourth measurement; and (C) if said first measurement is greater than said fourth measurement, then: (C1) if the difference between said first measurement and said fourth measurement is greater than the difference between said second measurement and said third measurement, then increasing the size of the disk cache; and (C2) if the difference between said first measurement and said fourth measurement is less than the difference between said second measurement and said third measurement, then increasing the size of the virtual memory.
Claim 19
Dependent Claim 284 words
In a computer system having a processing unit, a primary memory space and a secondary memory space, said primary memory space being allocated between virtual memory and disk cache, a method of dynamically adjusting the allocation of said primary memory space between virtual memory and disk cache, said method comprising the steps of: (A) measuring a performance level of the computer system; (B) determining whether an adjustment to the allocation of said primary memory space would improve the performance level of the computer system by: (B1) measuring the number of times that a subset of pages recently discarded from the disk cache is accessed within a predetermined time interval to provide a first measurement; (B2) measuring the number of times that a subset of least recently used pages in the disk cache is accessed within said predetermined time interval to provide a second measurement; (B3) measuring the number of times that a subset of pages recently discarded from the virtual memory is accessed within said predetermined time interval to provide a third measurement; and (B4) measuring the number of times that a subset of least recently used pages in the virtual memory is accessed within said predetermined time interval to provide a fourth measurement; and (C) if said first measurement is greater than said fourth measurement, then: (C1) if the difference between said first measurement and said fourth measurement is greater than the difference between said second measurement and said third measurement, then increasing the size of the disk cache; and (C2) if the difference between said first measurement and said fourth measurement is less than the difference between said second measurement and said third measurement, then increasing the size of the virtual memory.
Claim 20
Dependent Claim 284 words
In a computer system having a processing unit, a primary memory space and a secondary memory space, said primary memory space being allocated between virtual memory and disk cache, a method of dynamically adjusting the allocation of said primary memory space between virtual memory and disk cache, said method comprising the steps of: (A) measuring a performance level of the computer system; (B) determining whether an adjustment to the allocation of said primary memory space would improve the performance level of the computer system by: (B1) measuring the number of times that a subset of pages recently discarded from the disk cache is accessed within a predetermined time interval to provide a first measurement; (B2) measuring the number of times that a subset of least recently used pages in the disk cache is accessed within said predetermined time interval to provide a second measurement; (B3) measuring the number of times that a subset of pages recently discarded from the virtual memory is accessed within said predetermined time interval to provide a third measurement; and (B4) measuring the number of times that a subset of least recently used pages in the virtual memory is accessed within said predetermined time interval to provide a fourth measurement; and (C) if said third measurement is greater than said second measurement, then: (C1) if the difference between said first measurement and said fourth measurement is greater than the difference between said second measurement and said third measurement, then increasing the size of the disk cache; and (C2) if the difference between said first measurement and said fourth measurement is less than the difference between said second measurement and said third measurement, then increasing the size of the virtual memory.
Claim 21
Dependent Claim 284 words
In a computer system having a processing unit, a primary memory space and a secondary memory space, said primary memory space being allocated between virtual memory and disk cache, a method of dynamically adjusting the allocation of said primary memory space between virtual memory and disk cache, said method comprising the steps of: (A) measuring a performance level of the computer system; (B) determining whether an adjustment to the allocation of said primary memory space would improve the performance level of the computer system by: (B1) measuring the number of times that a subset of pages recently discarded from the disk cache is accessed within a predetermined time interval to provide a first measurement; (B2) measuring the number of times that a subset of least recently used pages in the disk cache is accessed within said predetermined time interval to provide a second measurement; (B3) measuring the number of times that a subset of pages recently discarded from the virtual memory is accessed within said predetermined time interval to provide a third measurement; and (B4) measuring the number of times that a subset of least recently used pages in the virtual memory is accessed within said predetermined time interval to provide a fourth measurement; and (C) if said third measurement is greater than said second measurement, then: (C1) if the difference between said first measurement and said fourth measurement is greater than the difference between said second measurement and said third measurement, then increasing the size of the disk cache; and (C2) if the difference between said first measurement and said fourth measurement is less than the difference between said second measurement and said third measurement, then increasing the size of the virtual memory.
Claim 22
Dependent Claim 239 words
A primary memory storage device for a computer program, said primary memory storage device being allocated between virtual memory and disk cache, said virtual memory including a first set of least recently used pages of information and said disk cache including a second set of least recently used pages of information, said primary memory storage device storing a computer program that provides a method of dynamically adjusting the allocation of said primary memory storage device between said virtual memory and said disk cache, said method comprising the steps of: measuring the number of times that a subset of pages recently discarded from said disk cache is accessed within a predetermined time interval to provide a first measurement; measuring the number of times that a subset of the least recently used pages in said disk cache is accessed within said predetermined time interval to provide a second measurement; measuring the number Of times that a subset of pages recently discarded from said virtual memory is accessed within said predetermined time interval to provide a third measurement; measuring the number of times that a subset of the least recently used pages in said virtual memory is accessed within said predetermined time interval to provide a fourth measurement; if the difference between the first measurement and the fourth measurement does not equal the difference between the second measurement and the third measurement, then adjusting the allocation of said primary memory storage device.
Claim 23
Dependent Claim 239 words
A primary memory storage device for a computer program, said primary memory storage device being allocated between virtual memory and disk cache, said virtual memory including a first set of least recently used pages of information and said disk cache including a second set of least recently used pages of information, said primary memory storage device storing a computer program that provides a method of dynamically adjusting the allocation of said primary memory storage device between said virtual memory and said disk cache, said method comprising the steps of: measuring the number of times that a subset of pages recently discarded from said disk cache is accessed within a predetermined time interval to provide a first measurement; measuring the number of times that a subset of the least recently used pages in said disk cache is accessed within said predetermined time interval to provide a second measurement; measuring the number Of times that a subset of pages recently discarded from said virtual memory is accessed within said predetermined time interval to provide a third measurement; measuring the number of times that a subset of the least recently used pages in said virtual memory is accessed within said predetermined time interval to provide a fourth measurement; if the difference between the first measurement and the fourth measurement does not equal the difference between the second measurement and the third measurement, then adjusting the allocation of said primary memory storage device.
Claim 24
Dependent Claim 60 words
The primary memory storage device of claim 17, wherein said adjusting step of said method further comprises the step of: if the difference between the first measurement and the fourth measurement is greater than the difference between the second measurement and the third measurement, then increasing the size of said disk cache and decreasing the size of said virtual memory.
Claim 25
Dependent Claim 60 words
The primary memory storage device of claim 17, wherein said adjusting step of said method further comprises the step of: if the difference between the first measurement and the fourth measurement is less than the difference between the second measurement and the third measurement, then increasing the size of said virtual memory and decreasing the size of said disk cache.

References Cited (Backward Citations)

US4463424A Cited
US4503501A Cited
US5307473A Cited
US5345584A Cited
US5420998A Cited
US5434992A Cited

USPTO Annuity & Maintenance Windows

Annuity Stage Window Opens Payment Deadline Surcharge Period Until Estimated Fee Status
3.5 Years (Year 4) 1999-12-03 2000-06-03 2000-12-03 $2000.00 Window Closed / Lapsed
7.5 Years (Year 8) 2003-12-03 2004-06-03 2004-12-03 $3760.00 Window Closed / Lapsed
11.5 Years (Year 12) 2007-12-03 2008-06-03 2008-12-03 $7700.00 Window Closed / Lapsed

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag