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.
34
Page: Previous 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 Next
Last modified: September 9, 2013