Pattern matching process scheduler with upstream optimization
First Claim
1. A method comprising:
- executing a first process on a computer processor, the first process including a function which consumes input data of a first input pattern and produces output data of a first output pattern;
determining that the function in the first process is waiting for input data of the first input pattern;
upon determining that the function in the first process is waiting for input data, setting the first process to a blocked state;
extracting the first input pattern;
examining a stored set of output patterns, each output pattern of the set of output patterns being, associated with a particular function of a particular output producing process, the examining including comparing the first input pattern to the stored set of output patterns;
based on the examined set of out patterns, selecting a second function of a second process, the second function of the second process having an output pattern which matches the first input pattern of the first function; and
causing the selected second function of the second process to execute such that the input data for the first function may be produced.
2 Assignments
0 Petitions
Accused Products
Abstract
Processes in a message passing system may be launched when messages having data patterns match a function on a receiving process. The function may be identified by an execution pointer within the process. When the match occurs, the process may be added to a runnable queue, and in some embodiments, may be raised to the top of a runnable queue. When a match does not occur, the process may remain in a blocked or non-executing state. In some embodiments, a blocked process may be placed in an idle queue and may not be executed until a process scheduler determines that a message has been received that fulfills a function waiting for input. When the message fulfills the function, the process may be moved to a runnable queue.
313 Citations
20 Claims
-
1. A method comprising:
-
executing a first process on a computer processor, the first process including a function which consumes input data of a first input pattern and produces output data of a first output pattern; determining that the function in the first process is waiting for input data of the first input pattern; upon determining that the function in the first process is waiting for input data, setting the first process to a blocked state; extracting the first input pattern; examining a stored set of output patterns, each output pattern of the set of output patterns being, associated with a particular function of a particular output producing process, the examining including comparing the first input pattern to the stored set of output patterns; based on the examined set of out patterns, selecting a second function of a second process, the second function of the second process having an output pattern which matches the first input pattern of the first function; and causing the selected second function of the second process to execute such that the input data for the first function may be produced. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15)
-
-
16. A system comprising:
-
a computer processor; a process scheduler operating on said computer processor, said process scheduler that; executes a first process on a computer processor, the first process including a function which consumes input data of a first input pattern and produces out put data of a first output pattern; determines that the function in the first process is waiting for input data of the first input pattern; upon determing that the function in the first process is waiting for input data, sets the first process to a blocked state; extracts the first input pattern; examines a stored set of output patterns, each output pattern of the set of output patterns being associated with a particular function of a particular output producing process, the examining including comparing the first input pattern to the stored set of output patterns; selects, based the examined set of output patterns, a second process, the second process having a second function which produces an output pattern that matches the first pattern of the first function; and increases the priority of the selected second process such that the input data for the first function may be produced. - View Dependent Claims (17, 18, 19, 20)
-
Specification