Ex Parte 5694604 et al - Page 34


                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