Method and apparatus for scheduling processes based upon virtual server identifiers
First Claim
1. A method for scheduling processes within an operating system based upon virtual server identifiers, wherein the operating system supports multiple virtual servers that operate within separate virtual environments on a single computing platform, the method comprising:
- the operating system detecting an event that causes a scheduling priority for a process to be updated;
the operating system looking up a virtual server identifier for the process, wherein the virtual server identifier specifies a virtual server and an associated virtual environment that the process operates within;
the operating system using the virtual server identifier to look up a scheduling priority associated with the virtual server; and
the operating system calculating an updated scheduling priority for the process based upon the scheduling priority associated with the virtual server;
wherein calculating the updated scheduling priority involves calculating the updated scheduling priority based upon;
a value, E, stored within a priority-related timer that keeps track of execution time for the process, a system priority, SP, associated with the process, and the scheduling priority, M, associated with the virtual server; and
wherein calculating the updated scheduling priority, P, involves calculating P=SP+S(E/M), wherein S is a tunable constant value.
19 Assignments
0 Petitions
Accused Products
Abstract
One embodiment of the present invention provides a system that schedules processes within an operating system based upon virtual server identifiers, wherein the operating system supports multiple virtual servers that operate within separate virtual environments on a single computing platform. Upon detecting an event that causes a scheduling priority for a process to be updated, the system looks up a virtual server identifier for the process. This virtual server identifier specifies a virtual server and an associated virtual environment that the process operates within. Next, the system uses the virtual server identifier to look up a scheduling priority associated with the virtual server, and then calculates an updated scheduling priority for the process based upon the scheduling priority for the virtual server.
-
Citations
15 Claims
-
1. A method for scheduling processes within an operating system based upon virtual server identifiers, wherein the operating system supports multiple virtual servers that operate within separate virtual environments on a single computing platform, the method comprising:
-
the operating system detecting an event that causes a scheduling priority for a process to be updated;
the operating system looking up a virtual server identifier for the process, wherein the virtual server identifier specifies a virtual server and an associated virtual environment that the process operates within;
the operating system using the virtual server identifier to look up a scheduling priority associated with the virtual server; and
the operating system calculating an updated scheduling priority for the process based upon the scheduling priority associated with the virtual server;
wherein calculating the updated scheduling priority involves calculating the updated scheduling priority based upon;
a value, E, stored within a priority-related timer that keeps track of execution time for the process, a system priority, SP, associated with the process, and the scheduling priority, M, associated with the virtual server; and
wherein calculating the updated scheduling priority, P, involves calculating P=SP+S(E/M), wherein S is a tunable constant value. - View Dependent Claims (2, 3, 4, 5)
receiving a command to adjust the scheduling priority associated with the virtual server;
if the command is received from an authorized entity, adjusting the scheduling priority associated with the virtual server so that the scheduling priorities of all processes associated with the virtual server are modified.
-
-
3. The method of claim 1, wherein the method further comprises charging a fee for hosting the virtual server, wherein the fee is based upon the scheduling priority associated with the virtual server.
-
4. The method of claim 1, wherein detecting the event that causes the scheduling priority for the process to be updated involves detecting one of:
-
the process entering a sleep state;
the process waking up from the sleep state; and
a priority-related timer associated with the process reaching a maximum value.
-
-
5. The method of claim 1, wherein looking up the virtual server identifier for the process involves looking up the virtual server identifier within a process structure maintained by the operating system for the process.
-
6. A computer-readable storage medium storing instructions that when executed by a computer cause the computer to perform a method for scheduling processes within an operating system based upon virtual server identifiers, wherein the operating system supports multiple virtual servers that operate within separate virtual environments on a single computing platform, the method comprising:
-
the operating system detecting an event that causes a scheduling priority for a process to be updated;
the operating system looking up a virtual server identifier for the process, wherein the virtual server identifier specifies a virtual server and an associated virtual environment that the process operates within;
the operating system using the virtual server identifier to look up a scheduling priority associated with the virtual server; and
the operating system calculating an updated scheduling priority for the process based upon the scheduling priority associated with the virtual server;
wherein calculating the updated scheduling priority involves calculating the updated scheduling priority based upon;
a value, E, stored within a priority-related timer that keeps track of execution time for the process, a system priority, SP, associated with the process, and the scheduling priority, M, associated with the virtual server; and
wherein calculating the updated scheduling priority, P, involves calculating P=SP+S(E/M), wherein S is a tunable constant value. - View Dependent Claims (7, 8, 9, 10)
receiving a command to adjust the scheduling priority associated with the virtual server;
if the command is received from an authorized entity, adjusting the scheduling priority associated with the virtual server so that the scheduling priorities of all processes associated with the virtual server are modified.
-
-
8. The computer-readable storage medium of claim 6, wherein the method further comprises charging a fee for hosting the virtual server, wherein the fee is based upon the scheduling priority associated with the virtual server.
-
9. The computer-readable storage medium of claim 6, wherein detecting the event that causes the scheduling priority for the process to be updated involves detecting one of:
-
the process entering a sleep state;
the process waking up from the sleep state; and
a priority-related timer associated with the process reaching a maximum value.
-
-
10. The computer-readable storage medium of claim 6, wherein looking up the virtual server identifier for the process involves looking up the virtual server identifier within a process structure maintained by the operating system for the process.
-
11. An apparatus that schedules processes within an operating system based upon virtual server identifiers, wherein the operating system supports multiple virtual servers that operate within separate virtual environments on a single computing platform, the apparatus comprising:
-
a detection mechanism in the operating system that is configured to detect an event that causes a scheduling priority for a process to be updated;
a lookup mechanism in the operating system that is configured to look up a virtual server identifier for the process, wherein the virtual server identifier specifies a virtual server and an associated virtual environment that the process operates within;
wherein the lookup mechanism is additionally configured to use the virtual server identifier to look up a scheduling priority associated with the virtual server; and
a calculating mechanism in the operating system that is configured to calculate an updated scheduling priority for the process based upon the scheduling priority associated with the virtual server;
wherein the calculating mechanism is configured to calculate the updated scheduling priority based upon;
a value, E, stored within a priority-related timer that keeps track of execution time for the process, a system priority, SP, associated with the process, and the scheduling priority, M, associated with the virtual server; and
wherein the calculating mechanism is configured to calculate the updated scheduling priority, P, by calculating P=SP+S(E/M), wherein S is a tunable constant value. - View Dependent Claims (12, 13, 14, 15)
receive a command to adjust the scheduling priority associated with the virtual server; and
toadjust the scheduling priority associated with the virtual server so that the scheduling priorities of all processes associated with the virtual server are modified, if the command is received from an authorized entity.
-
-
13. The apparatus of claim 11, further comprising a fee calculation mechanism that is configured to calculate a fee for hosting the virtual server based upon the scheduling priority associated with the virtual server.
-
14. The apparatus of claim 11, wherein the detection mechanism is configured to detect one of:
-
the process entering a sleep state;
the process waking up from the sleep state; and
a priority-related timer associated with the process reaching a maximum value.
-
-
15. The apparatus of claim 11, wherein the lookup mechanism is configured to look up the virtual server identifier for the process by looking up the virtual server identifier within a process structure maintained by the operating system for the process.
Specification