Appeal 2007-2127 Reexamination Control No. 90/006,621 l. Multithreaded versus sequential programs A sequential or linear program has a single thread of execution that executes instructions from the start to the finish with no simultaneity or overlap among instructions (no concurrency); there is only one program counter that traces the path of execution of instructions through the program. By contrast, the defining characteristic of multithreading is that multiple threads execute instructions concurrently, i.e., more than one thread is executing at the same time, and each thread may be executing instructions in a different part of the program, as indicated by its individual program counter. If there was a processor available for each thread, all threads could run simultaneously at exactly the same time, but, for a machine with one processor, the threads must take turns running their tasks a little at a time. As stated in LaFore, Peter Norton's Inside OS/2, page 134: A computer program, when it is running, executes a sequence of instructions which are stored in the computer's memory. This activity—executing a sequence of stored instructions—is called a thread, or sometimes a thread of execution. Think of an instruction pointer that points to the next instruction to be executed. Generally the instruction pointer moves forward through memory, pointing to each instruction in sequence, but sometimes it jumps to a different part of memory (to accommodate loops, function calls, and other non-sequential activities). This instruction pointer tracks the activity of a particular thread. When a process is started it begins executing a single thread. . . . However, . . . a thread can create a new thread. Both threads can then run at the same time. What does this mean? Again, imagine that each thread has its own instruction pointer, showing where it is in the instruction sequence in memory. The scheduler lets one instruction pointer move through memory for a while, then the 39Page: Previous 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 Next
Last modified: September 9, 2013