×

Memory allocator for a multiprocessor computer system

  • US 7,472,233 B2
  • Filed: 04/30/2004
  • Issued: 12/30/2008
  • Est. Priority Date: 08/29/1997
  • Status: Expired due to Fees
First Claim
Patent Images

1. In a multiprocessor system having shared physical memory distributed among a plurality of nodes, a method of dynamically allocating memory on a specified node of the system, the method comprising:

  • receiving a request to dynamically allocate an amount of physical memory on a specified node, the request received from a process;

    in response to the request, dynamically allocating the amount of physical memory on the specified node; and

    indicating an address for the dynamically allocated amount of physical memory, wherein;

    receiving the request includes a request to allocate the amount of physical memory from a specified memory pool;

    allocating the amount of physical memory includes allocating the amount of physical memory from the specified pool, and dynamically allocating the amount of physical memory on the specified node comprises;

    assigning a first variable to represent a count of memory structures in the physical memory, the count of memory structures in the physical memory represented by the first variable corresponding to a global count of memory structures in the physical memory for the multiprocessor system as a whole;

    assigning multiple second variables, each second variables to represent a count of memory structures in the memory, the count of memory structures in the physical memory represented by each multiple second variable corresponding to a local count of memory structures in the physical memory for one of the plurality of nodes;

    determining dynamically changeable desired levels of value of the multiple second variables as based on a distance between a total value of the multiple second variables and a predetermined limit of the multiple second variables;

    maintaining a third variable, the third variable having a first part that stores the dynamically changeable desired levels of value of the multiple second variables, the third variable having a second part that stores the predetermined limit of the multiple second variables, and the third variable having a third part storing a leftover value of the multiple second variables, the leftover value being no less than one;

    determining whether a selected second variable of the multiple second variables can be changed by the requested amount and stay within the dynamically changeable desired levels of value of the multiple second variables based on the total value of the multiple second variables and based on the predetermined limit of the multiple second variables as stored in the second part of the third variable;

    if so, changing the selected second variable by the requested amount; and

    if not, changing the first variable by the requested amount.

View all claims
  • 0 Assignments
Timeline View
Assignment View
    ×
    ×