STARVATION CONTROL IN A DATA PROCESSING SYSTEM
First Claim
1. A data processing system, comprising:
- a global task control subsystem; and
at least one processing subsystem coupled to the global task control subsystem, the at least one processing subsystem including;
a task scheduler coupled to a main list of ready-for-scheduling tasks and to a CPU, andwherein the task scheduler is coupled to a starvation list of potentially-starved ready-for-scheduling tasks and to a starvation monitor,wherein the task scheduler schedules and de-schedules tasks for execution on the CPU using one of a main scheduling scheme and a secondary scheduling scheme, andwherein the starvation monitor determines a number of times that any task in the starvation list is pre-empted from being scheduled for execution on the CPU as a result of another task being scheduled for execution on the CPU using the main scheduling scheme.
15 Assignments
0 Petitions
Accused Products
Abstract
A data processing system (100) includes a main list (126) of tasks, main scheduling scheme, a starvation list (128) of tasks, and a secondary scheduling scheme. A method identifies tasks in the main list that are potentially-starving tasks and places the potentially-starving tasks in the starvation list. A starvation monitor (130) controls starvation of tasks in the system by determining when to use the secondary scheduling scheme to schedule, for execution on a CPU (132), a highest priority task in the starvation list prior to scheduling, pursuant to the main scheduling scheme, other tasks in the main list. The starvation monitor determines a number of times that a task in the main list is pre-empted, by other tasks in the main list, from being scheduled for execution on the CPU. A counter (131) is incremented each occasion that any task not in the starvation list is executed on the CPU.
-
Citations
20 Claims
-
1. A data processing system, comprising:
-
a global task control subsystem; and at least one processing subsystem coupled to the global task control subsystem, the at least one processing subsystem including; a task scheduler coupled to a main list of ready-for-scheduling tasks and to a CPU, and wherein the task scheduler is coupled to a starvation list of potentially-starved ready-for-scheduling tasks and to a starvation monitor, wherein the task scheduler schedules and de-schedules tasks for execution on the CPU using one of a main scheduling scheme and a secondary scheduling scheme, and wherein the starvation monitor determines a number of times that any task in the starvation list is pre-empted from being scheduled for execution on the CPU as a result of another task being scheduled for execution on the CPU using the main scheduling scheme. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11)
-
-
12. A method within a data processing system, comprising:
-
assigning a priority to each task that enters the data processing system; populating a main list with tasks in the data processing system that are in a ready-for-scheduling state; identifying tasks in the main list that are potentially-starving tasks; and populating a starvation list with the potentially-starving tasks. - View Dependent Claims (13, 14, 15, 16, 17)
-
-
18. A method within a data processing system, comprising:
-
assigning priority information to each task that enters the data processing system; providing storage for a main list; populating the main list with tasks which entered the data processing system that are in a ready-for-scheduling state; identifying tasks in the main list that are potentially-starving tasks; providing storage for a starvation list; populating the starvation list with the potentially-starving tasks; scheduling, for executing on a CPU, a task in the main list that currently has a highest priority among tasks currently in the main list; removing such scheduled task from the main list and from the starvation list after the CPU executes the scheduled task; selecting a threshold value; counting each occasion that any task not in the starvation list is executed on the CPU; and determining whether a current number of occasions that any task not in the starvation list is executed on the CPU is equal to the threshold value, and if so, then repeat steps of scheduling, removing and counting, and if not so, then schedule for execution on the CPU a highest priority task in the starvation list prior to scheduling for execution on the CPU any other task in main list, and after completion of the execution on the CPU of the highest priority task in the starvation list, removing such task from the starvation list and from the main list. - View Dependent Claims (19, 20)
-
Specification