Patent EP0590645A1 successfully refreshed from Google Patents.
← Back to Patent Explorer
EP0590645A1 Expired / Lapsed EP ⏱️ 0.0 years remaining

Method and system for reducing memory allocation requests

Assignee: Microsoft Corp
•
Filing: 1993-09-29
•
Granted: —
•
Expires: 2013-09-29
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract A computer method and system for allocating memory for a plurality of software routines. Before execution of the software routines, a collective buffer is allocated. Each software routine is assigned an offset within the collective buffer. Each software routine may then use the portion of the collective buffer starting at its offset as its dynamically allocated work space. To allocate the collective buffer, a collective buffer size is first determined which is sufficient to satisfy the total dynamic memory requirements of the software routines. In determining the collective buffer size, the size of a software routine buffer required by each software routine is accumulated into the collective buffer size. As each software routine buffer size requirement is accumulated, the interim total is stored as the offset for the next software routine. When the last software routine buffer size requirement is accumulated, the total indicates the collective buffer size. A collective buffer of the collective buffer size is then allocated. When the software routines are executed, each software routine uses a portion of the collective buffer referenced by its assigned offset. When all the software routines complete execution, the collective buffer may then be deallocated. In a preferred embodiment, the memory is allocated to a software system having a layered architecture including an application program and a device driver comprising a plurality of component device drivers.

Inventors

  • 👤 Andrew P.R. Crick
  • 👤 Seetharaman Harikrishnan
  • 👤 Harish K. Naidu
  • 👤 William G. Parry

Bibliographic Details

Application Number —
Jurisdiction EP
Data Source google_patents
Last Synchronized 2026-11-01 14:07
CPC Classifications
G; G06; G06F; G06F12/00; G06F12/02; G06F9/00; G06F9/06; G06F9/46; G06F9/50; G06F9/5005; G06F9/5011; G06F9/5016; G06F12/0223

Claims Analysis

Total Claims: 20
Claim 1
Independent Claim 78 words
A method in a computer system of allocating memory for a plurality of software routines, each software routine having memory requirements, the method comprising the steps of: determining a collective buffer size sufficient to satisfy a total of the memory requirements of the software routines; allocating memory to a collective buffer of the collective buffer size; and performing the software routines, utilizing the memory allocated to the collective buffer to satisfy the memory requirements of the software routines.
Claim 2
Dependent Claim 44 words
The method according to claim 1 further comprising the step of assigning a software routine buffer offset to each of the software routines, the software routine buffer offset for locating within the collective buffer a work space corresponding to each of the software routines.
Claim 3
Dependent Claim 40 words
The method according to claim 2 wherein the step of performing the software routines performs each software routine utilizing as work space a portion of the collective buffer identified by the corresponding software routine buffer offset into the collective buffer.
Claim 4
Dependent Claim 44 words
The method according to claim 2 wherein the step of assigning a software routine buffer offset to each of the software routines includes accumulating the memory requirements of each of the software routines into the total of the memory requirements of the software routines.
Claim 5
Dependent Claim 30 words
The method according to claim 1 wherein the step of determining the collective buffer size includes accumulating the memory requirements of each software routine to obtain the collective buffer size.
Claim 6
Dependent Claim 23 words
The method according to claim 1, further comprising the step of deallocating the memory for the collective buffer after performing the software routines.
Claim 7
Independent Claim 94 words
A method in a computer system of allocating memory for component device drivers, each component device driver having memory requirements, the method comprising the steps of: organizing the component device drivers into layers composing a device driver; determining a device driver buffer size sufficient to satisfy a total of the memory requirements of the component device drivers; allocating memory to a device driver buffer of the device driver buffer size; and executing the component device drivers, utilizing the memory allocated to the device driver buffer to satisfy the memory requirements of the device drivers.
Claim 8
Dependent Claim 40 words
The method according to claim 7 further comprising the step of assigning, relative to the device driver buffer, device driver buffer offsets, each for locating work space within the device driver buffer corresponding to each of the component device drivers.
Claim 9
Dependent Claim 46 words
The method according to claim 8 wherein the step of executing the component device drivers executes each of the component device drivers utilizing as work space a portion of each of the device driver buffers identified by a corresponding one of the device driver buffer offsets.
Claim 10
Dependent Claim 53 words
The method according to claim 8 wherein the step of assigning the device driver buffer offsets for each of the component device drivers includes accumulating the memory requirements of each of the component device drivers and assigning the accumulated memory requirements as device driver buffer offsets for each of the component device drivers.
Claim 11
Dependent Claim 33 words
The method according to claim 7 wherein the step of determining the device driver buffer size includes accumulating the memory requirements of each component device driver to obtain the device driver buffer size.
Claim 12
Dependent Claim 29 words
The method according to claim 7, wherein the step of determining the device driver buffer size determines the device driver buffer size during configuration of the component device drivers.
Claim 13
Independent Claim 92 words
A method in a computer system of allocating memory needed to process an I/O request from an application program, the method comprising the steps of: receiving the I/O request from the application program; selecting component device drivers to process the I/O request; determining a device driver buffer size sufficient to satisfy memory requirements of the selected component device drivers; allocating the memory to a device driver buffer of the determined device driver buffer size; and invoking the selected component device drivers to process the I/O requests utilizing the allocated device driver buffer.
Claim 14
Dependent Claim 50 words
The method according to claim 13 further comprising the step of assigning a component device driver buffer offset to each of the component device drivers, the component device driver buffer offset for locating within the device driver buffer a work space corresponding to each of the selected component device drivers.
Claim 15
Dependent Claim 24 words
The method according to claim 14 wherein each invoked component device driver uses as work space a portion of the allocated device driver buffer.
Claim 16
Dependent Claim 42 words
The method according to claim 14 wherein each invoked component device driver locates work space within the device driver buffer by adding the corresponding component device driver buffer offset to a base address indicating the beginning of the allocated device driver buffer.
Claim 17
Dependent Claim 103 words
A computer system for allocating memory for a plurality of software routines, each software routine having memory requirements, the computer system comprising: means for determining a collective buffer size sufficient to satisfy a total of the memory requirements of the software routines; means for allocating memory to a collective buffer of the collective buffer size; means for determining and storing an offset for each software routine indicating a portion of the collective buffer; and means for executing each of the software routines, wherein each software routine uses a portion of the collective buffer indicated by the stored offset to satisfy its memory requirements.
Claim 18
Dependent Claim 29 words
The computer system according to claim 17 wherein the means for storing an offset comprises a table having an entry for each software routine, the entry containing the offset.
Claim 19
Dependent Claim 107 words
A computer system for allocating memory for a plurality of component device drivers, each component device driver having memory requirements, the computer system comprising: means for determining a device driver buffer size sufficient to satisfy a total of the memory requirements of the component device drivers; means for allocating memory to a device driver buffer of the device driver buffer size; means for storing an offset for each component device driver indicating a corresponding location in the device driver buffer; and means for executing each of the component device drivers, utilizing as work space each corresponding location in the device driver buffer identified by the stored offset.
Claim 20
Dependent Claim 56 words
The computer system according to claim 19 wherein the means for storing an offset comprises a table having an entry for each component device driver, the entry containing an address of the component device driver and the offset indicating the corresponding location in the device driver buffer used as work space by the component device driver.

References Cited (Backward Citations)

EP0456275A2 Cited

USPTO Annuity & Maintenance Windows

Maintenance schedule is calculated for granted US utility patents.

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag