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

Memory management techniques for on-line replaceable software

Assignee: Hewlett Packard Enterprise Development LP
•
Filing: 1998-07-21
•
Granted: 2001-03-06
•
Expires: 2018-07-21
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract A system for managing the memory of a software component, such as a software library, such that the state of the software component is preserved after an update to the software component. There are two special types of memory allocated within the software component: transient memory and enduring memory. Memory needed to be preserved between two calls of the library is allocated as enduring memory. Transient memory persists until it is freed or when the software component is deleted, whichever comes first. Upon updating to a new version of a software component, the transient memory is released, while the enduring memory is preserved for use by the new version.

Inventors

  • 👤 Michael L. Saboff

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-11-03 23:19
CPC Classifications
G; G06; G06F; G06F8/00; G06F8/60; G06F8/65; G06F8/656

Claims Analysis

Total Claims: 25
Claim 1
Independent Claim 121 words
A computer program stored in a machine-readable form for managing memory in a digital computer to support the replacing of a software component, the program comprising: a means for allocating a block of memory as enduring memory for use by a software component; a means for deallocating a block of memory previously allocated as enduring memory; and an enduring memory data structure comprising zero or more enduring memory entries, each enduring memory entry indicating enduring memory allocated by the allocating means and not yet deallocated by the deallocating means, the enduring memory data structure accessible by the software component after the replacement of the software component, so as to allow the software component access to enduring memory allocated before the replacement.
Claim 2
Dependent Claim 121 words
A computer program stored in a machine-readable form for managing memory in a digital computer to support the replacing of a software component, the program comprising: a means for allocating a block of memory as enduring memory for use by a software component; a means for deallocating a block of memory previously allocated as enduring memory; and an enduring memory data structure comprising zero or more enduring memory entries, each enduring memory entry indicating enduring memory allocated by the allocating means and not yet deallocated by the deallocating means, the enduring memory data structure accessible by the software component after the replacement of the software component, so as to allow the software component access to enduring memory allocated before the replacement.
Claim 3
Dependent Claim 29 words
A program according to claim 1 , further comprising a means for re-establishing after the replacement of the software component a connection to enduring memory allocated before the replacement.
Claim 4
Dependent Claim 98 words
A program according to claim 1 , further comprising: a second allocating means for allocating a block of memory as transient memory for use by a software component; a second deallocating means for deallocating a block of memory previously allocated as transient memory; a transient memory data structure indicating transient memory allocated by the second allocating means and not yet deallocated by the second deallocating means; and a means for cleaning up all transient memory by deallocating using the second deallocating means all transient memory indicated by the transient memory data structure upon replacement of the software component.
Claim 5
Dependent Claim 17 words
A program according to claim 2 , wherein the enduring memory data structure is a linked list.
Claim 6
Dependent Claim 17 words
A program according to claim 3 , wherein the transient memory data structure is a linked list.
Claim 7
Dependent Claim 37 words
A program according to claim 1 , wherein each enduring memory entry includes an allocation identifier for marking an enduring memory entry, so that the enduring memory entry can be discovered by the software component after replacement.
Claim 8
Dependent Claim 15 words
A program according to claim 1 , where the software component comprises a software library.
Claim 9
Dependent Claim 15 words
A program according to claim 1 , where the software component comprises an executable program.
Claim 10
Dependent Claim 17 words
A program according to claim 1 , where the software component comprises a dynamically linked kernel module.
Claim 11
Dependent Claim 162 words
A software system for managing the memory of a replaceable software component, the system comprising: a digital computer with memory; a means for allocating the memory of the digital computer; a means for deallocating memory previously allocated by the allocating means; a software component; and a means for managing memory for the replaceable software component, the means comprising: a second allocating means for allocating a block of memory as enduring memory by use of the first allocating means for use by the software component, a second deallocating means for deallocating a block of memory previously allocated as enduring memory by use of the second allocating means; and an enduring memory data structure indicating enduring memory allocated by the second allocating means and not yet deallocated by the second deallocating means, the enduring memory data structure accessible by the software component after the replacement of the software component, so as to allow the software component access to enduring memory allocated before the replacement.
Claim 12
Dependent Claim 162 words
A software system for managing the memory of a replaceable software component, the system comprising: a digital computer with memory; a means for allocating the memory of the digital computer; a means for deallocating memory previously allocated by the allocating means; a software component; and a means for managing memory for the replaceable software component, the means comprising: a second allocating means for allocating a block of memory as enduring memory by use of the first allocating means for use by the software component, a second deallocating means for deallocating a block of memory previously allocated as enduring memory by use of the second allocating means; and an enduring memory data structure indicating enduring memory allocated by the second allocating means and not yet deallocated by the second deallocating means, the enduring memory data structure accessible by the software component after the replacement of the software component, so as to allow the software component access to enduring memory allocated before the replacement.
Claim 13
Dependent Claim 93 words
A memory management method for preserving the state of a software component between updates of the software component, the software component available in a first and a second version, the method comprising the steps of: allocating enduring memory in the first version of the software component; upgrading to the second version of the software component without freeing the enduring memory and without retaining the first version of the software component; and accessing the enduring memory allocated in the first version of the software component when executing the second version of the software component.
Claim 14
Dependent Claim 93 words
A memory management method for preserving the state of a software component between updates of the software component, the software component available in a first and a second version, the method comprising the steps of: allocating enduring memory in the first version of the software component; upgrading to the second version of the software component without freeing the enduring memory and without retaining the first version of the software component; and accessing the enduring memory allocated in the first version of the software component when executing the second version of the software component.
Claim 15
Dependent Claim 29 words
A memory management method according to claim 11 , wherein the step of allocating enduring memory includes maintaining an enduring memory data structure to manage the allocated enduring memory.
Claim 16
Dependent Claim 150 words
A memory management method for preserving the state of a software component between updates of the software component, the software component available in a first and a second version, the method comprising the steps of: allocating enduring memory in the first version of the software component; maintaining an enduring memory data structure to manage the allocated enduring memory; replacing the first version of the software component with the second version of the software component without freeing the enduring memory; re-establishing a connection between the second version of the software component and the enduring memory by iterating through the enduring memory data structure, so as to make the enduring memory allocated by the first version of the software component available to the second version of the software component; and accessing the enduring memory allocated in the first version of the software component when executing the second version of the software component.
Claim 17
Dependent Claim 150 words
A memory management method for preserving the state of a software component between updates of the software component, the software component available in a first and a second version, the method comprising the steps of: allocating enduring memory in the first version of the software component; maintaining an enduring memory data structure to manage the allocated enduring memory; replacing the first version of the software component with the second version of the software component without freeing the enduring memory; re-establishing a connection between the second version of the software component and the enduring memory by iterating through the enduring memory data structure, so as to make the enduring memory allocated by the first version of the software component available to the second version of the software component; and accessing the enduring memory allocated in the first version of the software component when executing the second version of the software component.
Claim 18
Dependent Claim 31 words
A memory management method according to claim 13 , wherein the step of using the enduring memory includes locating the enduring memory by using the connection established in the re-establishing step.
Claim 19
Dependent Claim 108 words
A memory management method for preserving the state of a software component between updates of the software component, the software component available in a first and a second version, the method comprising the steps of: allocating enduring memory in the first version of the software component; allocating transient memory in the first version of the software component; upgrading to the second version of the software component without freeing the enduring memory; deallocating all of the transient memory in the first version of the software component; and accessing the enduring memory allocated in the first version of the software component when executing the second version of the software component.
Claim 20
Dependent Claim 108 words
A memory management method for preserving the state of a software component between updates of the software component, the software component available in a first and a second version, the method comprising the steps of: allocating enduring memory in the first version of the software component; allocating transient memory in the first version of the software component; upgrading to the second version of the software component without freeing the enduring memory; deallocating all of the transient memory in the first version of the software component; and accessing the enduring memory allocated in the first version of the software component when executing the second version of the software component.
Claim 21
Dependent Claim 65 words
A memory management method according to claim 15 , wherein: the step of allocating transient memory in the first version of the software component includes maintaining the transient memory in a data structure; and the step of deallocating the transient memory in the first version of the software component includes iterating through the transient memory data structure to locate all transient memory to be deallocated.
Claim 22
Dependent Claim 154 words
A memory management method for preserving the state of a software component between updates of the software component, the software component available in a first and a second version, the method comprising the steps of: making a first request to allocate enduring memory in the first version of the software component, the first request including an allocation identifier; allocating an enduring memory block marked with the allocation identifier of the first request; upgrading to the second version of the software component; making a second request to allocate enduring memory in the second version of the software component, the second request including an allocation identifier and an indication of a preference for reuse; and if any enduring memory block is marked with an allocation identifier that matches the allocation identifier of the second request, returning the matching enduring memory block, otherwise allocating an enduring memory block marked with the allocation identifier of the second request.
Claim 23
Dependent Claim 154 words
A memory management method for preserving the state of a software component between updates of the software component, the software component available in a first and a second version, the method comprising the steps of: making a first request to allocate enduring memory in the first version of the software component, the first request including an allocation identifier; allocating an enduring memory block marked with the allocation identifier of the first request; upgrading to the second version of the software component; making a second request to allocate enduring memory in the second version of the software component, the second request including an allocation identifier and an indication of a preference for reuse; and if any enduring memory block is marked with an allocation identifier that matches the allocation identifier of the second request, returning the matching enduring memory block, otherwise allocating an enduring memory block marked with the allocation identifier of the second request.
Claim 24
Dependent Claim 145 words
A utility to manage the replacement of an implementation library embodied in a computer, the implementation library including one or more state variables, each state variable having a respective value, and the values of the state variables together defining a state of the implementation library, the utility comprising: a software means for managing the memory allocation of the implementation library so that the state of the implementation library can be restored upon update of the implementation library; a software means for managing the loading and unloading of implementation libraries while maintaining program correctness; and a service registry including at least one entry for mapping a user application of the implementation library to the implementation library, so that the implementation library can be modified while the user application is executing, thereby enabling the implementation library to be modified while maintaining the state of the implementation library.
Claim 25
Dependent Claim 145 words
A utility to manage the replacement of an implementation library embodied in a computer, the implementation library including one or more state variables, each state variable having a respective value, and the values of the state variables together defining a state of the implementation library, the utility comprising: a software means for managing the memory allocation of the implementation library so that the state of the implementation library can be restored upon update of the implementation library; a software means for managing the loading and unloading of implementation libraries while maintaining program correctness; and a service registry including at least one entry for mapping a user application of the implementation library to the implementation library, so that the implementation library can be modified while the user application is executing, thereby enabling the implementation library to be modified while maintaining the state of the implementation library.

References Cited (Backward Citations)

US5854937A Cited
US6014725A Cited
US5903753A Cited
US5838981A Cited
US5960445A Cited
US5933646A Cited
US5937198A Cited
US5922072A Cited
US5930515A Cited
US5991544A Cited

USPTO Annuity & Maintenance Windows

Annuity Stage Window Opens Payment Deadline Surcharge Period Until Estimated Fee Status
3.5 Years (Year 4) 2004-03-05 2004-09-04 2005-03-06 $2000.00 Window Closed / Lapsed
7.5 Years (Year 8) 2008-03-05 2008-09-04 2009-03-06 $3760.00 Window Closed / Lapsed
11.5 Years (Year 12) 2012-03-05 2012-09-04 2013-03-06 $7700.00 Window Closed / Lapsed

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag