Providing predictable scheduling of programs using a repeating precomputed schedule
First Claim
1. A computer system for scheduling the execution of programs that may include both real-time and non-real-time programs, real-time programs each providing one or more execution timing requests specifying details about when the real-time program is to be executed, comprising:
- a processor for executing programs; and
a scheduling subsystem, comprising;
a precomputed schedule identifying a series of recurring intervals, at least one of the intervals being committed to the execution of each real-time program in furtherance of the execution timing requests submitted by the real-time program, at least a portion of the intervals being uncommitted to the execution of any real-time program, a list of all real-time and non-real-time programs, and a program selector that traverses the recurring intervals of the precomputed schedule, and;
for each recurring interval committed to the execution of one of the real-time programs, executing with the processor the real-time program to whose execution the recurring interval is committed in furtherance of the execution timing requests submitted by the real-time program to whose execution the recurring interval is committed; and
for each recurring interval not committed to the execution of any real-time program, executing with the processor a program selected from the list of all real-time and non-real-time programs, such that any real-time programs are executed in accordance with their execution timing requests, and such that any non-real time programs are executed fairly.
1 Assignment
0 Petitions
Accused Products
Abstract
The present invention provides predictable scheduling of programs using a repeating precomputed schedule. In a preferred embodiment, a scheduler accesses an activity scheduling graph. The activity scheduling graph is comprised of nodes each representing a recurring execution interval, and has one root, one or more leaves, and at least one path from the root to each leaf. Each node is on at least one path from the root to a leaf, and the number of times the execution interval represented by each node occurs during the traversal of the graph is equal to the number of paths from the root to a leaf that the node is on. Each node has associated with it an execution interval length, and is adapted to being dedicated to executing the threads of a single activity. The scheduler first selects a current node within the accessed scheduling graph. When the processor becomes available to execute threads, the scheduler advances from the current node to a new current node in accordance with a root-to-leaf traversal of the scheduling graph. After advancing to the new current node, the scheduler executes one or more threads of the activity to which the new current node is dedicated for the execution interval length associated with the new current node. In a further preferred embodiment, the scheduler allocates specific iterations through specific nodes to satisfy the constraints submitted by threads.
61 Citations
8 Claims
-
1. A computer system for scheduling the execution of programs that may include both real-time and non-real-time programs, real-time programs each providing one or more execution timing requests specifying details about when the real-time program is to be executed, comprising:
-
a processor for executing programs; and
a scheduling subsystem, comprising;
a precomputed schedule identifying a series of recurring intervals, at least one of the intervals being committed to the execution of each real-time program in furtherance of the execution timing requests submitted by the real-time program, at least a portion of the intervals being uncommitted to the execution of any real-time program, a list of all real-time and non-real-time programs, and a program selector that traverses the recurring intervals of the precomputed schedule, and;
for each recurring interval committed to the execution of one of the real-time programs, executing with the processor the real-time program to whose execution the recurring interval is committed in furtherance of the execution timing requests submitted by the real-time program to whose execution the recurring interval is committed; and
for each recurring interval not committed to the execution of any real-time program, executing with the processor a program selected from the list of all real-time and non-real-time programs, such that any real-time programs are executed in accordance with their execution timing requests, and such that any non-real time programs are executed fairly. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
-
Specification