Replaceable scheduling algorithm in multitasking kernel
First Claim
1. A method of switching during run time from a first scheduler to a second scheduler for a multitasking system for a processor, comprising:
- choosing the second scheduler from a plurality of schedulers, wherein at least one of the plurality of schedulers selects processes to be run from a plurality of runable processes different from the plurality of schedulers and wherein choosing the second scheduler is based on parameters that vary according to run time conditions;
setting, during a context switch operation, a program counter to an address corresponding to code of the second scheduler; and
the processor executing code of the second scheduler at an address corresponding to the program counter.
9 Assignments
0 Petitions
Accused Products
Abstract
Disclosed is providing one of a plurality of schedulers for a multitasking system for a processor that includes choosing a particular one of the schedulers, setting a program counter to an address corresponding to code of the particular one of the schedulers, and the processor executing code at an address corresponding to the program counter. Also included may be setting a stack pointer to an address corresponding to stack space for the particular one of the schedulers and the processor using the stack space at the stack pointer after executing code at the address corresponding to the program counter. The system described herein provides a small kernel that can run on a variety of hardware platforms, such as a PowerPC based Symmetrix adapter board used in a Symmetrix data storage device provided by EMC Corporation of Hopkinton, Ma. The core kernel code may be written for the general target platform, such as the PowerPC architecture. Since the PowerPC implementation specific modules are well defined, the system may be quite portable between PowerPC processors (such as the 8260 and 750), and should prove relatively easy to port to any PowerPC based Symmetrix adapter board/CPU combination. The kernel may also be ported to run on other RISC machines (Hitachi SH series) and can be ported to CISC architectures.
-
Citations
28 Claims
-
1. A method of switching during run time from a first scheduler to a second scheduler for a multitasking system for a processor, comprising:
-
choosing the second scheduler from a plurality of schedulers, wherein at least one of the plurality of schedulers selects processes to be run from a plurality of runable processes different from the plurality of schedulers and wherein choosing the second scheduler is based on parameters that vary according to run time conditions; setting, during a context switch operation, a program counter to an address corresponding to code of the second scheduler; and the processor executing code of the second scheduler at an address corresponding to the program counter. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
-
8. A method of scheduling tasks in a multitasking operating system, comprising:
-
using a first scheduler to schedule tasks; choosing a second scheduler from a plurality of schedulers, wherein at least one of the plurality of schedulers selects processes to be run from a plurality of runable processes different from the plurality of schedulers and wherein choosing the second scheduler is based on parameters that vary according to run time conditions; and switching, during run time, from using the first scheduler to schedule tasks to using the second scheduler to schedule task, wherein switching to using the second scheduler includes setting a program counter to an address corresponding to code of the second scheduler. - View Dependent Claims (9, 10, 11, 12, 13, 14)
-
-
15. Computer software in combination with a computer readable medium that switches, during run time, from a first scheduler to a second scheduler for a multitasking system for a processor, comprising:
-
executable code, provided on a computer readable medium, that chooses the second scheduler from a plurality of schedulers wherein at least one of the plurality of schedulers selects processes to be run from a plurality of runable processes different from the plurality of schedulers and wherein executable code that chooses the second scheduler uses parameters that vary according to run time conditions; executable code, provided on a computer readable medium, that sets a program counter to an address corresponding to code of the second scheduler; and executable code, provided on a computer readable medium, that causes the processor to execute code at an address corresponding to the program counter. - View Dependent Claims (16, 17, 18, 19, 20, 21)
-
-
22. Computer software in combination with a computer readable medium that schedules tasks in a multitasking operating system, comprising:
-
executable code, provided on a computer readable medium, that uses a first scheduler to schedule tasks; executable code, provided on a computer readable medium, that chooses a second scheduler from a plurality of schedulers, wherein at least one of the plurality of schedulers selects processes to be run from a plurality of runable processes different from the plurality of schedulers and wherein executable code that chooses the second scheduler uses parameters that vary according to run time conditions; and executable code, provided on a computer readable medium, that switches, during run time, from using the first scheduler to schedule tasks to using the second scheduler to schedule tasks, wherein executable code that switches to using the second scheduler sets a program counter to an address corresponding to code of the second scheduler. - View Dependent Claims (23, 24, 25, 26, 27, 28)
-
Specification