1. A system for managing computer resources comprising: a computer system having a processor and a memory and running a plurality of user processes, the user processes grouped into at least two logical groups of processes; a system scheduler managing resource allocation for the user processes and which allocates resources to the user processes; an add-on scheduler for managing the resource allocation within groups of processes, wherein the groups of processes exist only with reference to the add-on scheduler and not as an operating system concept, wherein the add-on scheduler is implemented in user space, wherein the user processes are grouped into at least two logical groups by the add-on scheduler and the groups of processes are dynamically modified by the add-on scheduler, wherein the add-on scheduler reallocates resources based on a predictive algorithm such that the resources are allocated in advance of an actual request for the resources, wherein the add-on scheduler reduces a resource allocation to a particular process based on any of a command from the operating system, a current consumption level of the resource by that process, a history of consumption of the resource by that process, a level of consumption of other resources by that process, and a history of consumption of other resources by that process, and wherein the add-on scheduler reallocates the resources between processes within the group of processes, without increasing total resource allocation to the group of processes.