Multi-level resource limits for operating system partitions
First Claim
1. A machine-implemented method, comprising:
- establishing, within a global operating system environment provided by an operating system, a non-global partition which serves to isolate processes running within the non-global partition from at least one other non-global partition within the global operating system environment, wherein each of the non-global partitions share an operating system kernel with the global operating system environment, and wherein each of the non-global partitions comprises a distinct file system;
associating a first resource limit with the non-global partition, wherein the first resource limit indicates a maximum amount of a particular resource that may be allocated to the non-global partition;
associating a second resource limit with a first group of processes within the non-global partition, wherein the second resource limit indicates a maximum amount of the particular resource that may be allocated to the first group of processes;
associating a third resource limit with a second group of processes within the non-global partition, wherein the third resource limit indicates a maximum amount of the particular resource that may be allocated to the second group of processes;
receiving a resource allocation request for the particular resource from a process of the first group of processes;
determining an amount of the particular resource that may be allocated by calculating an available amount of the particular resource, wherein if the resource allocation request is less than or equal to the available amount, then the amount is set to the amount specified in the resource allocation request, wherein calculating the available amount comprises;
calculating a first amount by subtracting a total amount of the particular resource currently in use by the non-global partition from the first resource limit;
calculating a second amount by subtracting a total amount of the particular resource currently in use by the first group of processes from the second resource limit; and
setting the available amount to the lower of the first amount and the second amount;
allocating the determined amount to the process of the first group of processes.
2 Assignments
0 Petitions
Accused Products
Abstract
A mechanism is provided for implementing multi-level resource control in operating system partitions. In one implementation, one or more non-global partitions may be established within a global operating system environment provided by an operating system. Each non-global partition may have one or more projects executing therein, and each project may comprise one or more processes. Each non-global partition may have associated therewith a first resource limit. This resource limit indicates how much of a particular resource has been allocated to the non-global partition as a whole. Each project executing within a non-global partition may have associated therewith a second resource limit. This limit indicates what amount of the particular resource allocated to the non-global partition has been allocated to that project. By setting multiple limits in this manner, it is possible to control resource allocation at multiple levels.
-
Citations
15 Claims
-
1. A machine-implemented method, comprising:
-
establishing, within a global operating system environment provided by an operating system, a non-global partition which serves to isolate processes running within the non-global partition from at least one other non-global partition within the global operating system environment, wherein each of the non-global partitions share an operating system kernel with the global operating system environment, and wherein each of the non-global partitions comprises a distinct file system; associating a first resource limit with the non-global partition, wherein the first resource limit indicates a maximum amount of a particular resource that may be allocated to the non-global partition; associating a second resource limit with a first group of processes within the non-global partition, wherein the second resource limit indicates a maximum amount of the particular resource that may be allocated to the first group of processes; associating a third resource limit with a second group of processes within the non-global partition, wherein the third resource limit indicates a maximum amount of the particular resource that may be allocated to the second group of processes; receiving a resource allocation request for the particular resource from a process of the first group of processes; determining an amount of the particular resource that may be allocated by calculating an available amount of the particular resource, wherein if the resource allocation request is less than or equal to the available amount, then the amount is set to the amount specified in the resource allocation request, wherein calculating the available amount comprises; calculating a first amount by subtracting a total amount of the particular resource currently in use by the non-global partition from the first resource limit; calculating a second amount by subtracting a total amount of the particular resource currently in use by the first group of processes from the second resource limit; and setting the available amount to the lower of the first amount and the second amount; allocating the determined amount to the process of the first group of processes. - View Dependent Claims (2, 3, 4, 5)
-
-
6. A machine-readable storage medium having stored thereon at least a portion of an operating system the machine readable storage medium comprising:
-
establishing, within a global operating system environment provided by an operating system, a non-global partition, which serves to isolate processes running within the non-global partition from at least one other non-global partition within the global operating system environment, wherein each of the non-global operating system partitions share an operating system kernel with the global operating system environment, and wherein each of the non-global partitions comprises a distinct file system; associating a first resource limit with the non-global partition, wherein the first resource limit indicates a maximum amount of a particular resource that may be allocated to the non-global partition; associating a second resource limit with a first group of processes within the non-global partition, wherein the second resource limit indicates a maximum amount of the particular resource that may be allocated to the first group of processes; associating a third resource limit with a second group of processes within the non-global partition, wherein the third resource limit indicates a maximum amount of the particular resource that may be allocated to the second group of processes; receiving a resource allocation request for the particular resource from a process of the first group of processes; determining an amount of the particular resource that may be allocated by calculating an available amount of the particular resource, wherein if the resource allocation request is less than or equal to the available amount, then the amount is set to the amount specified in the resource allocation request, wherein calculating the available amount comprises; calculating a first amount by subtracting a total amount of the particular resource currently in use by the non-global partition from the first resource limit; calculating a second amount by subtracting a total amount of the particular resource currently in use by the first group of processes from the second resource limit; and setting the available amount to the lower of the first amount and the second amount; allocating the determined amount to the process of the first group of processes. - View Dependent Claims (7, 8, 9, 10)
-
-
11. A system for implementing at least a portion of an operating system, comprising:
-
a processor; and a memory, wherein the memory comprises computer readable code executable by the processor that, when executed by the processor, is configured to; establish, within a global operating system environment provided by an operating system, a non-global partition, which serves to isolate processes running within the non-global partition from at least one other non-global partition within the global operating system environment, wherein each of the non-global partitions share an operating system kernel with the global operating system environment, and wherein each of the non-global partitions comprises a distinct file system; associate a first resource limit with the non-global partition, wherein the first resource limit indicates a maximum amount of a particular resource that may be allocated to the non-global partition; associate a second resource limit with a first group of processes within the non-global partition, wherein the second resource limit indicates a maximum amount of the particular resource that may be allocated to the first group of two or more processes; and associate a third resource limit with a second group of processes within the non-global partition, wherein the third resource limit indicates a maximum amount of the particular resource that may be allocated to the second group of processes; receiving a resource allocation request for the particular resource from a process of the first group of processes; determining an amount of the particular resource that may be allocated by calculating an available amount of the particular resource, wherein if the resource allocation request is less than or equal to the available amount, then the amount is set to the amount specified in the resource allocation request, wherein calculating the available amount comprises; calculating a first amount by subtracting a total amount of the particular resource currently in use by the non-global partition from the first resource limit; calculating a second amount by subtracting a total amount of the particular resource currently in use by the first group of processes from the second resource limit; and setting the available amount to the lower of the first amount and the second amount; allocating the determined amount to the process of the first group of processes. - View Dependent Claims (12, 13, 14, 15)
-
Specification