System having integrated dispatcher for self scheduling processors to execute multiple types of processes
AssigneeCray Research, Inc.
InventorsGregory G. Gaetner, George A. Spix, Diane M. Wengelski, Keith J. Thompson
Life of this patent
Estimating the term…
Abstract
Method for enabling each of several processors in a multi-processing operating system to schedule processes it will execute without a supervisory scheduler. The processes are executed on the basis of priorities assigned to the processes. More than one processor can schedule processes simultaneously so long as each processor schedules processes having different priority levels from those being processed by another processor.
Claims4
A system for providing self-scheduling by each of a plurality of processors for executing a multiplicity of types of processes comprising:
- memory means accessible by said plurality of processors:
- run queue means stored as an array in said memory means for making available to the plurality of processors context for several types of processes to be executed by the plurality of processors and indexed by order of priority;
- integrated dispatcher means stored as a sequence of processor executable instructions in the memory means for assigning processes to available ones of the plurality of processors in response to execution by available processors, said integrated dispatcher means including
- means for accessing by an index representing the highest priority process in the run queue means independent from process type a process to be run by an available processor of the plurality of processors, and
- means coupled to the accessing means or transferring context of an accessed process from the run queue means to an available one of the plurality of processors;
- indicating means for identifying the lowest priority current process being executed and which processor of the plurality of processors is executing the lowest priority current process;
- interrupt receiving means responsive to interrupt request signals and the indicating means for comparing the priority of an interrupting process with that of the lowest priority current process;
- and
- conditional switching means coupled to the interrupt receiving means for switching context of the interrupting process with the context of the lowest priority current process and storing the context of the lowest priority current process in the run queue means if the priority of the interrupting process is higher than that of the lowest priority current process and otherwise storing the context of the interrupting process in the run queue means.
Dependencies are inferred from the claim text.