Patent US5392415A successfully refreshed from Google Patents.
US5392415A
Expired / Lapsed
US
⏱️ 0.0 years remaining
System for grouping non-contiguous pages belonging to a storage object for page out
Assignee: International Business Machines Corp
•
Filing: 1992-12-15
•
Granted: 1995-02-21
•
Expires: 2012-12-15
Abstract
Abstract A method for assembling swap blocks of virtual pages for transfer between a backing store and physical memory in a data processing system. The method includes segregating all virtual pages resident in physical memory between an active list and an inactive list. Virtual pages are then assigned to the inactive list by groups where each page in a group belongs to a single owning task or object. From a group, virtual pages are assigned to a swap block based upon correlation of most recent use. The swap block may then be paged out in a single operation to a backing store. A list of the group members is kept to permit page in to physical memory upon reference to a member of the swap block.
Inventors
- 👤 Peter R. Badovinatz
- 👤 Larry Brenner
- 👤 Jeffrey R. Hedglin
- 👤 Barry P. Lubart
- 👤 Patrick O'Rourke
- 👤 Angelo Pruscino
Bibliographic Details
Application Number
—
Jurisdiction
US
Data Source
google_patents
Last Synchronized
2026-11-05 22:05
CPC Classifications
G; G06; G06F; G06F12/00; G06F12/02; G06F12/08; G06F12/12; G06F12/121; G06F12/123; Y; Y10; Y10S; Y10S707/00; Y10S707/99951; Y10S707/99952; Y10S707/99953; Y10S707/99955
Claims Analysis
Total Claims: 18
Claim 1
Independent Claim
168 words
A method for assembling swap blocks of virtual pages for a virtual storage system of a data processing system including a plurality of virtual pages and a physical memory, the method comprising the steps of: dividing all virtual pages resident in physical memory among one of an active list and an inactive list; organizing virtual pages assigned to the inactive list by groups with a single owning process for each group; within each group, assigning virtual pages to a swap block where most recent use of each virtual page is correlated in time; paging out a particular swap block in a single output operation to auxiliary storage; maintaining a membership list for the particular swap block for page in to physical memory upon reference to any virtual page assigned to the particular swap block; within each group, identifying virtual pages which are duplicated in the auxiliary storage; and releasing space in physical memory occupied by the identified virtual pages without assigning the virtual pages to a swap block.
Claim 2
Independent Claim
168 words
A method for assembling swap blocks of virtual pages for a virtual storage system of a data processing system including a plurality of virtual pages and a physical memory, the method comprising the steps of: dividing all virtual pages resident in physical memory among one of an active list and an inactive list; organizing virtual pages assigned to the inactive list by groups with a single owning process for each group; within each group, assigning virtual pages to a swap block where most recent use of each virtual page is correlated in time; paging out a particular swap block in a single output operation to auxiliary storage; maintaining a membership list for the particular swap block for page in to physical memory upon reference to any virtual page assigned to the particular swap block; within each group, identifying virtual pages which are duplicated in the auxiliary storage; and releasing space in physical memory occupied by the identified virtual pages without assigning the virtual pages to a swap block.
Claim 3
Dependent Claim
33 words
A method as set forth in claim 1, wherein the step of dividing includes, responsive to reference of a virtual page within a selectable period, placing the virtual page in the active list.
Claim 4
Dependent Claim
38 words
A method as set forth in claim 2, wherein the step of dividing includes periodically scanning the active list and moving to the inactive list all virtual pages encountered which have not been referenced within the selectable period.
Claim 5
Dependent Claim
22 words
A method as set forth in claim 3, and further comprising: responsive to dynamic demand for physical memory, changing the selectable period.
Claim 6
Dependent Claim
24 words
A method as set forth in claim 1, wherein the step of assigning is executed in response to demand for space in physical memory.
Claim 7
Dependent Claim
44 words
A method as set forth in claim 5, the method further comprising the steps of: listing unassigned frames of physical memory on a free list; and adding frames formerly occupied by virtual pages to the free list upon page out of the virtual pages.
Claim 8
Dependent Claim
32 words
A method as set forth in claim 1, wherein the inactive list is a doubly linked list of processes and virtual pages are attached to the processes in a singly linked list.
Claim 9
Dependent Claim
45 words
A method as set forth in claim 1, and further comprising: associating each frame of the physical memory with a virtual page data structure; allocating virtual page data structures to tasks upon demand; and maintaining a reference history for each allocated virtual page data structure.
Claim 10
Dependent Claim
116 words
A method as set forth in claim 8, wherein the step of dividing all virtual pages resident in physical memory among one of an active list and an inactive list includes: upon initial allocation, assigning a virtual page data structure to the active list; periodically scanning the active list to update the reference history of each virtual page data structure in the active list; during scanning of a particular virtual page data structure, referring to the reference history for the particular virtual page data structure; responsive to recent reference, keeping allocated virtual page data structures on the active list; and responsive to lack of recent reference, moving allocated virtual page data structures to the inactive list.
Claim 11
Dependent Claim
195 words
A memory manager for a virtual storage system in a computer having a plurality of frames of physical memory and a backing store, wherein the virtual storage system provides a map from virtual pages to frames in physical memory and to locations in the backing store, the memory manager comprising: means for segregating all virtual pages resident in physical memory between an active list and an inactive list; means for organizing virtual pages in the inactive list by groups where each virtual page in a group belongs to a single owning task; means for assigning virtual pages from a group to swap blocks based upon time correlation of most recent use; means for paging out a particular swap block in a single operation to the backing store; means for maintaining lists of the membership of each swap block to permit page in of the particular swap block to physical memory upon reference to any member of the particular swap block; means for identifying a virtual page duplicating data at a location in the backing store; and means for releasing space in physical memory occupied by the identified virtual page without page out of the data.
Claim 12
Dependent Claim
195 words
A memory manager for a virtual storage system in a computer having a plurality of frames of physical memory and a backing store, wherein the virtual storage system provides a map from virtual pages to frames in physical memory and to locations in the backing store, the memory manager comprising: means for segregating all virtual pages resident in physical memory between an active list and an inactive list; means for organizing virtual pages in the inactive list by groups where each virtual page in a group belongs to a single owning task; means for assigning virtual pages from a group to swap blocks based upon time correlation of most recent use; means for paging out a particular swap block in a single operation to the backing store; means for maintaining lists of the membership of each swap block to permit page in of the particular swap block to physical memory upon reference to any member of the particular swap block; means for identifying a virtual page duplicating data at a location in the backing store; and means for releasing space in physical memory occupied by the identified virtual page without page out of the data.
Claim 13
Dependent Claim
60 words
A memory manager as set forth in claim 10, and further comprising: a virtual page data structure means for associating with each frame of the physical memory; means for allocating virtual page data structures to virtual pages owned by a task upon demand by the task; and means for storing a reference history for each allocated virtual page data structure.
Claim 14
Dependent Claim
92 words
A memory manager as set forth in claim 11, wherein the means for segregating further includes: means responsive to allocation of a virtual page data structure for assigning the virtual page data structure to the active list; means for scanning the active list to update the stored reference history of each virtual page data structure in the active list; and means for scanning the stored reference history of a particular virtual page data structure and, responsive to lack of recent reference, moving said particular virtual page data structure to the inactive list.
Claim 15
Dependent Claim
35 words
A memory manager as set forth in claim 12, wherein the inactive list is a doubly linked list of processes and virtual pages are attached to the processes in a singly linked list as listed.
Claim 16
Dependent Claim
23 words
A memory manager as set forth in claim 10, wherein the means for assigning is responsive to demand for space in physical memory.
Claim 17
Dependent Claim
53 words
A memory manager as set forth in claim 14, further comprising: means for listing unassigned frames of physical memory on a free list; and means for adding frames formerly occupied by virtual pages to the free list upon paging out of the virtual pages from the frames or upon release of the frames.
Claim 18
Dependent Claim
93 words
A memory manager as set forth in claim 10, wherein the means for assigning further include: means for determining a least recently used virtual page for an object and for including the least recently used virtual page in a swap block; means for determining a time of use difference between the least recently used virtual page and each subsequently used virtual page for the object; and responsive to the time difference for a subsequently used virtual page being less than a predetermined maximum, including the subsequently used virtual page in the swap block.
References Cited (Backward Citations)
US4084227A
Cited
US4432057A
Cited
US4636946A
Cited
US4493034A
Cited
US4660130A
Cited
US4779191A
Cited
US4821185A
Cited
US4967353A
Cited
US5239643A
Cited
US4942541A
Cited
US5293599A
Cited
US5159678A
Cited
US5247687A
Cited
US5274813A
Cited
US5237673A
Cited
US5269013A
Cited
USPTO Annuity & Maintenance Windows
| Annuity Stage | Window Opens | Payment Deadline | Surcharge Period Until | Estimated Fee | Status |
|---|---|---|---|---|---|
| 3.5 Years (Year 4) | 1998-02-20 | 1998-08-22 | 1999-02-21 | $2000.00 | Window Closed / Lapsed |
| 7.5 Years (Year 8) | 2002-02-20 | 2002-08-22 | 2003-02-21 | $3760.00 | Window Closed / Lapsed |
| 11.5 Years (Year 12) | 2006-02-20 | 2006-08-22 | 2007-02-21 | $7700.00 | Window Closed / Lapsed |