Patent ID: 7412492

Claim:
In a computer that has an allocatable resource that is allocatable in predetermined resource units, a method for allocating the units of the resource among a plurality of clients comprising: assigning to each client a share value corresponding to a nominal share of the allocatable resource units that is proportional to its fraction of a total of the shares of all clients; for each client, determining a current allocation of resource units; for each client, evaluating a metric that is a function both of the current allocation and of a usage-based factor that is a function of a first measure of resource units currently allocated to the respective client that that client is actively using and a second measure of resource units currently allocated to the respective client that that client is not actively using; reclaiming and reallocating a resource unit from the client whose metric meets a predetermined criterion; and in evaluating the metric, assigning greater significance to each unit of the currently allocated resource that the client is not actively using than to each unit of the currently allocated resource that the client is actively using; in which: the allocatable resource is system memory and the resource units are machine memory pages that are identified by corresponding machine page numbers (MPNs); the clients are virtual machines that issue requests for physical pages, which are identified by corresponding physical page numbers (PPNs); each client communicates requests for PPNs via a virtual machine monitor (VMM); further comprising: allocating system memory to the respective virtual machines as PPNs; mapping PPNs to MPNs within the VMM; determining the first and second measures of resource units by evaluating usage by each respective client of physical pages.