Patent ID: 7587572

Claim:
A system for managing a computer system process memory allocated to an execution of a process configured to use data stored to a storage, the process memory having a predetermined size and comprising an uncompressed region having a first size and a compressed region having a second size, the first size and the second size configured to be adjustable, the uncompressed region being configured to include uncompressed pages of data and the compressed region being configured to include compressed pages of data, the process memory being filled by uncompressed pages of data necessary to execute the process, the system comprising the following instructions stored in main memory of the computer system for managing the process memory allocated to execution of the process: a first instruction for determining whether a page fault rate of the process memory allocated to the execution of the process exceeds a page fault threshold, the page fault rate representing a fraction of all process memory accesses seeking a page of data, wherein the page of data does not reside in either the uncompressed region or the compressed region of the process memory, the page fault threshold being a preset reference with respect to the page fault rate; a second instruction effective if the page fault rate exceeds the page fault threshold, the second instruction determining whether a miss rate in the uncompressed region is less than a miss rate threshold, the miss rate being a fraction of all process memory accesses to the process memory seeking a specific page not residing in the uncompressed region of the process memory, the miss rate threshold being a preset reference with respect to the miss rate; a third instruction effective if the miss rate is less than the miss rate threshold, the third instruction reducing the first size of the uncompressed region and increasing the second size of the compressed region, the reducing being by a sufficient number of pages of data so as to make adequate room in the uncompressed region for a requested page of data necessary for continuing execution of the process; and a fourth instruction for storing in the uncompressed region the requested page of data necessary for continuing the execution of the process.