← Back to Patent Explorer
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
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

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 12:49
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.

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

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag