Ex Parte 5694604 et al - Page 72


                Appeal 2007-2127                                                                                  
                Reexamination Control No. 90/006,621                                                              

                       In preemptive multithreading, Thread 1 is interrupted at the end of its                    
                timeslice, the Thread 1's context is saved (including Thread 1's program                          
                counter), Thread 2's context is retrieved and loaded into the CPU (including                      
                Thread 2's program counter indicating the next instruction to be executed),                       
                Thread 2 executes until the end of its timeslice, whereupon Thread 2's                            
                context is saved, Thread 1's context is retrieved and loaded into the CPU,                        
                and the process repeats.  Each thread executes an incremental portion of its                      
                task during each timeslice.  At any point in time, both threads are executing                     
                at some point between their beginning and end, except for needing to share                        
                the CPU—this is what is meant by concurrent execution of threads.                                 
                       In the 1982 application, the compiler is interrupted, registers are                        
                saved, the editor interrupt service routine executes until it finishes, the                       
                registers are restored, and control is returned to the compiler by an                             
                instruction in the interrupt service routine.  According to what Patent Owner                     
                states to be the normal operation, the editor finishes before the end of the                      
                timeslice and control returns to the compiler.  As seen in the middle figure,                     
                the compiler is then interrupted at the next interrupt.  Because of the varying                   
                amounts of time required by the editor, depending on the operation to be                          
                performed and whatever else is happening on the computer, the editor and                          
                compiler do not execute for equal periods of time.  If the editor takes longer                    
                than a timeslice, the editor continues to execute past the interrupt time since                   
                interrupts are disabled as shown by the bottom figure.  The editor is never                       
                interrupted but always finishes executing and returns control to the compiler.                    
                       Importantly, the compiler and editor do not execute concurrently as                        
                that term is defined in "multithreading."  Concurrent execution requires that                     

                                                       72                                                         

Page:  Previous  65  66  67  68  69  70  71  72  73  74  75  76  77  78  79  Next

Last modified: September 9, 2013