System, method, and computer program product for group scheduling of computer resources
First Claim
1. A system for managing computer resources comprising:
- a computer system running an operating system;
a system scheduler managing resource allocation for processes using an API;
an add-on scheduler for managing the resource allocation within groups of processes without notifying the operating system, 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;
a plurality of user processes running on the computer system,wherein the user processes are grouped into at least two logical groups by the add-on scheduler without notifying the operating system, andwherein the groups of processes are capable of being dynamically modified by the add-on scheduler;
a first set of parameters used by the add-on scheduler for managing the resource allocation within the groups of processes, with the resource allocations being adjusted using the first set of parameters,wherein the first set of parameters is not supported by the system scheduler;
a second set of parameters used by the system scheduler for managing the resource allocation;
wherein the add-on scheduler reallocates resources restrictions based on (a) a request for resources beyond an established limit, (b) a group resource consumption being a sum of resource consumptions of each process belonging to that group, and (c) based on a predictive algorithm such that the resources are allocated in advance of an actual request for the resources,wherein the resources restrictions include soft limits,wherein the add-on scheduler reduces values of the resource restrictions available to a particular process based on any of a history of consumption of the resource by that process and a history of consumption of other resources by that process, andwherein the add-on scheduler reallocates relative resource allocation between processes within the group of processes, without increasing total resource allocation to the group of processes.
7 Assignments
0 Petitions
Accused Products
Abstract
A system, method and computer program product for managing computer resources in a computer system running an operating system and a plurality of processes grouped into at least two groups. A set of resource limits corresponds to the processes. A scheduler of resource allocation allocates resources to each process such that total resource allocation to a group to which that process belongs remains constant. The resources comprise, e.g., network bandwidth, number of network connections, I/O bandwidth for peripheral devices, number of operations in a period of time for service operation with countable requests for service, number of operations in a period of time for a daemon with countable requests for service, permission for execution of operation, number of security descriptors, and number of terminals. The scheduler reallocates the resources based on a predictive algorithm, or based on process priority, or based on relative weighting of the processes. The scheduler can adjust an increase and a decrease of the resources available to a particular process. The scheduler is capable of increasing a resource allocation restriction to one process by and by waiting for that resource to become available. The scheduler is capable of increasing a resource allocation to one process by reducing allocation restriction to other processes in the same group on a basis proportional to their current use of that resource. The scheduler can reduce a resource allocation to a particular process based on a history of consumption of the resource by that process and a history of consumption of other resources by that process.
185 Citations
50 Claims
-
1. A system for managing computer resources comprising:
-
a computer system running an operating system; a system scheduler managing resource allocation for processes using an API; an add-on scheduler for managing the resource allocation within groups of processes without notifying the operating system, 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; a plurality of user processes running on the computer system, wherein the user processes are grouped into at least two logical groups by the add-on scheduler without notifying the operating system, and wherein the groups of processes are capable of being dynamically modified by the add-on scheduler; a first set of parameters used by the add-on scheduler for managing the resource allocation within the groups of processes, with the resource allocations being adjusted using the first set of parameters, wherein the first set of parameters is not supported by the system scheduler; a second set of parameters used by the system scheduler for managing the resource allocation; wherein the add-on scheduler reallocates resources restrictions based on (a) a request for resources beyond an established limit, (b) a group resource consumption being a sum of resource consumptions of each process belonging to that group, and (c) based on a predictive algorithm such that the resources are allocated in advance of an actual request for the resources, wherein the resources restrictions include soft limits, wherein the add-on scheduler reduces values of the resource restrictions available to a particular process based on any of a history of consumption of the resource by that process and a history of consumption of other resources by that process, and wherein the add-on scheduler reallocates relative resource allocation between processes within the group of processes, without increasing total resource allocation to the group of processes. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18)
-
-
19. A method of managing computer resources comprising:
-
on a computer system running an operating system, starting a system scheduler managing resource allocation for processes using an API; starting an add-on scheduler for managing the resource allocation within groups of processes without notifying the operating system, 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; launching a plurality of user processes running on the computer system, grouping the user processes into at least two logical groups by the add-on scheduler without notifying the operating system, wherein the groups of processes are capable of being dynamically modified by the add-on scheduler; utilizing a first set of parameters by the add-on scheduler for managing the resource allocation within the groups of processes, with the resource allocations being adjusted using the first set of parameters, wherein the first set of parameters is not supported by the system scheduler; utilizing a second set of parameters used by the system scheduler for managing the resource allocation; using the add-on scheduler, reallocating the resources restrictions based on (a) a request for resources beyond an established limit, (b) a group resource consumption being a sum of resource consumptions of each process belonging to that group, and (c) based on a predictive algorithm such that the resources are allocated in advance of an actual request for the resources, wherein the restrictions include soft limits, using the add-on scheduler reducing values of the resource restrictions available to a particular process based on any of a history of consumption of the resource by that process and a history of consumption of other resources by that process, and using the add-on scheduler, reallocating relative resource allocation between processes within the group, without increasing total resource allocation to the group. - View Dependent Claims (20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50)
-
Specification