Using a yield indicator in a hierarchical scheduler
First Claim
Patent Images
1. A method comprising:
- assigning, by a processing device, a yield indicator to a first node of a scheduling tree, wherein the scheduling tree represents a hierarchy of groups and processes that share central processing unit (CPU) time, wherein the first node represents a first process that temporarily yields the CPU time, and wherein the yield indicator indicates that the first process has yielded CPU time to another process;
assigning, by the processing device, the yield indicator to each of ancestor nodes of the first node in the scheduling tree, each ancestor node representing a group to which the first process belongs;
assigning, by the processing device, a next indicator to a leaf node in the scheduling tree that represents a next process to run;
assigning, by the processing device, the next indicator to each of ancestor nodes of the leaf node in the scheduling tree, each ancestor node representing a group to which the next process belongs; and
selecting, by the processing device, the next process to run on a computer system based on the next indicator and the yield indicator in the scheduling tree.
1 Assignment
0 Petitions
Accused Products
Abstract
A method and system for scheduling the use of CPU time among processes using a scheduling tree having a yielding indicator. A scheduling tree represents a hierarchy of groups and processes that share central processing unit (CPU) time. A computer system assigns a yield indicator to a first node of the scheduling tree, which represents a first process that temporarily yields the CPU time. The computer system also assigns the yield indicator to each ancestor node of the first node in the scheduling tree. Each ancestor node represents a group to which the first process belongs. The computer system then selects a second process to run on the computer system based on the yield indicator in the scheduling tree.
-
Citations
15 Claims
-
1. A method comprising:
-
assigning, by a processing device, a yield indicator to a first node of a scheduling tree, wherein the scheduling tree represents a hierarchy of groups and processes that share central processing unit (CPU) time, wherein the first node represents a first process that temporarily yields the CPU time, and wherein the yield indicator indicates that the first process has yielded CPU time to another process; assigning, by the processing device, the yield indicator to each of ancestor nodes of the first node in the scheduling tree, each ancestor node representing a group to which the first process belongs; assigning, by the processing device, a next indicator to a leaf node in the scheduling tree that represents a next process to run; assigning, by the processing device, the next indicator to each of ancestor nodes of the leaf node in the scheduling tree, each ancestor node representing a group to which the next process belongs; and selecting, by the processing device, the next process to run on a computer system based on the next indicator and the yield indicator in the scheduling tree. - View Dependent Claims (2, 3, 4, 5, 6)
-
-
7. A system comprising:
-
a memory to store a scheduling tree that represents a hierarchy of groups and processes that share central processing unit (CPU) time; and a processing device coupled to the memory, the processing device is to; assign a yield indicator to a first node of the scheduling tree, the first node representing a first process that temporarily yields the CPU time, wherein the yield indicator indicates that the first process has yielded CPU time to another process, wherein each node in the scheduling tree is assigned a priority, and wherein, at each level of the scheduling tree, the processing device selects a next highest priority node at the level if a top priority node at the level has the yield indicator; assign the yield indicator to each of ancestor nodes of the first node in the scheduling tree, each ancestor node representing a group to which the first process belongs; and select a second process to run on the processing device based on the yield indicator in the scheduling tree. - View Dependent Claims (8, 9, 10)
-
-
11. A non-transitory computer readable storage medium comprising instructions that, when executed by a processing device, cause the processing device to perform operations comprising:
-
assigning, by the processing device, a yield indicator to a first node of a scheduling tree, wherein the scheduling tree represents a hierarchy of groups and processes that share central processing unit (CPU) time, wherein the first node represents a first process that temporarily yields the CPU time, wherein the yield indicator indicates that the first process has yielded CPU time to another process, and wherein each node in the scheduling tree is assigned a priority; at each level of the scheduling tree, selecting an internal node with both a next indicator and the yield indicator if the priority of the internal node is within a determined range of a top priority at the level; assigning the yield indicator to each of ancestor nodes of the first node in the scheduling tree, each ancestor node representing a group to which the first process belongs; and selecting a second process to run on a computer system based on the yield indicator in the scheduling tree. - View Dependent Claims (12, 13, 14, 15)
-
Specification