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
57
Page: Previous 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 Next
Last modified: September 9, 2013