Providing predictable scheduling of programs using repeating precomputed schedules on discretely scheduled and/or multiprocessor operating systems
First Claim
1. A method in a computer system having a plurality of processors for ensuring the timely execution of a time constraint submitted by one of a plurality of active threads, the method comprising:
- receiving a time constraint from a submitting thread specify a deadline and an estimate of the amount of execution time required by the time constraint;
accessing a prospective execution schedule for at least one of the processors of future timer intervals each having a duration and occurring at a specified time in the future, the execution schedule identifying dedicated future time intervals that have been dedicated to executing specific threads or groups of threads, and identifying undedicated future time intervals that have not been dedicated to executing specific threads or groups of threads;
determining, using the access execution schedule, whether the sum of the undedicated future time intervals occurring before the deadline specified by the received constraint is at least as large as the execution time estimate specified by the received constraint;
if the sum of the undedicated future time intervals occurring before the deadline is at least as large as the execution time estimate, accepting the received time constraint; and
if the sum of the dedicated future time intervals occurring before the deadline is not at least as large as the execution time estimate, declining the received time constraint.
1 Assignment
0 Petitions
Accused Products
Abstract
The present invention provides providing predictable scheduling of programs using repeating precomputed schedules on discretely scheduled and/or multiprocessor operating systems. In one 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. There may be one scheduling graph for each processor, or a scheduling graph may traverse multiple processors. Start and end times for reservations and constraints are adjusted to compensate for the granularity of the clock of the system. Furthermore, the scheduler may use an existing priority-based scheduler in order to cause scheduling decisions it has made to be acted upon.
-
Citations
17 Claims
-
1. A method in a computer system having a plurality of processors for ensuring the timely execution of a time constraint submitted by one of a plurality of active threads, the method comprising:
-
receiving a time constraint from a submitting thread specify a deadline and an estimate of the amount of execution time required by the time constraint; accessing a prospective execution schedule for at least one of the processors of future timer intervals each having a duration and occurring at a specified time in the future, the execution schedule identifying dedicated future time intervals that have been dedicated to executing specific threads or groups of threads, and identifying undedicated future time intervals that have not been dedicated to executing specific threads or groups of threads; determining, using the access execution schedule, whether the sum of the undedicated future time intervals occurring before the deadline specified by the received constraint is at least as large as the execution time estimate specified by the received constraint; if the sum of the undedicated future time intervals occurring before the deadline is at least as large as the execution time estimate, accepting the received time constraint; and if the sum of the dedicated future time intervals occurring before the deadline is not at least as large as the execution time estimate, declining the received time constraint. - View Dependent Claims (2, 3, 4, 5, 6)
-
-
7. One or more computer readable media comprising computer executable instructions that, when executed by a, computer having a plurality of processors, direct the computer to:
-
receive a time constraint from a submitting thread specify a deadline and an estimate of the amount of execution time required by a time constraint; access a prospective execution schedule for at least one of the processors of future timer intervals each having a duration and occurring at a specified time in the future, the execution schedule identifying dedicated future time intervals that have been dedicated to executing specific threads or groups of threads, and identifying undedicated future time intervals that have not been dedicated to executing specific threads or groups of threads; determine, using the access execution schedule, whether the sum of the undedicated future time intervals occurring before the deadline specified by the received constraint is at least as large as the execution time estimate specified by the received constraint; if the sum of the undedicated future time intervals occurring before the deadline is at least as large as the execution time estimate, accept the received time constraint; and if the sum of the dedicated future time intervals occurring before the deadline is not at least as large as the execution time estimate, decline the received time constraint. - View Dependent Claims (8, 9, 10, 11)
-
-
12. An apparatus comprising:
-
a plurality of processors; and memory configured to maintain instructions that are executable on one or more of the plurality of processors to; receive a time constraint from a submitting thread specify a deadline and an estimate of the amount of execution time required by a time constraint; access a prospective execution schedule for at least one of the processors of future time intervals each having a duration and occurring at a specified time in the future, the execution schedule identifying dedicated future time intervals that have been dedicated to executing specific threads or groups of threads, and identifying undedicated future time intervals that have not been dedicated to executing specific threads or groups of threads; determine, using the access execution schedule, whether the sum of the undedicated future time intervals occurring before the deadline specified by the received constraint is at least as large as the execution time estimate specified by the received constraint; if the sum of the undedicated future time intervals occurring before the deadline is at least as large as the execution time estimate, accept the received time constraint; and if the sum of the dedicated future time intervals occurring before the deadline is not at least as large as the execution time estimate, decline the received time constraint. - View Dependent Claims (13, 14, 15, 16, 17)
-
Specification