Appeal 2007-2127 Reexamination Control No. 90/006,621 HUGHES, OBJECT ORIENTED MULTITHREADING USING C++ 99, 110, Wiley Computer Publishing (1997) (Ex. 17) ('[Threads execute for short intervals, then release control of the processor.'); MICROSOFT COMPUTER DICTIONARY 303 (1999, Fourth Ed.) ('In [cooperative multitasking], the operating system relies on the task to voluntarily cede control to another task . . . .') (Ex. 19)) (Reiffin, ¶¶ 29-30)" (Br. 33). We agree that operating systems can provide for threads to voluntarily release the unused remainder of a timeslice (although Patent Owner's statement is based on descriptions of multithreading systems he had nothing to do with). However, this evades the real issue, which is that a thread in a "preemptive multithreading" system, as claimed, must be interruptible (capable of being preempted) if it is still executing when its timeslice expires. There is nothing inconsistent about a thread being interruptible, yet relinquishing control if it finishes before the end of its timeslice. However, it is inconsistent with the nature of "preemptive multithreading" for a thread to not be capable of being preempted if the timeslice expires. The whole point of preemptive multithreading is to let each thread run a fixed amount of time and then preempting it to let another thread run. Mr. Reiffin's declaration contains misleading statements to the effect that not all threads are interruptible by referring to "cooperative and selfish threads" (Reiffin declaration, ¶¶ 31, 35). Cooperative or event-driven multithreading is when each thread runs until it is finished or until some event occurs which causes the thread to suspend execution, such as waiting for I/O. In a "cooperative multithreading" system, the amount of time a thread is allowed to run is determined by the thread, whereas in a "preemptive multithreading" system, the time is determined by the timeslice 57Page: Previous 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 Next
Last modified: September 9, 2013