Pattern Matching Process Scheduler in Message Passing Environment
First Claim
1. A method comprising:
- executing a first process on a computer processor, said first process comprising a plurality of functions;
determining that a first function is waiting for a first input, said first input being defined by a first pattern and setting said first process to a blocked state;
storing said first pattern in a data structure, said data structure comprising patterns from a plurality of processes;
receiving a first message, said first message comprising first data;
attempting to match said first data to said first pattern by comparing said first data to patterns in said data structure;
when said first data matches said first pattern, causing said first process to resume execution; and
when said first data does not match said first pattern, leaving said first process in said blocked state.
2 Assignments
0 Petitions
Accused Products
Abstract
Processes in a message passing system may be unblocked when messages having data patterns match data patterns of a function on a receiving 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.
67 Citations
20 Claims
-
1. A method comprising:
-
executing a first process on a computer processor, said first process comprising a plurality of functions; determining that a first function is waiting for a first input, said first input being defined by a first pattern and setting said first process to a blocked state; storing said first pattern in a data structure, said data structure comprising patterns from a plurality of processes; receiving a first message, said first message comprising first data; attempting to match said first data to said first pattern by comparing said first data to patterns in said data structure; when said first data matches said first pattern, causing said first process to resume execution; and when said first data does not match said first pattern, leaving said first process in said blocked state. - 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 message passing system that receives messages from executing processes and passes said messages to other processes; a runnable queue comprising processes ready for execution; a process scheduler that; causes a first process to execute on said computer processor, said first process comprising a plurality of functions; determines that a first function is waiting for a first input, said first input being defined by a first pattern and setting said first process to a blocked state; places said first pattern in a data structure, said data structure comprising patterns from a plurality of processes; receives a first message, said first message comprising first data for said first process; while said first process is in said blocked state, compares said first data to said patterns in said data structure; when said first data matches said first pattern in said first data structure, causes said first process to resume execution; and when said first data does not match said first pattern, leaves said first process in said blocked state. - View Dependent Claims (17, 18, 19, 20)
-
Specification