Patent ID: 8108873

Claim:
A computer implemented method for allocating memory by an operating system having a maximum process memory size for a consumer process, the method comprising: receiving, in a memory driver, a request for memory from a consumer process that requests an amount of memory greater than the maximum process memory size; creating at least one donor process from the memory driver; where the at least one created donor process: requests, from the operating system, an allocation of memory space having a size determined by the donor process; transfers ownership of the allocated memory space to the memory driver; holds the allocated memory space on behalf of the memory driver to prevent the operating system from re-allocating the memory space while the consumer process is accessing the allocated memory; de-allocates the memory space in response to a request from the memory driver to de-allocate the memory space; and from the memory driver, combining the allocated memory space transferred from the at least one donor process with memory space allocated to the consumer process, and availing the combined allocated memory space to the consumer process by processing memory read/write requests for the combined allocated memory space from the consumer process.