Ex Parte 5694604 et al - Page 47


                Appeal 2007-2127                                                                                  
                Reexamination Control No. 90/006,621                                                              
                subtasks in different parts of the program.  Each thread maintains its own                        
                program counter which indicates its place in the program so, for example,                         
                one thread can be executing in instruction range 001-500 and another thread                       
                can be executing in instruction range 501-1000.  Where two sets of                                
                instructions are incapable of running at the same time, assuming they each                        
                have their own processor, there can be no concurrent execution.                                   
                       A normal hardware interrupt is a good example of non-concurrent                            
                execution.  When an interrupt occurs, the main program stops executing and                        
                it does not start running again until the interrupt service routine has                           
                completely finished its operation.  Since it is impossible for the main                           
                program to execute while the interrupt service routine is executing, there is                     
                no concurrent execution of two sets of instructions.  This is sequential                          
                operation.  By contrast, although a multithreading operating system also uses                     
                an interrupt, the operating system is specially designed to switch back and                       
                forth between threads by performing a thread context switch.  Without a                           
                specially designed operating system, multithreading is impossible.                                
                       Importantly, the instructions must be in the same software program.                        

                       (2) "asynchronous. . . execution of a plurality of threads of                              
                       instructions located within the same software program"                                     
                       Asynchronous simply means that the threads execute independently of                        
                one another, meaning that they run simultaneously but without timing                              
                relationships.                                                                                    





                                                       47                                                         

Page:  Previous  40  41  42  43  44  45  46  47  48  49  50  51  52  53  54  Next

Last modified: September 9, 2013