1. A method for allocating memory in a computer system in which memory for a given process is allocated by first reserving at a reservation layer and then allocating at an allocation layer in an operating system, comprising: creating a kernel memory class, said kernel memory class being part of said reservation layer and acting as a logical container for at least a first kernel memory resource group; processing, as part of a reservation process at said reservation layer, a request of a kernel client for additional memory by ascertaining whether there is sufficient free memory in said first kernel memory resource group to accommodate said request, wherein said kernel client is affiliated with said first kernel memory resource group in said kernel memory class, wherein said kernel memory class provides an upper limit for total memory allocation of all kernel clients affiliated with any kernel memory resource group in said kernel memory class; and denying, as part of said reservation process, said request if there is insufficient free memory in said first kernel memory resource group to accommodate said request.