Data processing system and method of task management within a self-managing application
First Claim
1. A method of task management in a data processing system having an operating system and a self managing application program including a plurality of subtasks and a processing time monitor, said method comprising:
- executing an operating system scheduler to schedule execution of tasks by said data processing system, wherein said operating system scheduler schedules said self-managing application for execution as a task without regard to processing time required; and
in response to said operating system scheduler scheduling said self managing application as a task to run on said data processing system;
said self-managing application program allocating a respective selected portion of processing time to each of said plurality of subtasks within said self-managing application;
executing said plurality of subtasks within said data processing system;
at each of a plurality of regular intervals, utilizing said processing time monitor of said self-managing application to determine, for all of said plurality of subtasks, whether an actual portion of processing time utilized by each subtask among said plurality of subtasks exceeds its respective selected portion of processing time; and
in response to a determination by said processing time monitor that said actual portion of processing time utilized by a particular subtask among said plurality of subtasks exceeds its respective selected portion of processing time, suspending execution of said particular subtask for a selected penalty time, wherein said processing time monitor calculates said selected penalty time and suspends execution of said particular subtask.
1 Assignment
0 Petitions
Accused Products
Abstract
A data processing system and method of task management within a self-managing application program including a number of tasks and a processing time monitor are disclosed. In accordance with the present invention, a selected portion of processing time is allocated to each of the tasks in the self-managing application and the tasks are executed by the data processing system. Utilizing the processing time monitor, a determination is periodically made whether an actual portion of processing time utilized by each of the tasks exceeds the selected portion of processing time allocated to that task. In response to a determination that an actual portion of processing time utilized by a particular task exceeds the selected portion of processing time allocated that task, execution of the particular task is suspended for a selected penalty time. In one embodiment, the penalty time is selected such that following the expiration of the penalty time, the actual portion of processing time utilized by the particular task will be no greater than the selected portion of processing time allocated to the particular task.
200 Citations
20 Claims
-
1. A method of task management in a data processing system having an operating system and a self managing application program including a plurality of subtasks and a processing time monitor, said method comprising:
-
executing an operating system scheduler to schedule execution of tasks by said data processing system, wherein said operating system scheduler schedules said self-managing application for execution as a task without regard to processing time required; and
in response to said operating system scheduler scheduling said self managing application as a task to run on said data processing system;
said self-managing application program allocating a respective selected portion of processing time to each of said plurality of subtasks within said self-managing application;
executing said plurality of subtasks within said data processing system;
at each of a plurality of regular intervals, utilizing said processing time monitor of said self-managing application to determine, for all of said plurality of subtasks, whether an actual portion of processing time utilized by each subtask among said plurality of subtasks exceeds its respective selected portion of processing time; and
in response to a determination by said processing time monitor that said actual portion of processing time utilized by a particular subtask among said plurality of subtasks exceeds its respective selected portion of processing time, suspending execution of said particular subtask for a selected penalty time, wherein said processing time monitor calculates said selected penalty time and suspends execution of said particular subtask. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 10, 12, 13, 14, 16, 17, 18, 19, 20)
allocating a first portion of processing time to a first subtask having a first priority; and
allocating a second portion of processing time to a second subtask having a second priority, wherein said second portion of processing time is less than said first portion of processing time and said second priority is higher than said first priority.
-
-
3. The method of task management of claim 1, wherein said step of allocating a selected portion of processing time to each of said plurality of subtasks comprises allocating a selected portion of processing time to at least one subtask among said plurality of subtasks during execution of said at least one subtask.
-
4. The method of task management of claim 1, wherein said step of periodically determining whether an actual portion of processing time utilized by each of said plurality of subtasks exceeds said selected portion is performed at each of a plurality of intervals, and wherein said actual portion of processing time is determined for each of said plurality of subtasks over a time period including multiple of said plurality of intervals.
-
5. The method of task management of claim 1, wherein said step of suspending execution of said particular subtask for a selected penalty time comprises permitting execution of said particular subtask between multiple delays that have an overall duration equal to said selected penalty time.
-
6. The method of task management of claim 1, wherein said step of suspending execution of said particular subtask for a selected penalty time comprises suspending execution of said particular subtask for a penalty time selected such that following expiration of said penalty time said actual portion of processing time utilized by said particular subtask will be no greater than said selected portion of processing time allocated to said particular subtask.
-
7. The method of task management of claim 1, said method further comprising scheduling said processing time monitor to run at a higher priority than said plurality of subtasks.
-
8. The method of claim 1, wherein suspending execution of said particular subtask for a selected penalty time comprises suspending execution of said particular subtask while executing another of said plurality of subtasks of said self-managing application.
-
10. The program product of claim 8, wherein each of said plurality of subtasks has a priority, and wherein said selected portion of processing time allocated to each of said plurality of subtasks is independent of a respective priority of each of said plurality of subtasks.
-
12. The program product of claim 8, wherein said processing time monitor suspends execution of said particular subtask for said selected penalty time by permitting execution of said particular subtask between multiple delays that have an overall duration equal to said selected penalty time.
-
13. The program product of claim 8, wherein said processing time monitor suspends execution of said particular subtask for a selected penalty time by suspending execution of said particular subtask for a penalty time selected such that following expiration of said penalty time said actual portion of processing time utilized by said particular subtask will be no greater than said selected portion of processing time allocated to said particular subtask.
-
14. The program product of claim 8, wherein said processing time monitor has a higher priority than all of said plurality of subtasks.
-
16. The data processing system of claim 14, wherein each of said plurality of subtasks has a priority and said data processing system dispatches subtasks according to priority order, said selected portion of processing time allocated to each of said plurality of subtasks being independent of a respective priority of each of said plurality of subtasks.
-
17. The data processing system of claim 14, wherein said processing time monitor determines said actual portion of processing time utilized by each of said plurality of subtasks at each of a plurality of intervals, and wherein said actual portion of processing time is determined for each of said plurality of subtasks over a time period including multiple of said plurality of intervals.
-
18. The data processing system of claim 14, wherein said processing time monitor suspends execution of said particular subtask for said selected penalty time by permitting execution of said particular subtask between multiple delays that have an overall duration equal to said selected penalty time.
-
19. The data processing system of claim 14, wherein said processing time monitor suspends execution of said particular subtask for a selected penalty time by suspending execution of said particular subtask for a penalty time selected such that following expiration of said penalty time said actual portion of processing time utilized by said particular subtask will be no greater than said selected portion of processing time allocated to said particular subtask.
-
20. The data processing system of claim 14, wherein said processing time monitor has a higher priority than all of said plurality of subtasks.
-
9. A program product, comprising:
-
a self-managing application including;
a plurality of subtasks for execution within a data processing system;
a processing time monitor that, responsive to an operating system scheduler scheduling said self-managing application to run as a task, allocates each of said plurality of subtasks a respective selected portion of processing time, and that, at each of a plurality of regular intervals, determines, for all of said plurality of subtasks, whether an actual portion of processing time utilized by each of said plurality of subtasks exceeds its selected portion, and that, responsive to a determination that an actual portion of processing time utilized by a particular subtask among said plurality of subtasks exceeds its selected portion, calculates a selected penalty time and suspends execution of said particular subtask for said selected penalty time; and
a signal-bearing media bearing said self-managing application. - View Dependent Claims (11)
-
-
15. A data processing system, comprising:
-
a processing unit for executing instructions;
a memory coupled to said processing unit; and
a self-managing application program and an operating system stored within said memory and executable by said processing unit, wherein said operating system includes an operating system scheduler that schedules said self-managing application as a task for execution without regard to processing time required, and wherein said self-managing application program includes;
a plurality of subtasks for execution by said processing unit; and
a processing time monitor that, responsive to said operating system scheduler scheduling said self-managing application as a task to be executed by said processing unit, allocates each of said plurality of subtasks a respective selected portion of processing time, and that, at each of a plurality of regular intervals, determines, for all of said plurality of subtasks, whether an actual portion of processing time utilized by each of said plurality of subtasks exceeds its selected portion, and that, responsive to a determination that an actual portion of processing time utilized by a particular subtask among said plurality of subtasks exceeds its selected portion, calculates a selected penalty time and suspends execution of said particular subtask for said selected penalty time.
-
Specification