METHOD AND SYSTEM FOR SIMULATING A MULTI-QUEUE SCHEDULER USING A SINGLE QUEUE ON A PROCESSOR
First Claim
1. A method for simulating a multi-queue group scheduler for scheduling tasks on a processor, the tasks being scheduled by an operating system to run on the processor in a predetermined order, the method comprising:
- (a) identifying and creating task groups of all related tasks;
(b) assigning the tasks in the task groups into a single common run-queue;
(c) selecting a task at the start of the run-queue;
(d) determining if the task at the start of the run-queue is eligible to be run based on a pre-defined timeslice allocated and if presence of other older starving tasks in the runqueue are eligible to run;
(e) executing the task in the pre-defined time slice;
(f) repeating steps (a)-(e) until all tasks in the run-queue are executed and the run-queue become empty.
1 Assignment
0 Petitions
Accused Products
Abstract
A method and system for scheduling tasks on a processor, the tasks being scheduled by an operating system to run on the processor in a predetermined order, the method comprising identifying and creating task groups of all related tasks; assigning the tasks in the task groups into a single common run-queue; selecting a task at the start of the run-queue; determining if the task at the start of the run-queue is eligible to be run based on a pre-defined timeslice allocated and on the presence of older starving tasks on the runqueue; executing the task in the pre-defined time slice; associating a starving status to all unexecuted tasks and running all until all tasks in the run-queue complete execution and the run-queue become empty.
31 Citations
15 Claims
-
1. A method for simulating a multi-queue group scheduler for scheduling tasks on a processor, the tasks being scheduled by an operating system to run on the processor in a predetermined order, the method comprising:
-
(a) identifying and creating task groups of all related tasks; (b) assigning the tasks in the task groups into a single common run-queue; (c) selecting a task at the start of the run-queue; (d) determining if the task at the start of the run-queue is eligible to be run based on a pre-defined timeslice allocated and if presence of other older starving tasks in the runqueue are eligible to run; (e) executing the task in the pre-defined time slice; (f) repeating steps (a)-(e) until all tasks in the run-queue are executed and the run-queue become empty. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9)
-
-
10. A system comprising a processor comprising tasks being scheduled by an operating system to run on the processor in a predetermined order, wherein the system is configured to perform:
-
(a) identifying and creating task groups of all related tasks; (b) assigning the tasks in the task groups into a single common run-queue; (c) selecting a task at the start of the run-queue; (d) determining if the task at the start of the run-queue is eligible to be run based on a pre-defined timeslice allocated and if presence of other older starving tasks in the runqueue are eligible to run, the timeslice including a task timeslice or a group timeslice; (e) executing the task in the pre-defined time slice; (f) repeating steps (a)-(e) until all tasks in the run-queue are executed and the run-queue become empty. - View Dependent Claims (11, 12, 13, 14, 15)
-
Specification