System and method for performing hybrid preemptive and cooperative multi-tasking in a computer system
First Claim
1. A method for performing hybrid preemptive and cooperative multi-tasking, comprising the steps of:
- (1) processing a logical unit of computer instructions for a first task, the programming further comprising the steps of;
maintaining a command control vector for the first task, the command control vector comprising a pointer to a virtual object, the virtual object storing instructions for processing the first task; and
generating a response for the first task based upon instructions pointed to by the command control vector;
(2) interrupting processing of the first task; and
(3) processing a logical unit of computer instructions for a second task.
3 Assignments
0 Petitions
Accused Products
Abstract
A system, method and computer program product for performing hybrid preemptive and cooperative multi-tasking in a computer system executes a number n of logical units of work before interrupting a task. A logical unit of work is defined as a set of one or more computer instructions, the completion of which is a logical stopping point with few or no temporary variable to store. A logical unit of work can be, for example, one or more instructions in a stream of instructions, where each instruction requires a number of individual computer code instructions to execute. In a preferred embodiment, the system is implemented as a controller application which operates under an existing operating system. In an alternative embodiment, the present invention is implemented as an integral part of an operating system. In operation, the present invention performs a number n of logical units of work for a first task or process. At the completion of the logical unit of work, few, if any, temporary values need to be stored for later use when processing resumes. Instead, only a pointer to a current or next instruction needs to be maintained. The present invention then selects a second process for execution. A number m of logical units of work are then performed for the second process. At the completion of the number m of logical unit of work, few, if any, temporary values need to be stored for later use when processing resumes. Instead, only a pointer to a current or next instruction needs to be maintained. The number n can be equal to, greater than or less than the number m. In one embodiment, the numbers n and m are dynamically set according to the type of task being processed. In another embodiment, the numbers n and m are predetermined according to the type of tasks performed.
-
Citations
18 Claims
-
1. A method for performing hybrid preemptive and cooperative multi-tasking, comprising the steps of:
-
(1) processing a logical unit of computer instructions for a first task, the programming further comprising the steps of;
maintaining a command control vector for the first task, the command control vector comprising a pointer to a virtual object, the virtual object storing instructions for processing the first task; and
generating a response for the first task based upon instructions pointed to by the command control vector;
(2) interrupting processing of the first task; and
(3) processing a logical unit of computer instructions for a second task. - View Dependent Claims (2, 3, 4, 5, 6, 7)
(a) processing a number n of additional logical units of computer instructions for the first task.
-
-
3. The method of claim 2, wherein step (3) comprises the step of:
(a) processing a number m of additional logical units of computer instructions for the second task.
-
4. The method of claim 3, further comprising the step of:
(4) setting the numbers n and m to predetermined and fixed values.
-
5. The method of claim 3, further comprising the step of:
(4) setting the numbers n and m dynamically.
-
6. The method of claim 3, further comprising the step of:
(4) setting the numbers n and m equal to each other.
-
7. The method of claim 1, wherein step (1) comprises:
-
(a) maintaining a command control vector for the first task, the command control vector comprising a virtual object pointer for pointing to a virtual object, the virtual object storing instructions for processing the first task, the virtual object including a script invocation for invoking a script, the script comprising instructions for generating detailed logical responses for the first task, the command control vector further comprising a script pointer for pointing to the script instructions;
(b) generating a response for the first task based upon instructions pointed to by the command control vector, including the command response table instructions and the script instructions.
-
-
8. A system for performing hybrid preemptive and cooperative multi-tasking, comprising the steps of:
-
(1) means for processing a logical unit of computer instructions for a first task;
(2) means for interrupting processing of the first task;
(3) means for processing a logical unit of computer instructions for a second task;
(4) first virtual object means for employing a set of instructions and a first data segment to process the first task; and
(5) second virtual object means for employing a set of instructions and a second data segment to process the second task. - View Dependent Claims (9, 10, 11, 12, 13, 14)
means for processing a number n of additional logical units of computer instructions for the first task.
-
-
10. The system of claim 9, wherein said means for processing a logical unit of computer instructions for a second task, comprises:
means for processing a number m of additional logical units of computer instructions for the second task.
-
11. The system of claim 10, further comprising:
means for setting the numbers n and m to predetermined and fixed values.
-
12. The system of claim 10, further comprising:
means for dynamically setting the numbers n and m.
-
13. The system of claim 10, further comprising:
means for setting the numbers n and m equal to each other.
-
14. The system of claim 10, further comprising:
means for interfacing with an operating system so that said means for processing logical units of computer instructions and said means for or interrupting processing operate in conjunction with the operating system.
-
15. A computer program product for permitting a computer system to perform hybrid preemptive and cooperative multi-tasking, said computer program product comprising:
-
a computer usable medium having computer readable program code means embodied in said medium for causing an application program to execute on the computer graphics system, said computer readable program code means comprising;
a computer readable first program code means for causing the computer system to process a logical unit of computer instructions for a first task, wherein the first program code means further comprises;
code means for maintaining a command control vector for the first task, the command control vector comprising a pointer to a virtual object, the virtual object storing instructions for processing the first task; and
code means for generating a response for the first task based upon instructions pointed to by the command control vector;
a computer readable second program code means for causing the computer system to interrupt processing of the first task;
a computer readable third program code means for causing the computer, system to process a logical unit of computer instructions for a second task. - View Dependent Claims (16, 17, 18)
means for processing a number n of additional logical units of computer instructions for the first task.
-
-
17. The system of claim 16, wherein said second program code means comprises:
means for processing a number m of additional logical units of computer instructions for the second task.
-
18. The system of claim 15, further comprising:
a computer readable fourth third program code means for causing the computer system to process the first and second tasks using a single copy of a method object.
Specification