Claims
- 1. In a data processing system executing tasks in different time partitions, a method of scheduling tasks comprising:
determining available slack; and allocating slack to tasks in different time partitions.
- 2. The method of claim 1 wherein the tasks that are allocated slack are aperiodic, non-essential tasks.
- 3. The method of claim 2 wherein the tasks comprise essential and non-essential tasks, and wherein the tasks that are allocated slack are from the group consisting of new non-essential tasks and enhancements to essential tasks.
- 4. The method of claim 1 wherein in determining, both timeline slack and reclaimed slack are determined.
- 5. A machine-readable medium having instructions stored thereon capable of causing a processor to carry out a method, the method comprising:
scheduling tasks to execute in different time partitions; determining available slack; and allocating slack to tasks in different time partitions.
- 6. In a data processing system executing tasks in different time partitions, a method of scheduling tasks comprising:
collecting unscheduled execution time from at least one time partition; and, allocating the unscheduled execution time to a task in another time partition.
- 7. The method of claim 6, wherein the task in the other partition is an aperiodic, non-essential task.
- 8. The method of claim 7, wherein the tasks comprise essential and non-essential tasks, and wherein the task in the other partition is from the group consisting of new non-essential tasks and enhancements to essential tasks.
- 9. The method of claim 6, wherein in collecting unscheduled execution time, both timeline slack and reclaimed slack are collected.
- 10. A machine-readable medium having instructions stored thereon capable of causing a processor to carry out a method, the method comprising:
scheduling tasks to execute in different time partitions; collecting unscheduled execution time from at least one time partition; and allocating the unscheduled execution time to a task in another time partition.
- 11. In a time-partitioned system executing essential and non-essential tasks, a method of scheduling tasks comprising:
determining available slack from the group consisting of timeline slack and reclaimed slack; pooling available slack in a common slack pool; and allocating slack from the common slack pool to tasks.
- 12. The method of claim 11, wherein in allocating, slack is allocated to non-essential tasks.
- 13. The method of claim 11, wherein in allocating, slack is allocated to a task from the group consisting of new non-essential tasks and enhancements to essential tasks.
- 14. A machine-readable medium having instructions stored thereon capable of causing a processor to carry out a method, the method comprising:
scheduling tasks to execute in different time partitions; determining available slack from the group consisting of timeline slack and reclaimed slack; pooling available slack in a common slack pool; and allocating slack from the common slack pool to tasks.
- 15. In a time-partitioned system executing essential and non-essential tasks, a method of scheduling tasks comprising:
determining available timeline slack; determining available reclaimed slack; pooling available timeline and reclaimed slack; and allocating slack to a task in any time partition.
- 16. The method of claim 15, wherein in allocating, slack is allocated to a non-essential task.
- 17. The method of claim 15, wherein in allocating, slack is allocated to a task from the group consisting of new non-essential tasks and enhancements to essential tasks.
- 18. A machine-readable medium having instructions stored thereon capable of causing a processor to carry out a method, the method comprising:
scheduling tasks to execute in different time partitions; determining available timeline slack; determining available reclaimed slack; pooling available timeline and reclaimed slack; and allocating slack to a task in any time partition.
- 19. A time-partitioned system comprising:
a processor; a plurality of tasks operating on the processor, wherein each task of the plurality of tasks is of a task type selected from the group consisting of essential and non-essential, wherein each task of the plurality of tasks has associated with it at least one worst case execution time; and an executive in communication with the processor and controlling dispatching of tasks on the processor, wherein the executive comprises:
a first module that determines available slack; and a second module that allocates available slack to tasks in different time partitions.
- 20. The time-partitioned system of claim 19, wherein the first module determines available slack by determining slack from the group consisting of timeline slack, reclaimed slack, and idle time.
- 21. The time-partitioned system of claim 20, wherein the first module maintains a pool of available slack.
- 22. The time-partitioned system of claim 20, wherein the first module maintains a common pool of available slack that can be used by tasks in any time partition.
- 23. The time-partitioned system of claim 19, wherein the second module allocates available slack to tasks that are non-essential.
- 24. The time-partitioned system of claim 23, wherein the tasks are from the group consisting of new non-essential tasks and enhancements to essential tasks.
- 25. The time-partitioned system of claim 23, wherein the executive further comprises a third module that assigns different priority levels to tasks.
- 26. The time-partitioned system of claim 25, wherein the first module determines available slack for tasks at each priority level.
- 27. The time-partitioned system of claim 25, wherein the second module allocates available slack to tasks in order of priority.
- 28. The time-partitioned system of claim 19, wherein the system is a flight control system.
- 29. The time-partitioned system of claim 19, wherein the system is a real-time control system.
- 30. The time-partitioned system of claim 19, wherein the executive comprises a single set of slack variables and a single slack table.
RELATED INVENTIONS
[0001] The present invention is related to the following inventions which are assigned to the same assignee as the present invention:
[0002] Ser. No. 09/312,592, entitled “Task Scheduling and Message Passing”; and
[0003] Ser. No. 08/914,924, entitled “Slack Scheduling for Improved Response Times of Period Transformed Processes”.
[0004] The present invention is also related to the following invention which is assigned to the same assignee as the present invention and which was filed on even date herewith:
[0005] Ser. No. ______, entitled “Methods and Apparatus for Slack Stealing With Dynamic Threads”.
Provisional Applications (1)
|
Number |
Date |
Country |
|
60209064 |
Jun 2000 |
US |