The patent badge is an abbreviated version of the USPTO patent document. The patent badge does contain a link to the full patent document.
The patent badge is an abbreviated version of the USPTO patent document. The patent badge covers the following: Patent number, Date patent was issued, Date patent was filed, Title of the patent, Applicant, Inventor, Assignee, Attorney firm, Primary examiner, Assistant examiner, CPCs, and Abstract. The patent badge does contain a link to the full patent document (in Adobe Acrobat format, aka pdf). To download or print any patent click here.
Patent No.:
Date of Patent:
Jul. 03, 2001
Filed:
Dec. 09, 1997
John V. McLain, Jr., Colorado Springs, CO (US);
Damon Curnell, Colorado Springs, CO (US);
MCI Communications Corporation, Washington, DC (US);
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.