Pattern matching process scheduler in message passing environment
First Claim
1. A method performed as part of an operating system, said method comprising:
- executing a first process on a computer processor, said first process comprising a plurality of functions and said first process being managed by said operating system;
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;
receiving a first message, said first message comprising first data;
while said first process is in said blocked state, attempting to match said first data in said first pattern;
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;
when said first data matches said first pattern, setting said first process in a runnable state;
when said first data matches said first pattern, moving said first process to a priority position in a runnable queue.
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.
176 Citations
24 Claims
-
1. A method performed as part of an operating system, said method comprising:
-
executing a first process on a computer processor, said first process comprising a plurality of functions and said first process being managed by said operating system; 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; receiving a first message, said first message comprising first data; while said first process is in said blocked state, attempting to match said first data in said first pattern; 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; when said first data matches said first pattern, setting said first process in a runnable state; when said first data matches said first pattern, moving said first process to a priority position in a runnable queue. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
-
-
9. 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 definedby a first pattern and setting said first process to a blocked state; receives a first message, said first message comprising first data for said first process; attempts to match said first data to said first pattern; when said first data matches said first pattern, 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;
said process scheduler being a component of an operating system;said process scheduler that further; when said first data matches said first pattern, places said first process in said runnable queue process scheduler that further; when said first data matches said first pattern, moves said first process to a priority position in said runnable queue. - View Dependent Claims (10, 11, 12, 13, 14, 15, 16, 17)
-
-
18. A method performed by an operating system, said method comprising:
-
executing a first process on a first computer processor, said first process comprising a plurality of functions, said first process being managed by said operating system;
during said executing, maintaining an execution pointer at a currently executing location within said first process;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, and storing said execution pointer at said first function;
receiving a first message, said first message being addressed to said first process;
examining said execution pointer to identify said first pattern;
comparing said first pattern to said first message while said first process is in said blocked state;when said first data matches said first pattern, causing said first process to resume execution and to consume said first message; when said first data matches said first pattern, setting said first process in a runnable state; when said first data matches said first pattern, moving said first process to a priority position in said runnable queue. - View Dependent Claims (19, 20, 21, 22, 23, 24)
-
Specification