Appeal 2007-2127 Reexamination Control No. 90/006,621 The action of switching a task to the running state (loading it into the CPU) is called dispatching. OS/2 dispatches tasks on the basis of the thread. When OS/2 switches between threads in the same process, the contents of the LDT register do not change. When OS/2 dispatches a thread in a process different from the one which was interrupted, the contents of the LDT register are changed. The thread context information includes at least the contents of thread's stack and register set, including the program counter. See Lafore, Peter Norton's Inside OS/2, page 139 ("Only two things (besides ID numbers) distinguish one thread from another. Each thread has its own stack space, and each thread has its own set of virtual CPU registers, including the program counter (which points to the address of the instruction currently being executed). When a thread is executing, the contents of its virtual registers are loaded into the real CPU registers. When the thread is not executing, the contents of the registers are saved, to be restored the next time the thread is run."); Iacobucci, OS/2 Programmer's Guide, page 106-107 ("The thread provides program code with an execution environment that consists of the register values, stack, and the CPU mode. The execution environment is collectively referred to as the thread's context."); Petzold, Programming the OS/2 Presentation Manager, page 786 ("All threads within a process share the process's resources (such as open files and memory blocks), but each thread has its own stack and its own set of CPU registers, including the instruction pointer."). Because threads do not own resources except for a stack and a copy of the registers, context switching between threads in the same process can be faster than context switching between processes. 34Page: Previous 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 Next
Last modified: September 9, 2013