(12) United States Patent (10) Patent No.: US 6,560,626 B1

Size: px
Start display at page:

Download "(12) United States Patent (10) Patent No.: US 6,560,626 B1"

Transcription

1 USOO B1 (12) United States Patent (10) Patent No.: Hogle et al. (45) Date of Patent: May 6, 2003 (54) THREAD INTERRUPTION WITH MINIMAL 5,675, /1997 Hodges et al. RESOURCE USAGE USING AN 5,968,157 A * 10/1999 Joy et al /200 ASYNCHRONOUS PROCEDURE CALL 6,006,247 12/1999 Browning et al /102 6,128,640 A * 10/2000 Kleinman /102 (75) Inventors: Francis M. Hogle, Redmond, WA 6, B1 1/2001 Williams et al. (US); Tracy C. Sharpe, Seattle, WA OTHER PUBLICATIONS US (US) Author unknown, IBM Technical Disclosure Bulletin, Apr. (73) Assignee: Microsoft Corporation, Redmond, WA 1, 1997, T.DB ACC NO NN , vol. 40, Issue No. 4, (US) pp * * ) Notice: Subject to any y disclaimer, the term of this * cited by examiner patent is extended or adjusted under 35 Primary Examiner Sue Lao U.S.C. 154(b) by 0 days. Assistant Examiner-Gary Scott Fourson (74) Attorney, Agent, or Firm-Klarquist Sparkman LLP (21) Appl. No.: 09/054,158 (57) ABSTRACT (22) Filed: Apr. 2, 1998 A thread interruption function in a multi-threaded runtime (51) Int. Cl.... G06F 9/46 environment places a first thread in an alertable blocked (52) U.S. Cl /102; 709/310 State that is interrupted by another thread upon request. The (58) Field of Search /104,318, interrupting thread causes an asynchronous procedure call 709/330, 102, 107, 108, 310,313; 710/200; (APC) to be queued against the blocked thread. A callback 712/244 procedure associated with the APC is executed in a context of the blocked thread and an indicator is Stored in the context (56) References Cited of the blocked thread. The indicator is captured by runtime environment exception handing which causes the blocked U.S. PATENT DOCUMENTS thread to be activated. 5,327,558 A * 7/1994 Burke et al /650 5,623,676 A * 4/1997 Horiguchi et al / Claims, 6 Drawing Sheets 301 INTERRUPTABLE 303 WA. N. ALERABLE STATE STORE EXCEPTION EIN't context CLEAR T1 WANG FLAG 317

2

3 U.S. Patent May 6, 2003 Sheet 2 of 6 CIVOTNAAOC) IELLETCHWOO?OZ ÇOZ VZ QVOTINAWOC)

4

5 U.S. Patent May 6, 2003 Sheet 4 of INTERRUPTABLE 305 SO3 SET T1 WATNG FAG NTERRUPTED 307 N WAT IN ALERABLE STATE Y CLEAR T1 WATING FLAG STORE ExcEPTION N'T context are a 309 N APC DEVERED INTERRUPTED 317 N CLEAR T1 WAITNG FLAG Y 317 () FIG. J.A

6 U.S. Patent May 6, 2003 Sheet S of 6 t 331 INTERRUPT STORE EXCEPTION INT1 CONEXT 351 T ALERTABLE CALLBACK STORE EXCEPTION INT1 CONTEXT FIG. 3C FIG. 3D

7 U.S. Patent May 6, 2003 Sheet 6 of 6 4O1 JAVA. INTERRUP 405 FIG. 4A STORE EXCEPTION IN T1 CONTEXT FIG. 4B

8 1 THREAD INTERRUPTION WITH MINIMAL RESOURCE USAGE USING AN ASYNCHRONOUS PROCEDURE CALL FIELD OF THE INVENTION This invention relates generally to multi-threaded com puter processing, and more particularly to interruption han dling for Such processing. BACKGROUND OF THE INVENTION A computer's central processing unit (CPU) can only execute one instruction at a time. However, fast CPUs are capable of executing many instructions each Second So that by Switching between instructions in one program and those in another, the computer appears to the user to be running multiple programs Simultaneously. Furthermore, a single program can have multiple concurrent processes, or threads, which are dynamically created and terminated by a main thread. The operating System determines which thread should be run and which should be Suspended. Many mechanisms are well-known for Scheduling threads in a multi-threaded com puter environment but all rely, to Some extent, on the fact that most threads must periodically wait for Something to happen and do not require CPU time while they are waiting. Typically threads wait for user input, for data to be retrieved from a Storage device, or Similar external events. A thread can also put itself to sleep for a specified period of time. For example, a thread may perform a certain operation at Spe cific intervals and sleep between those operations. In either case, the thread generally enters a non interruptible, blocked (non-running) State until the condi tions of the wait or Sleep function are Satisfied. A sleeping thread typically resumes execution when the Specified period of time has elapsed. A waiting thread resumes execu tion when a Specified Synchronization object goes through a State transition. Among Standard Synchronization objects are counting Semaphores and mutex ( mutual exclusion') objects. Most implementations of the wait function also provide an optional timeout period So that the waiting thread unconditionally resumes execution after the timeout period expires even though the Specified Synchronization object has not yet undergone a State change. Because the thread functions are unavailable during its blocked State, an additional feature of Some wait and/or Sleep functions permits another thread to prematurely terminate, or interrupt, the wait or sleep So that the waiting/ Sleeping thread resumes execution. Such interruptible wait/ Sleep functions can be based on the non-interruptible version of the wait function by including a Synchronization object in the set of conditions that control the wait function. When another thread requests that the waiting thread be interrupted, the operating System Signals the Synchronization object to change its State. An interruptible sleep function is frequently implemented using the above-described inter ruptible wait function by Setting the optional timeout period equal to the Sleep period. The processor cost for Such interruptible wait/sleep func tions which use Synchronization objects are high. Since each blocked thread must be individually addressable to be awoken, a particular Synchronization object must be asso ciated with each blocked thread. Thus, the resource utiliza tion of the function increases in linear fashion with the number of threads in the multi-threaded environment. Theoretically, a percentage of this resource cost can be mitigated by taking advantage of the fact that the Synchro nization objects are only required when a thread is actually waiting or Sleeping. However, in practice, Such Savings are Small, as most threads in a multi-threaded environment spend the bulk of their elapsed time waiting for pre determined conditions to be Satisfied. Therefore, there is a need in a multi-threaded processing environment for thread interruption which does not exhibit the linear increase in resource utilization exhibited by Syn chronization objects as the number of threads increases. SUMMARY OF THE INVENTION A thread interruption function in multi-threaded runtime environment allows a thread to enter an alertable blocked State So that it can be awakened upon request by another thread. The wake up request causes the runtime environment to queue an asynchronous procedure call (APC) against the blocked thread. A callback routine associated with the APC is processed in a context of the blocked thread when the blocked thread is in the alertable State. An indicator associ ated with the APC is stored in the context of the blocked thread So that exception handling in the runtime environ ment captures the indicator and the blocked thread is acti Vated as a result of the capture to complete the wake up process. The indicator can be created and Stored by the callback routine. Alternatively, the indicator can be created and Stored at the time the APC is queued against the blocked thread or after the callback routine has been processed. In one aspect of the invention, the indicator is implemented as a Standard Java exception class. Because an APC does not require the use of a Synchro nization object to wake up a blocked thread, the impact of the invention on the resource overhead of the runtime environment is minimal. Additionally, the use of Standard APCs requires little additional programming to implement the thread interruption function. The present invention describes Systems, clients, Servers, methods, and computer-readable media of varying Scope. In addition to the aspects and advantages of the present inven tion described in this Summary, further aspects and advan tages of the invention will become apparent by reference to the drawings and by reading the detailed description that follows. BRIEF DESCRIPTION OF THE DRAWINGS FIG. 1 shows a diagram of the hardware and operating environment in conjunction with which embodiments of the invention may be practiced; FIG. 2A is time-line diagram illustrating a System-level overview of interactions between two threads; FIG. 2B is a time-line diagram illustrating a System-level Overview of thread interactions in an exemplary embodi ment of the invention; FIGS. 3A, 3B, 3C and 3D are flowcharts of method to be performed by a thread interruption function and Supporting operating System Services according to three exemplary embodiments of the invention; and, FIGS. 4A and 4B are flowcharts of methods to be per formed by a Java implementation of the thread interruption function according to an exemplary embodiment of the invention. DETAILED DESCRIPTION OF THE INVENTION In the following detailed description of exemplary embodiments of the invention, reference is made to the

9 3 accompanying drawings which form a part hereof, and in which is shown by way of illustration Specific exemplary embodiments in which the invention may be practiced. These embodiments are described in Sufficient detail to enable those skilled in the art to practice the invention, and it is to be understood that other embodiments may be utilized and that logical, mechanical, electrical and other changes may be made without departing from the Spirit or Scope of the present invention. The following detailed description is, therefore, not to be taken in a limiting Sense, and the Scope of the present invention is defined only by the appended claims. The detailed description is divided into five sections. In the first Section, the hardware and the operating environment in conjunction with which embodiments of the invention may be practiced are described. In the Second Section, a system level overview of the invention is presented. In the third Section, methods for exemplary embodiments of the invention are provided. In the fourth Section, a particular Java runtime environment implementation of the invention is described. Finally, in the fifth section, a conclusion of the detailed description is provided. Hardware and Operating Environment FIG. 1 is a diagram of the hardware and operating environment in conjunction with which embodiments of the invention may be practiced. The description of FIG. 1 is intended to provide a brief, general description of Suitable computer hardware and a Suitable computing environment in conjunction with which the invention may be implemented. Although not required, the invention is described in the general context of computer-executable instructions, Such as program modules, being executed by a computer, Such as a personal computer. Generally, program modules include routines, programs, objects, components, data structures, etc., that perform particular tasks or implement particular abstract data types. Moreover, those skilled in the art will appreciate that the invention may be practiced with other computer System configurations, including hand-held devices, multiprocessor Systems, microprocessor-based or programmable consumer electronics, network PCs, minicomputers, mainframe computers, and the like. The invention may also be practiced in distributed computing environments where tasks are performed by remote processing devices that are linked through a communications network. In a distributed com puting environment, program modules may be located in both local and remote memory Storage devices. The exemplary hardware and operating environment of FIG. 1 for implementing the invention includes a general purpose computing device in the form of a computer 20, including a processing unit 21, a System memory 22, and a System bus 23 that operatively couples various System components, including the System memory 22, to the pro cessing unit 21. There may be only one or there may be more than one processing unit 21, Such that the processor of computer 20 comprises a single central-processing unit (CPU), or a plurality of processing units, commonly referred to as a parallel processing environment. The computer 20 may be a conventional computer, a distributed computer, or any other type of computer, the invention is not So limited. The system bus 23 may be any of several types of bus Structures including a memory bus or memory controller, a peripheral bus, and a local bus using any of a variety of bus architectures. The System memory may also be referred to as simply the memory, and includes read only memory (ROM) and random access memory (RAM) 25. A basic input/ output system (BIOS) 26, containing the basic routines that help to transfer information between elements within the computer 20, such as during start-up, is stored in ROM 24. The computer 20 further includes a hard disk drive 27 for reading from and writing to a hard disk, not shown, a magnetic disk drive 28 for reading from or writing to a removable magnetic disk 29, and an optical disk drive 30 for reading from or writing to a removable optical disk 31 Such as a CD ROM or other optical media. The hard disk drive 27, magnetic disk drive 28, and optical disk drive 30 are connected to the system bus 23 by a hard disk drive interface 32, a magnetic disk drive inter face 33, and an optical disk drive interface 34, respectively. The drives and their associated computer-readable media provide nonvolatile Storage of computer-readable instructions, data Structures, program modules and other data for the computer 20. It should be appreciated by those skilled in the art that any type of computer-readable media which can Store data that is accessible by a computer, Such as magnetic cassettes, flash memory cards, digital Video disks, Bernoulli cartridges, random access memories (RAMs), read only memories (ROMs), and the like, may be used in the exemplary operating environment. A number of program modules may be stored on the hard disk, magnetic disk 29, optical disk 31, ROM 24, or RAM 25, including an operating System 35, one or more applica tion programs 36, other program modules 37, and program data 38. A user may enter commands and information into the personal computer 20 through input devices Such as a keyboard 40 and pointing device 42. Other input devices (not shown) may include a microphone, joystick, game pad, Satellite dish, Scanner, or the like. These and other input devices are often connected to the processing unit 21 through a Serial port interface 46 that is coupled to the System bus, but may be connected by other interfaces, Such as a parallel port, game port, or a universal Serial bus (USB). A monitor 47 or other type of display device is also connected to the System bus 23 via an interface, Such as a Video adapter 48. In addition to the monitor, computers typically include other peripheral output devices (not shown), Such as Speakers and printers. The computer 20 may operate in a networked environ ment using logical connections to one or more remote computers, Such as remote computer 49. These logical connections are achieved by a communication device coupled to or a part of the computer 20, the invention is not limited to a particular type of communications device. The remote computer 49 may be another computer, a Server, a router, a network PC, a client, a peer device or other common network node, and typically includes many or all of the elements described above relative to the computer 20, although only a memory Storage device 50 has been illus trated in FIG.1. The logical connections depicted in FIG. 1 include a local-area network (LAN) 51 and a wide-area network (WAN) 52. Such networking environments are commonplace in offices, enterprise-wide computer networks, intranets and the Internet. When used in a LAN-networking environment, the com puter 20 is connected to the local network 51 through a network interface or adapter 53, which is one type of communications device. When used in a WAN-networking environment, the computer 20 typically includes a modem 54, a type of communications device, or any other type of communications device for establishing communications over the wide area network 52, Such as the Internet. The modem 54, which may be internal or external, is connected

10 S to the system bus 23 via the serial port interface 46. In a networked environment, program modules depicted relative to the personal computer 20, or portions thereof, may be Stored in the remote memory Storage device. It is appreciated that the network connections shown are exemplary and other means of and communications devices for establishing a communications link between the computers may be used. The hardware and operating environment in conjunction with which embodiments of the invention may be practiced has been described. The computer in conjunction with which embodiments of the invention may be practiced may be a conventional computer, a distributed computer, or any other type of computer; the invention is not So limited. Such a computer typically includes one or more processing units as its processor, and a computer-readable medium Such as a memory. The computer may also include a communications device Such as a network adapter or a modem, So that it is able to communicatively couple to other computers. System Level Overview A System level overview of the operation of an exemplary embodiment of the invention is described by reference to FIGS. 2A and 2B which show time lines of thread interac tions in a multi-threaded processing environment executing in a computer Such as computer 20 in FIG. 1. A Single program can have multiple concurrent processes, or threads, which are dynamically created and terminated. All the information relevant to the execution of a thread, Such as its pointers, register values, etc., are referred to as the threads context. When the computer Switches from executing one thread to executing another thread, the computer is said to Switch contexts. The operating System of the computer is responsible for saving the context of the thread to be Switched out and restoring the context of the thread to Switched in. Typically threads are switched out when they are waiting for an external event to occur. A thread can also put itself to Sleep for a specified period of time and thus its context will be Switched out. When a thread is waiting or Sleeping, it generally enters a non-interruptible, blocked (non-running) state until the conditions of the wait or sleep function are Satisfied. A waiting thread resumes execution when a specified Synchro nization object, Such as a Semaphore, goes through a State transition, as happens when a resource becomes available for use by the waiting thread. The present invention uses an asynchronous procedure call (APC) to provide a thread interruption function which enables an interrupting thread to prematurely terminate the blocked State of another thread So that the interrupting thread can utilize the functions of the blocked thread. An APC is a well-known asynchronous notification mechanism which permits one thread to request that a specified Subroutine, known as a callback routine,' be executed in the context of another thread. APCs are provided as Standard System Ser vices in an operating System environment Such as the Microsoft Windows family of operating systems. The time bars in FIGS. 2A and 2B represent a series of instructions executing within the contexts of different threads. FIG. 2A illustrates a cycle of a thread which is in a blocked State while a Second thread is performing a task. The blocked thread is normally awakened when the Second thread completes the task. FIG. 2B illustrates the interac tions in one embodiment of the present invention between the blocked thread and an interrupting thread that interrupts the blocked thread prior to the completion of the task by the Second thread. A World Wide Web browser, Such as Microsoft Internet Explorer, which initiates multiple threads to process a page from a web site is used as an example to illustrate the interactions among the threads in FIGS. 2A and 2B. Referring first to FIG. 2A, thread 1 begins a series of instructions 201 which create thread 2 at time mark 1 to download a picture. Thread 1 then calls a sleep operation at time mark 2 to wait for the download to complete. At time mark 3, the Sleep operation code 203 invokes an interrupt ible wait/sleep service provided by the runtime environment. The wait/sleep Service 205, executing as necessary in thread 1's context, maintains thread 1 in an alertable' state. Wait/sleep periods are typically times during which a blocked thread can be alertable but the invention is not limited to embodiments using wait/sleep Services. When thread 2 completes its download, at time mark 4 the wait/sleep service 205 is notified and executes a return to the Sleep operation203, which in turn executes a return to thread 1's code 201 to display the downloaded picture at time mark 5. Exactly when the operating system switches in thread 1's context is dependent upon the particular Scheduling algo rithm utilized by the operating System. However, if the user chooses to halt the display of the page using a browser Stop' button, thread 1 must be awakened before it would be awakened normally by the completion of thread 2 s download. The interaction of an embodiment of the present invention that provides Such a wake up service is illustrated in FIG. 2B. When the stop button is "clicked at time mark 4', the browser directs another thread, thread 3, to terminate all operations associ ated with the page, including thread 2 which is shown as terminating at Some point between time marks 4' and 6'. At time mark 5", thread 3 queues an APC against thread 1. Thread 3 operates asynchronously to the other threads shown in FIG.2B, completing its functions at time mark 10". Because the wait/sleep service 205 is maintaining thread 1 in an alertable State when the APC is queued against it at time mark5", the runtime environment Switches in thread 1's context. The runtime environment executes callback routine code 207 associated with the APC within thread 1's context. The callback routine 207 creates an indicator ( exception ) within thread 1's context and executes a return to the wait/sleep service 205 at time mark 6'. The wait/sleep service 205 passes control back to the sleep operation 203 at time mark 7". The sleep operation code 203, also running in thread 1's context, determines that an APC was queued against thread 1 and that there is an indicator Stored in thread 1's context. At time mark 8', the sleep operation code 203 executes a return to the thread 1 code 201 that initiated it, leaving the indicator stored in thread 1's context. The runtime environ ment's exception handling Service, executing in thread 1's context, detects the presence of the indicator when the Sleep operation code 203 returns. The exception handling Service dispatches an error to thread 1's code 201 for processing, thereby completing the interruption of thread 1 s blocked state. In the present example, thread 1's code 201 determines that its blocked State was interrupted because the Stop button was clicked and thread 1's code 201 terminates at time mark 9'. The system level overview of the operation of an exem plary embodiment of the invention has been described in this Section of the detailed description. An interrupting thread can wake up a blocked thread that is in an alertable State through the use of an asynchronous procedure call which permits the interrupting thread to Specify that a Subroutine should execute in the context of the blocked thread. While

11 7 the invention is not limited to any particular program or application, for sake of clarity a simplified Web browser program having three threads and operating in a multi threaded environment has been described. It will be readily apparent to one skilled in the art that the threads can also be threads associated with different programs. Methods of an Exemplary Embodiment of the Invention In the previous Section, a System level overview of the operation of one exemplary embodiment of the invention was described. In this Section, the particular methods per formed by a thread interruption function, and the Supporting operating System functions, for the exemplary embodiment described above, and for two additional exemplary embodiments, are described by reference to a Series of flowcharts. The methods to be performed constitute com puter programs made up of computer-executable instruc tions. Describing the methods by reference to a flowchart enables one skilled in the art to develop Such programs including Such instructions to carry out the methods on Suitable computer processors by executing the instructions from computer-readable media. FIGS. 3A, 3B, 3C and 3D show flowcharts of methods inclusive of the Steps or acts required to be taken by a thread interruption function and the Supporting operating System Services according to the present invention. The thread interruption function allows one thread to request the awak ening of a blocked but alertable thread, Such as could be implemented to provide an interruptible wait/sleep function. Such an interruptible wait/sleep function would be invoked by a thread when waiting for another process to complete. However, the invention is not limited to implementing only interruptible wait/sleep functions but can be used to imple ment any operation in which it is desired that a blocked thread be alertable by another thread. The three exemplary embodiments of a thread interrup tion function are illustrated in FIGS. 3A, 3B, 3C and 3D. The first, second and third exemplary embodiments for the thread interruption function are described using the Steps or acts illustrated in phantom in FIGS. 3A, 3B and 3D respec tively. FIG. 3C illustrates the steps or acts taken by a Standard APC function in common operating Systems. The steps or acts shown in FIGS. 3A, 3C and 3D are performed in the context of the blocked thread. FIG. 3B shows a method inclusive of the Steps or acts required to be taken by an interruption procedure of the invention on behalf of an interrupting thread and are performed in the context of the interrupting thread. The first embodiment of a sleep operation provided by the invention and called by a thread to permit its interruption while in a blocked State is explained in conjunction with FIG.2B. Thread 1 invokes the sleep operation at step 301 in FIG. 3A to wait for thread 2's download to complete. The sleep operation sets a T1 waiting flag at step 303. Before thread 1 fully enters its alertable state at step 307, the sleep operation determines if thread 1 has already been inter rupted. If So, the operation clears thread 1's waiting flag (step 313) and exits at step 315. If not, the sleep operation calls a system level wait/sleep service at step 307 to enter thread 1 into an alertable blocked state. The system level wait/sleep Service executing in thread 1's context signals the operating System that thread 1 is blocked but alertable, which causes the operating System to Switch in another threads context. When thread 3 in FIG. 2B wishes to awaken thread 1 while thread 1 is in the alertable state represented by step in FIG. 2A, thread 3 issues a wake up request to an interrupt procedure provided by the invention (step 331 in FIG. 3B). The interrupt procedure determines whether thread 1 is in an alertable State by checking the T1 waiting flag at step 335. If thread 1 is alertable, the interrupt procedure uses thread 3's context to queue an APC against thread 1 at step 337 and returns to thread 3 (step 339). If thread 1 is not in an alertable State, the interrupt procedure returns to thread 3 without queuing the APC. Step 333 is not performed in the first exemplary embodiment. Because the APC is queued against thread 1 while it is in an alertable state (step 351 in FIG.3C), the operating system Switches in thread 1's context to execute the APC callback routine (FIG. 3D) within the context of thread 1, thus delivering the APC to thread 1 at step 353. In the first exemplary embodiment, step 373 shown in FIG. 3D is not executed So the callback routine executes a return at Step 375. Because the callback routine is executing in thread 1's context, step 375 returns control to the wait/sleep service which was previously executing in thread 1's context. The wait/sleep Service, having now been interrupted, exits back to the Sleep operation that invoked it. The sleep operation resumes execution at step 309 in FIG. 3A. Because in the first exemplary embodiment the operat ing system only delivers an APC to thread 1 for the purposes of waking up thread 1, thread 1 will not re-invoke the wait/sleep service at step 307. The sleep operation stores an indicator, Such as a flag or an exception, in thread 1's context (step 312), clears the T1 waiting flag (step 313), and initiates a return to the thread 1 code that called the Sleep operation (step 315). The indicator remains Set in thread 1's context upon exiting the Sleep operation at Step 315 and is caught by the operating System error handling mechanism (not shown) executing in thread 1's context. In response, the error handling mechanism dispatches an error to thread 1. When thread 1's code is activated to process the error, the inter ruption of thread 1 s blocked state is complete. The Subse quent execution path of thread 1 is dependent upon thread 1's error handling code. In Situations where the operating System Switched in thread 1's context because a condition associated with the alertable State, Such as the expiration of a sleep period, was Satisfied, the Sleep operation in FIG. 3A determines that an APC was not delivered (step 309), clears thread 1's waiting flag (step 317) and exits (step 319). In the Second exemplary embodiment of the thread inter ruption function, thread 1 enters its alertable state at step 307 as explained above. When thread 3 calls the interrupt procedure at step 331 in FIG. 3B, the interrupt procedure stores the indicator in thread 1's context at 333. The interrupt procedure determines whether thread 1 is in an alertable state by checking the T1 waiting flag at step 335. If thread 1 is alertable, the interrupt procedure uses thread 3's context to queue the APC against thread 1 at step 337 and returns to thread 3 (step 339). If thread 1 is not in an alertable state, the interrupt procedure returns to thread 3 without queuing an APC. Because there is an APC queued against thread 1 while it is in an alertable state, the operating System (FIG. 3C) Switches in thread 1's to execute the APC callback routine within the context of thread 1, thus delivering the APC to thread 1 at step 353. In the second exemplary embodiment, the indicator has already been stored by the time the callback routine shown in FIG. 3D executes, so the callback routine does not execute step 373 but returns control back to the

12 system level wait/sleep service (step 375), leaving the indi cator Stored in thread 1's context. Having been interrupted, the wait/sleep Service returns control back to the Sleep operation. Returning now to FIG. 3A, the Sleep operation resumes executing in thread 1's context at step 309. Because the indicator is Set at this point, the Sleep operation knows the APC was delivered for the purpose of interrupting thread 1's alertable state (step 311). The sleep operation then clears the T1 waiting flag (step 313) and exits back to the thread 1 code that called it (step 315). Upon the return of the sleep operation, the indicator is captured by the operating System error handling mechanism executing in thread 1's context. The error handling mechanism dispatches an error to thread 1 for processing, resulting in thread 1 exiting its blocked State. A similar Series of StepS is performed in the third exem plary embodiment, except that the indicator is Stored in thread 1's context by the callback routine at step 373 in FIG. 3D. AS in the case of the Second exemplary embodiment, the indicator is captured by the error handling mechanism upon the sleep operation returning control to the thread 1 code that called it. In both the second and third exemplary embodiments, if an APC was delivered to thread 1 for a purpose other than interrupting thread 1 s blocked state (step 311), thread 1 will re-enter its alertable state at step 307. The particular methods performed by an interruptible thread function of three exemplary embodiment of the invention have been described. The methods performed to interrupt a blocked thread has been shown by reference to four flowcharts including all the steps from 301 until 319, from 331 to 339, from 351 to 357, and from 317 to 375. Java Runtime Implementation In this Section of the detailed description, a particular implementation of the invention is described that operates in the runtime environment of a Java Virtual Machine. Java is an object-oriented language and is understood by those of ordinary skill in the art. One way to describe an object is as a discrete bundle of code that performs functions and communicates with other objects through messages. Java Source code is compiled into platform-independent byte codes' that make up Java classes. The byte codes of Java applications are interpreted by a Java runtime environment into machine-specific instructions. That Java runtime envi ronment executes in an emulation of a computer running the Java operating System, known as a Java Virtual Machine (JVM). The JVM executes under the control of a non-java operating System running on a computer Such as computer 20 in FIG. 1. Among the Java classes are Exceptions which are used to pass error or other conditions occurring in processes executing in the JVM to general exception han dling code in the JVM. The Java embodiment also references the interaction of the exemplary threads described above in conjunction with FIG. 2B. Thread 1 of FIG. 2B is implemented as a Java client. The steps or acts for a method executed by the thread interruption function in the Java implementation is again shown by FIG. 3A. FIG. 3C represents standard APC services provided by the JVM. The methods shown in flowchart form in FIGS. 4A and 4B are Java versions of the functions provided by the corresponding methods shown in FIGS. 3B and 3D. As described above in conjunction with FIG. 2B, when thread 1 calls the sleep operation at time mark 2, the Sleep operation invokes the System level wait/sleep Service to place thread 1 in the blocked state 205, again represented by step 307 in FIG. 3A. Because the wait/sleep service is a function defined within the Java Specification as interruptible, the JVM automatically marks thread 1 as alertable, So the Steps involving the T1 waiting flag are unnecessary in the Java embodiment. Since thread 1 is guaranteed to be interruptible during period 305, when thread 3 requests the wake up of thread 1 at time mark 5' (step 401 in FIG. 4A), the APC is queued against thread 1 by the JVM (step 405) and generally delivered immediately to thread 1. The APC callback routine, executing in thread 1's context, creates an instance of a Java Exception class ( exception ) at step 425 in FIG. 4B, and stores it in a data structure in the thread 1's context (step 435). When the callback procedure completes at time mark 6' (step 437), the JVM passes control back to the system level wait/sleep Service executing in thread 1's context, which in turn passes control back to the Sleep operation. The exception remains stored within thread 1's context. When the sleep operation regains control at step 309 in FIG. 3A, it determines that thread 1's alertable state was interrupted by the delivery of the APC because of the presence of the exception (steps 309 and 311). The sleep operation then terminates and passes control back to thread 1 at Step 315. Because the exception remains associated with thread 1, the general exception handling code in the JVM is invoked as control is being passed back to thread 1's code. The general exception handling code in JVM passes the exception to thread 1's code for processing, thus completing the interruption of thread 1 s blocked state at time mark 8'. A particular implementation of thread interruption using APCS has been described that takes advantage of a Standard Java Exception class. Although the methods are described above in terms of Java, the invention encompasses other object-oriented programming languages, Such as C++. Furthermore, the concepts are readily applicable to other programming paradigms by one skilled in the art. Conclusion Thread interruption using asynchronous procedure calls (APCs) has been described. An APC is a well-known asynchronous notification mechanism which permits one thread to request that a specified Subroutine be executed in the context of another thread. An APC does not require the allocation of a Synchronization object to wake up a blocked thread that is to execute the Specific Subroutine, and does not incur the high resource overhead associated with Such objects. Additionally, the use of standard APCs requires little additional programming to implement thread interruption. Although specific embodiments have been illustrated and described herein, it will be appreciated by those of ordinary skill in the art that any arrangement which is calculated to achieve the same purpose may be Substituted for the Specific embodiments shown. This application is intended to cover any adaptations or variations of the present invention. For example, those of ordinary skill within the art will appreciate that the invention is readily applicable to any multi-threaded processing environment that Supports APCs or other facilities that enable one thread to request a Sub routine be executed in the context of another thread. Furthermore, those of ordinary skill within the art will appreciate that object-oriented programming languages other than Java are Suitable for use in the invention. The terminology used in this application with respect to thread interruption using APCs is meant to include all of

13 11 these environments. Therefore, it is manifestly intended that this invention be limited only by the following claims and equivalents thereof. We claim: 1. A computer System comprising: a processing unit, a System memory coupled to the processing unit through a System bus, a computer readable medium coupled to the processing unit through a System bus, a multi-threaded runtime environment executed from the computer-readable medium by the processing unit, wherein the runtime environment comprises: an interruptible wait/sleep Service, an asynchronous program call (APC) service; and an exception handling Service; and a thread interruption function executed from the computer-readable medium by the processing unit for running within the runtime environment, wherein the thread interruption function comprises: a sleep operation that invokes the interruptible wait/ Sleep Service to place a thread in an alertable blocked State; and a callback routine that is executed by the runtime environment in response to an interrupting thread causing an APC associated with the callback routine to be queued against the blocked thread, wherein executing the callback routine causes the wait/sleep Service to exit back to the Sleep operation So that an exception associated with the APC is captured by the exception handling Service and the runtime environ ment activates the blocked thread to process the exception. 2. The computer System of claim 1, wherein executing the callback routine causes the exception to be associated with the APC. 3. The computer System of claim 1, wherein the exception is associated with the APC when the APC is queued against the blocked thread. 4. The computer System of claim 1, wherein the exception is associated with the APC by the sleep operation when the wait/sleep Service exits back to the Sleep operation. 5. The computer system of claim 1, wherein the multi threaded runtime environment is an emulation of a computer running an object-oriented, platform-independent operating System. 6. The computer system of claim 1, wherein the thread interruption function further comprises an interrupt proce dure that queues the APC against the blocked thread when the interrupt procedure is called by the interrupting thread. 7. The computer system of claim 5, wherein the exception is an object used to pass conditions to general exception handling code in the emulation. 8. In a computer System having a processing unit, a System memory, and a computer readable medium Storing a thread interruption function having a Sleep operation and a callback routine, a method for awakening a blocked thread in a multi-threaded runtime environment having an inter ruptible wait/sleep Service, an asynchronous program call (APC) service, and an exception handling Service, the method comprising: executing the thread interruption function from the computer-readable medium by the processing unit to ran in the multi-threaded runtime environment; invoking the interruptible wait/sleep Service by the Sleep operation to place a thread in an alertable blocked State; 1O in response to an interrupting thread causing an APC associated with a callback routine to be queued against the blocked thread, executing the callback routine by the runtime environment, causing the wait/sleep Service to exit back to the Sleep operation from Said executing the callback routine; capturing an exception associated with the APC by the exception handling Service; and activating the blocked thread by the runtime environment to process the exception. 9. The method of claim 8 further comprising causing the exception to be associated with the APC from Said executing the callback routine. 10. The method of claim 8 further comprising associating the exception with the APC when the APC is queued against the blocked thread. 11. The method of claim 8 further comprising associating the exception with the APC by the sleep operation when the wait/sleep Service exits back to the Sleep operation. 12. The method of claim 8 wherein the multi-threaded runtime environment is an emulation of a computer running an object-oriented, platform-independent operating System. 13. The method of claim 12 wherein the exception is an object used to pass conditions to general exception handling code in the emulation. 14. The method of claim 12 wherein the thread interrup tion function further has an interrupt procedure, the method further comprising queuing the APC against the blocked thread when the interrupt procedure is called by the inter rupting thread. 15. A method performed on a computer System for awak ening a blocked thread in a multi-threaded runtime environment, the method comprising: executing a multi-threaded runtime environment having an interruptible wait/sleep Service, an asynchronous program call (APC) service, and an exception handling Service; and executing a thread interruption function to run within the runtime environment, wherein the thread interruption function comprises: a sleep operation that invokes the interruptible wait/ Sleep Service to place a thread in an alertable blocked State; and a callback routine that is executed by the runtime environment in response to an interrupting thread causing an APC associated with the callback routine to be queued against the blocked thread, wherein executing the callback routine causes the wait/sleep Service to exit back to the Sleep operation So that an exception associated with the APC is captured by the exception handling Service and the runtime environ ment activates the blocked dread to process the exception. 16. The method of claim 15, wherein executing the callback routine causes the exception to be associated with the APC. 17. The method of claim 15, wherein the exception is associated with the APC when the APC is queued against the blocked thread. 18. The method of claim 15, wherein the exception is associated with the APC by the sleep operation when the wait/sleep Service exits back to the Sleep operation. 19. The method of claim 15, wherein the multi-threaded runtime environment is an emulation of a computer running an object-oriented, platform-independent operating System. 20. The method of claim 19, wherein the exception is an object used to pass conditions to general exception handling code in the emulation.

14 The method of claim 15, wherein the thread interrup tion function further comprises an interrupt procedure that queues the APC against the blocked thread when the inter rupt procedure is called by the interrupting thread. 22. A computer-readable Software program carrying medium having a Software program carried thereon for executing on a computer to awaken a blocked thread in a multi-threaded runtime environment having an interruptible wait/sleep Service, an asynchronous program call (APC) Service, and an exception handling Service, the computer executable Software program comprising: a thread interruption function for running on the computer within the runtime environment; in the thread interruption function, a sleep operation for invoking the interruptible wait/sleep Service to place a thread in an alertable blocked State; and in the thread interruption function, a callback routine for executing on the computer within the runtime environ ment in response to an interrupting thread causing an APC associated with the callback routine to be queued against the blocked thread, wherein executing the call back routine causes the wait/sleep Service to exit back to the Sleep operation So that an exception associated with the APC is captured by the exception handling Service and the runtime environment activates the blocked thread to process the exception. 1O The computer-readable Software program carrying medium of claim 22, wherein executing the callback routine causes the exception to be associated with the APC. 24. The computer-readable Software program carrying medium of claim 22, wherein the exception is associated with the APC when the APC is queued against the blocked thread. 25. The computer-readable Software program carrying medium of claim 22, wherein the exception is associated with the APC by the sleep operation when the wait/sleep Service exits back to the Sleep operation. 26. The computer-readable Software program carrying medium of claim 22, wherein the multi-threaded runtime environment is an emulation of a computer running an object-oriented, platform-independent operating System. 27. The computer-readable Software program carrying medium of claim 26, wherein the exception is an object used to pass conditions to general exception hang code in the emulation. 28. The computer-readable Software program carrying medium of claim 22, wherein the thread interruption func tion further comprises an interrupt procedure that queues the APC against the blocked thread when the interrupt proce dure is called by the interrupting thread. k k k k k

15 UNITED STATES PATENT AND TRADEMARK OFFICE CERTIFICATE OF CORRECTION PATENT NO. : 6,560,626 B1 Page 1 of 1 DATED : May 6, 2003 INVENTOR(S) : Hogle et al. It is certified that error appears in the above-identified patent and that said Letters Patent is hereby corrected as shown below: Column 12 Line 51, "dread' Should read -- thread --. Signed and Sealed this Thirtieth Day of September, 2003 JAMES E ROGAN Director of the United States Patent and Trademark Office

(12) United States Patent (10) Patent No.: US 6,657,548 B2. Dai (45) Date of Patent: Dec. 2, 2003

(12) United States Patent (10) Patent No.: US 6,657,548 B2. Dai (45) Date of Patent: Dec. 2, 2003 USOO6657548B2 (12) United States Patent (10) Patent No.: US 6,657,548 B2 Dai (45) Date of Patent: Dec. 2, 2003 (54) SYSTEMSTATUS LIGHT INDICATOR 6,501,897 B1 * 12/2002 German et al.... 385/134 DEVICE EMBEDDED

More information

(12) Patent Application Publication (10) Pub. No.: US 2006/ A1. Choi et al. (43) Pub. Date: Apr. 27, 2006

(12) Patent Application Publication (10) Pub. No.: US 2006/ A1. Choi et al. (43) Pub. Date: Apr. 27, 2006 US 20060090088A1 (19) United States (12) Patent Application Publication (10) Pub. No.: US 2006/0090088 A1 Choi et al. (43) Pub. Date: Apr. 27, 2006 (54) METHOD AND APPARATUS FOR Publication Classification

More information

(12) United States Patent

(12) United States Patent US007107617B2 (12) United States Patent Hursey et al. (10) Patent No.: (45) Date of Patent: Sep. 12, 2006 (54) MALWARE SCANNING OF COMPRESSED COMPUTER S (75) Inventors: Nell John Hursey, Hertfordshire

More information

(12) United States Patent (10) Patent No.: US 7,640,289 B2

(12) United States Patent (10) Patent No.: US 7,640,289 B2 USOO7640289B2 (12) United States Patent (10) Patent No.: Chen (45) Date of Patent: *Dec. 29, 2009 (54) INTELLIGENT COMPUTER SWITCH 6,388,658 B1 5/2002 Ahern et al. 6,567,869 B2 5/2003 Shirley (75) Inventor:

More information

(12) United States Patent (10) Patent No.: US 7,739,050 B2

(12) United States Patent (10) Patent No.: US 7,739,050 B2 USOO773905OB2 (12) United States Patent (10) Patent No.: US 7,739,050 B2 Tatro (45) Date of Patent: Jun. 15, 2010 (54) SOFTWARE-BASED QUALITY CONTROL (56) References Cited ANALYSIS OF WELL LOG DATA U.S.

More information

(12) United States Patent (10) Patent No.: US 6,199,058 B1

(12) United States Patent (10) Patent No.: US 6,199,058 B1 USOO6199058B1 (12) United States Patent (10) Patent No.: US 6,199,058 B1 Wong et al. (45) Date of Patent: Mar. 6, 2001 (54) REPORT SERVER CACHING 5,168,444 12/1992 Cukor et al.... 705/1 5,625,818 4/1997

More information

(12) United States Patent

(12) United States Patent (12) United States Patent Beck et al. USOO6842611B2 (10) Patent No.: (45) Date of Patent: Jan. 11, 2005 (54) RECEIVED DATA PROCESSING METHOD IN COMMUNICATION DEVICE FOR SUPPORTING WIRELESS COMMUNICATION

More information

(12) United States Patent

(12) United States Patent (12) United States Patent Sanchez et al. USOO6477666B1 (10) Patent No.: US 6,477,666 B1 (45) Date of Patent: Nov. 5, 2002 (54) AUTOMATIC FAULT INJECTION INTO A JAVA VIRTUAL MACHINE (JVM) (75) Inventors:

More information

(12) United States Patent (10) Patent No.: US 7, B2

(12) United States Patent (10) Patent No.: US 7, B2 USOO7941.543B2 (12) United States Patent (10) Patent No.: US 7,941.543 B2 Moussallam et al. (45) Date of Patent: May 10, 2011 (54) SYSTEMAND METHOD FOR MIGRATING 2002/0169781 A1* 11/2002 Poole et al....

More information

(12) Patent Application Publication (10) Pub. No.: US 2016/ A1

(12) Patent Application Publication (10) Pub. No.: US 2016/ A1 (19) United States US 2016037 1322A1 (12) Patent Application Publication (10) Pub. No.: US 2016/0371322 A1 GUNTI et al. (43) Pub. Date: Dec. 22, 2016 (54) EFFICIENT MANAGEMENT OF LARGE (52) U.S. Cl. NUMBER

More information

Is more than one finger placed on touchpad surface?

Is more than one finger placed on touchpad surface? USOO776O189B2 (12) United States Patent (10) Patent No.: Cheston et al. (45) Date of Patent: Jul. 20, 2010 (54) TOUCHPAD DIAGONAL SCROLLING 6,043,809 A 3/2000 Holehan 6,707.449 B2 3/2004 Hinckley et al.

More information

Xying. GoD-12 ACL 1-1. (12) Patent Application Publication (10) Pub. No.: US 2009/ A1. (19) United States SUPPLIER POLICY DRIVER/-108 PLATFORM

Xying. GoD-12 ACL 1-1. (12) Patent Application Publication (10) Pub. No.: US 2009/ A1. (19) United States SUPPLIER POLICY DRIVER/-108 PLATFORM (19) United States US 20090172797A1 (12) Patent Application Publication (10) Pub. No.: US 2009/0172797 A1 Yao et al. (43) Pub. Date: Jul. 2, 2009 (54) METHOD AND SYSTEM FOR SECURING APPLICATION PROGRAMINTERFACES

More information

(12) Patent Application Publication (10) Pub. No.: US 2008/ A1

(12) Patent Application Publication (10) Pub. No.: US 2008/ A1 US 200800284.06A1 (19) United States (12) Patent Application Publication (10) Pub. No.: US 2008/00284.06 A1 JONNALA et al. (43) Pub. Date: Jan. 31, 2008 (54) PROCESS REPLICATION METHOD AND (30) Foreign

More information

(12) Patent Application Publication (10) Pub. No.: US 2012/ A1

(12) Patent Application Publication (10) Pub. No.: US 2012/ A1 (19) United States US 20120047545A1 (12) Patent Application Publication (10) Pub. No.: US 2012/0047545 A1 SELLERS et al. (43) Pub. Date: Feb. 23, 2012 (54) TOPOGRAPHIC FRAUD DETECTION (52) U.S. Cl....

More information

(12) Patent Application Publication (10) Pub. No.: US 2006/ A1

(12) Patent Application Publication (10) Pub. No.: US 2006/ A1 (19) United States US 200601 01189A1 (12) Patent Application Publication (10) Pub. No.: US 2006/0101189 A1 Chandrasekaran et al. (43) Pub. Date: (54) SYSTEM AND METHOD FOR HOT (52) U.S. Cl.... 711 f6 CLONING

More information

(12) United States Patent

(12) United States Patent (12) United States Patent USOO7007134B2 (10) Patent No.: Suetake (45) Date of Patent: Feb. 28, 2006 (54) MICROCOMPUTER, METHOD OF (56) References Cited CONTROLLING CACHE MEMORY, AND U.S. PATENT DOCUMENTS

More information

(12) United States Patent (10) Patent No.: US 6,208,340 B1. Amin et al. (45) Date of Patent: Mar. 27, 2001

(12) United States Patent (10) Patent No.: US 6,208,340 B1. Amin et al. (45) Date of Patent: Mar. 27, 2001 USOO620834OB1 (12) United States Patent (10) Patent No.: US 6,208,340 B1 Amin et al. (45) Date of Patent: Mar. 27, 2001 (54) GRAPHICAL USER INTERFACE 5,317,687 5/1994 Torres... 395/159 INCLUDING A DROP-DOWN

More information

(12) United States Patent

(12) United States Patent US008176558B2 (12) United States Patent Ku Wamura (54) ANTI-VIRUS METHOD, COMPUTER, AND RECORDING MEDIUM (75) Inventor: Shinya Kuwamura, Kawasaki (JP) (73) Assignee: Fujitsu Limited, Kawasaki (JP) (*)

More information

(12) Patent Application Publication (10) Pub. No.: US 2009/ A1

(12) Patent Application Publication (10) Pub. No.: US 2009/ A1 (19) United States US 20090234832A1 (12) Patent Application Publication (10) Pub. No.: US 2009/0234832 A1 Gao et al. (43) Pub. Date: Sep. 17, 2009 (54) GRAPH-BASED KEYWORD EXPANSION (52) U.S. Cl.... 707/5:

More information

(12) Patent Application Publication (10) Pub. No.: US 2016/ A1

(12) Patent Application Publication (10) Pub. No.: US 2016/ A1 US 2016035.0099A1 (19) United States (12) Patent Application Publication (10) Pub. No.: US 2016/035.0099 A1 Suparna et al. (43) Pub. Date: Dec. 1, 2016 (54) APPLICATION DEPLOYMENT TO VIRTUAL Publication

More information

(12) Patent Application Publication (10) Pub. No.: US 2011/ A1

(12) Patent Application Publication (10) Pub. No.: US 2011/ A1 (19) United States US 2011 0004845A1 (12) Patent Application Publication (10) Pub. No.: US 2011/0004845 A1 Ciabarra (43) Pub. Date: Jan. 6, 2011 (54) METHOD AND SYSTEM FOR NOTIFYINGA USER OF AN EVENT OR

More information

(12) United States Patent (10) Patent No.: US 6,199,163 B1

(12) United States Patent (10) Patent No.: US 6,199,163 B1 USOO6199163B1 (12) United States Patent (10) Patent No.: US 6,199,163 B1 Dumas et al. 45) Date of Patent: Mar. 6, 2001 9 (54) HARD DISK PASSWORD LOCK 5,231,662 * 7/1993 van Rumpt et al.... 380/9 5,283,828

More information

(12) Patent Application Publication (10) Pub. No.: US 2016/ A1

(12) Patent Application Publication (10) Pub. No.: US 2016/ A1 US 20160261583A1 (19) United States (12) Patent Application Publication (10) Pub. No.: US 2016/0261583 A1 ZHANG (43) Pub. Date: Sep. 8, 2016 (54) METHOD AND APPARATUS FOR USER Publication Classification

More information

(12) Patent Application Publication (10) Pub. No.: US 2008/ A1

(12) Patent Application Publication (10) Pub. No.: US 2008/ A1 (19) United States US 2008.0068375A1 (12) Patent Application Publication (10) Pub. No.: US 2008/0068375 A1 Min et al. (43) Pub. Date: Mar. 20, 2008 (54) METHOD AND SYSTEM FOR EARLY Z (30) Foreign Application

More information

(12) United States Patent (10) Patent No.: US 7, B2

(12) United States Patent (10) Patent No.: US 7, B2 USOO7561411 B2 (12) United States Patent (10) Patent No.: US 7,561.411 B2 Johnson, Jr. (45) Date of Patent: Jul. 14, 2009 (54) UNINTERRUPTIBLE POWER DISTRIBUTION 7,400,066 B2 * 7/2008 Tassitino et al....

More information

(12) Patent Application Publication (10) Pub. No.: US 2005/ A1

(12) Patent Application Publication (10) Pub. No.: US 2005/ A1 (19) United States US 2005O125217A1 (12) Patent Application Publication (10) Pub. No.: US 2005/0125217 A1 MaZOr (43) Pub. Date: Jun. 9, 2005 (54) SERVER-BASED SPELL CHECK ENGINE (52) U.S. Cl.... 704/1

More information

wo W /1997 * cited by examiner

wo W /1997 * cited by examiner 111111 1111111111111111111111111111111111111111111111111111111111111 US006963980Bl (12) United States Patent Matts son (10) Patent No.: US 6,963,980 Bl (45) Date of Patent: Nov. 8, 2005 (54) COMBINED HARDWARE

More information

(12) Patent Application Publication (10) Pub. No.: US 2004/ A1

(12) Patent Application Publication (10) Pub. No.: US 2004/ A1 (19) United States US 2004O260967A1 (12) Patent Application Publication (10) Pub. No.: US 2004/0260967 A1 Guha et al. (43) Pub. Date: Dec. 23, 2004 (54) METHOD AND APPARATUS FOR EFFICIENT FAULTTOLERANT

More information

(12) United States Patent (10) Patent No.: US 6,745,245 B1. Carpenter (45) Date of Patent: Jun. 1, 2004

(12) United States Patent (10) Patent No.: US 6,745,245 B1. Carpenter (45) Date of Patent: Jun. 1, 2004 USOO6745245B1 (12) United States Patent (10) Patent No.: Carpenter (45) Date of Patent: Jun. 1, 2004 (54) MANAGING ACCESS TO SET TOP BOX 6.256,733 B1 * 7/2001 Thakkar et al.... 713/155 OBJECTS USING TELEVISION

More information

(12) (10) Patent No.: US 7, B2. Peng (45) Date of Patent: Mar. 20, 2007

(12) (10) Patent No.: US 7, B2. Peng (45) Date of Patent: Mar. 20, 2007 United States Patent US007194291B2 (12) (10) Patent No.: US 7,194.291 B2 Peng (45) Date of Patent: Mar. 20, 2007 (54) PROTECTIVE MASK OF MOBILE PHONE 6,591,088 B1* 7/2003 Watanabe... 455/90.3 6,594,472

More information

(12) United States Patent

(12) United States Patent (12) United States Patent Matsuda USOO6211649B1 (10) Patent No.: (45) Date of Patent: Apr. 3, 2001 (54) USB CABLE AND METHOD FOR CHARGING BATTERY OF EXTERNAL APPARATUS BY USING USB CABLE (75) Inventor:

More information

(12) United States Patent

(12) United States Patent USOO7370164B1 (12) United States Patent Nagarkar et al. (54) BACKUP OF VIRTUAL MACHINES FROM THE BASE MACHINE (75) Inventors: Kuldeep Sureshrao Nagarkar, Pune (IN); Sinh Dang Nguyen, Eden Prairie, MN (US);

More information

/ client computer. \ single sign-on. application program server (AP) network. server (SS0) (12) United States Patent Hsieh et a].

/ client computer. \ single sign-on. application program server (AP) network. server (SS0) (12) United States Patent Hsieh et a]. US007278155B2 (12) United States Patent Hsieh et a]. (10) Patent N0.: (45) Date of Patent: US 7,278,155 B2 Oct. 2, 2007 (54) (75) (73) (*) (21) (22) (65) (30) Foreign Application Priority Data Oct. 22,

More information

US A United States Patent (19) 11 Patent Number: 6,008,921 Brusky et al. (45) Date of Patent: Dec. 28, 1999

US A United States Patent (19) 11 Patent Number: 6,008,921 Brusky et al. (45) Date of Patent: Dec. 28, 1999 US006008.921A United States Patent (19) 11 Patent Number: 6,008,921 Brusky et al. (45) Date of Patent: Dec. 28, 1999 54 METHODS AND APPARATUS FOR 56) References Cited CONVERTING REMOTE CONTROL SIGNALS

More information

US 7.663,338 B2. Feb. 16, (45) Date of Patent: (10) Patent No.: Guthrie et al. used to receive a USB bus voltage from the USB interface and (51)

US 7.663,338 B2. Feb. 16, (45) Date of Patent: (10) Patent No.: Guthrie et al. used to receive a USB bus voltage from the USB interface and (51) USOO7663338B2 (12) United States Patent Guthrie et al. (10) Patent No.: (45) Date of Patent: US 7.663,338 B2 Feb. 16, 2010 (54) (75) (73) (*) (21) (22) (65) (60) (51) (52) (58) (56) METHOD AND APPARATUS

More information

(12) United States Patent

(12) United States Patent US007617236B2 (12) United States Patent Gaurav et al. (10) Patent No.: (45) Date of Patent: Nov. 10, 2009 (54) METHOD AND SYSTEM FOR DISPLAYING RESULTS OF A DYNAMIC SEARCH (75) Inventors: Vishal Gaurav,

More information

(12) United States Patent

(12) United States Patent (12) United States Patent Buckland et al. USOO6467022B1 (10) Patent No.: (45) Date of Patent: Oct. 15, 2002 (54) (75) (73) (21) (22) (62) (51) (52) (58) EXTENDING ADAPTER MEMORY WITH SOLID STATE DISKS

More information

(73) Assignee: Nokia Networks Oy (FI) Wii: 12: 'We (*) Notice: Subject to any disclaimer, the term of this * cited by examiner

(73) Assignee: Nokia Networks Oy (FI) Wii: 12: 'We (*) Notice: Subject to any disclaimer, the term of this * cited by examiner USOO6246871B1 12) United States Patent 10) Patent No.: US 6,246,871 B1 9 9 Ala-Laurila (45) Date of Patent: Jun. 12, 2001 (54) METHOD AND APPARATUS FOR 5,941,946 8/1999 Baldwin et al.. PROVIDING ACCESS

More information

(12) (10) Patent No.: US 7,349,890 B1. Pathak et al. (45) Date of Patent: Mar. 25, 2008

(12) (10) Patent No.: US 7,349,890 B1. Pathak et al. (45) Date of Patent: Mar. 25, 2008 United States Patent USOO7349890B1 (12) () Patent No.: Pathak et al. () Date of Patent: Mar., 2008 (54) SYSTEM AND METHOD FOR DYNAMICALLY APPLYING CONTENT 6,044,375 A * 3/2000 Shmueli et al.... 707/1 6,1,584

More information

(12) Patent Application Publication (10) Pub. No.: US 2006/ A1

(12) Patent Application Publication (10) Pub. No.: US 2006/ A1 (19) United States US 20060041739A1 (12) Patent Application Publication (10) Pub. No.: US 2006/0041739 A1 Iwakura et al. (43) Pub. Date: Feb. 23, 2006 (54) MEMORY DUMP GENERATION WITH (52) U.S. Cl....

More information

(12) United States Patent

(12) United States Patent (12) United States Patent Margalit et al. USOO6554621B1 (10) Patent No.: (45) Date of Patent: Apr. 29, 2003 (54) CABLE APPARATUS (75) Inventors: Yanki Margalit, Ramat Gan (IL); Dany Margalit, Ramat Gan

More information

(12) United States Patent

(12) United States Patent (12) United States Patent Xiao US006663420B1 (10) Patent No.: (45) Date of Patent: Dec. 16, 2003 (54) ADAPTER FOR EXCHANGING DATA AND TRANSMITTING POWER BETWEEN PC AND PORTABLE DEVICE (75) Inventor: Hui

More information

(12) Patent Application Publication (10) Pub. No.: US 2011/ A1

(12) Patent Application Publication (10) Pub. No.: US 2011/ A1 US 2011 O270691A1 (19) United States (12) Patent Application Publication (10) Pub. No.: US 2011/0270691 A1 Park (43) Pub. Date: Nov. 3, 2011 (54) METHOD AND SYSTEM FOR PROVIDING Publication Classification

More information

Virtual Private Radio via Virtual Private Network - patent application

Virtual Private Radio via Virtual Private Network - patent application From the SelectedWorks of Marc A Sherman February, 2006 Virtual Private Radio via Virtual Private Network - patent application Marc A Sherman Available at: https://works.bepress.com/marc_sherman/2/ UNITED

More information

(12) Patent Application Publication (10) Pub. No.: US 2009/ A1

(12) Patent Application Publication (10) Pub. No.: US 2009/ A1 (19) United States (12) Patent Application Publication (10) Pub. No.: US 2009/0222841 A1 Mirajkar et al. US 20090222841A1 (43) Pub. Date: Sep. 3, 2009 (54) (75) (73) (21) (22) ACCELERATION OF RECEIVE DATA

More information

(12) Patent Application Publication (10) Pub. No.: US 2005/ A1

(12) Patent Application Publication (10) Pub. No.: US 2005/ A1 (19) United States (12) Patent Application Publication (10) Pub. No.: US 2005/0192794A1 Ertemalp et al. US 2005O192794A1 (43) Pub. Date: Sep. 1, 2005 (54) (75) (73) (21) (22) (63) SYSTEMAND METHOD FOR

More information

f / ) (12) United States Patent Kodorkin et al. US 8,799,900 B1 Aug. 5, 2014 \\ 312 C USB, ICQ f 3 S Skype (10) Patent N0.: (45) Date of Patent:

f / ) (12) United States Patent Kodorkin et al. US 8,799,900 B1 Aug. 5, 2014 \\ 312 C USB, ICQ f 3 S Skype (10) Patent N0.: (45) Date of Patent: US008799900B1 (12) United States Patent Kodorkin et al. (10) Patent N0.: (45) Date of Patent: Aug. 5, 2014 (54) SHARING WEBCAM BETWEEN GUEST AND HOST OS (75) Inventors: Alexander Kodorkin, Moscow (RU);

More information

(12) United States Patent (10) Patent No.: US 7,158,627 B1

(12) United States Patent (10) Patent No.: US 7,158,627 B1 US007 158627 B1 (12) United States Patent () Patent No.: Lu (45) Date of Patent: Jan. 2, 2007 (54) METHOD AND SYSTEM FOR INHIBITING (56) References Cited SOFTSWITCH OVERLOAD U.S. PATENT DOCUMENTS (75)

More information

(12) United States Patent (10) Patent No.: US 6,649,849 B2

(12) United States Patent (10) Patent No.: US 6,649,849 B2 USOO6649849B2 (12) United States Patent (10) Patent No.: US 6,649,849 B2 Bass et al. (45) Date of Patent: Nov. 18, 2003 (54) HANDHELD MAILING SYSTEM 5,710.706 A * 1/1998 Marklet al.... 177/25.15 6,153,835

More information

(12) United States Patent (10) Patent N0.: US 6,446,174 B1 Dow (45) Date of Patent: Sep. 3, 2002

(12) United States Patent (10) Patent N0.: US 6,446,174 B1 Dow (45) Date of Patent: Sep. 3, 2002 US006446174B1 (12) United States Patent (10) Patent N0.: US 6,446,174 B1 Dow (45) Date of Patent: Sep. 3, 2002 (54) COMPUTER SYSTEM WITH DRAM BUS 5,969,728 A 10/1999 Dye et al...... 345/515 6,003,121 A

More information

(12) United States Patent

(12) United States Patent (12) United States Patent USOO7202875B2 () Patent No.: Foehr et al. (45) Date of Patent: Apr., 2007 (54) PALETTE-BASED, MULTI-TINT, NAMED (58) Field of Classification Search... 345/581, COLOR METHODS AND

More information

(12) (10) Patent No.: US 7,103,736 B2. Sachs (45) Date of Patent: Sep. 5, 2006

(12) (10) Patent No.: US 7,103,736 B2. Sachs (45) Date of Patent: Sep. 5, 2006 United States Patent US007103736B2 (12) (10) Patent No.: Sachs (45) Date of Patent: Sep. 5, 2006 (54) SYSTEM FOR REPAIR OF ROM 5.325,504 A * 6/1994 Tipley et al.... T11/128 PROGRAMMING ERRORS ORDEFECTS

More information

(12) United States Patent

(12) United States Patent (12) United States Patent USOO7506087B2 (10) Patent No.: US 7,506,087 B2 H0 et al. (45) Date of Patent: Mar. 17, 2009 (54) METHOD FOR CONFIGURING A (56) References Cited PERPHERAL COMPONENT INTERCONNECT

More information

(12) Patent Application Publication (10) Pub. No.: US 2008/ A1

(12) Patent Application Publication (10) Pub. No.: US 2008/ A1 (19) United States US 20080215829A1 (12) Patent Application Publication (10) Pub. No.: US 2008/0215829 A1 Lin et al. (43) Pub. Date: Sep. 4, 2008 (54) OPTICAL DISC RECORDER AND BUFFER Publication Classification

More information

(12) Patent Application Publication (10) Pub. No.: US 2012/ A1

(12) Patent Application Publication (10) Pub. No.: US 2012/ A1 (19) United States US 2012O100868A1 (12) Patent Application Publication (10) Pub. No.: US 2012/0100868 A1 KM et al. (43) Pub. Date: Apr. 26, 2012 (54) METHOD AND APPARATUS FOR Publication Classification

More information

US A1 (19) United States (12) Patent Application Publication (10) Pub. No.: US 2009/ A1 Joshi et al. (43) Pub. Date: Nov.

US A1 (19) United States (12) Patent Application Publication (10) Pub. No.: US 2009/ A1 Joshi et al. (43) Pub. Date: Nov. US 20090287845A1 (19) United States (12) Patent Application Publication (10) Pub. No.: US 2009/0287845 A1 Joshi et al. (43) Pub. Date: Nov. 19, 2009 (54) (75) (73) MEDIATOR WITH INTERLEAVED STATIC AND

More information

(12) United States Patent (10) Patent No.: US 6,731,259 B2

(12) United States Patent (10) Patent No.: US 6,731,259 B2 USOO6731259B2 (12) United States Patent (10) Patent No.: US 6,731,259 B2 Yer et al. (45) Date of Patent: May 4, 2004 (54) DRIVING CIRCUIT OF A LIQUID CRYSTAL 6,121.950 A * 9/2000 Zavracky et al.... 34.5/101

More information

(12) Patent Application Publication (10) Pub. No.: US 2005/ A1

(12) Patent Application Publication (10) Pub. No.: US 2005/ A1 US 2005O153733A1 (19) United States (12) Patent Application Publication (10) Pub. No.: US 2005/0153733 A1 Park et al. (43) Pub. Date: Jul. 14, 2005 (54) CALL CONTROL METHOD FOR Publication Classification

More information

231 age sins N3 : as a. (12) United States Patent US 8,194,335 B2. Jun. 5, (45) Date of Patent: (10) Patent No.

231 age sins N3 : as a. (12) United States Patent US 8,194,335 B2. Jun. 5, (45) Date of Patent: (10) Patent No. USOO8194,335B2 (12) United States Patent Hsueh (10) Patent No.: (45) Date of Patent: US 8,194,335 B2 Jun. 5, 2012 (54) (75) (73) (*) (21) (22) (65) (51) (52) (58) OPTICAL LENS ON WAFER LEVEL AND RELATED

More information

(12) United States Patent (10) Patent No.: US 6,467,088 B1

(12) United States Patent (10) Patent No.: US 6,467,088 B1 USOO6467088B1 (12) United States Patent (10) Patent No.: US 6,467,088 B1 alsafadi et al. (45) Date of Patent: Oct. 15, 2002 (54) RECONFIGURATION MANAGER FOR WO WO9015394 6/1990... GO6F/15/46 CONTROLLING

More information

Medina (45) Date of Patent: Aug. 18, (54) FOOT CONTROLLED COMPUTER MOUSE 2004/ A1* 11/2004 Koda et al , 183

Medina (45) Date of Patent: Aug. 18, (54) FOOT CONTROLLED COMPUTER MOUSE 2004/ A1* 11/2004 Koda et al , 183 (12) United States Patent US007576729B2 (10) Patent No.: Medina (45) Date of Patent: Aug. 18, 2009 (54) FOOT CONTROLLED COMPUTER MOUSE 2004/022.7741 A1* 11/2004 Koda et al.... 345, 183 WITH FINGER CLICKERS

More information

(12) United States Patent (10) Patent No.: US 6,922,791 B2

(12) United States Patent (10) Patent No.: US 6,922,791 B2 USOO6922791 B2 (12) United States Patent (10) Patent No.: Mashayekhi et al. (45) Date of Patent: Jul. 26, 2005 (54) FAILOVER SYSTEM AND METHOD FOR 6,115,830 A 9/2000 Zabarsky et al.... 714/15 CLUSTER ENVIRONMENT

More information

System and method for encoding and decoding data files

System and method for encoding and decoding data files ( 1 of 1 ) United States Patent 7,246,177 Anton, et al. July 17, 2007 System and method for encoding and decoding data files Abstract Distributed compression of a data file can comprise a master server

More information

52 U.S. Cl , /21s. 709,224. This downloaded module is then executed by the client

52 U.S. Cl , /21s. 709,224. This downloaded module is then executed by the client USOO61191.65A United States Patent (19) 11 Patent Number: Li et al. (45) Date of Patent: *Sep. 12, 2000 54 CONTROLLED DISTRIBUTION OF 5,781,703 7/1998 Desai et al.... 395/200.54 APPLICATION PROGRAMS INA

More information

(12) Patent Application Publication (10) Pub. No.: US 2010/ A1

(12) Patent Application Publication (10) Pub. No.: US 2010/ A1 US 20100050092A1 (19) United States (12) Patent Application Publication (10) Pub. No.: US 2010/0050092 A1 Williams et al. (43) Pub. Date: Feb. 25, 2010 (54) CONTENT SHARING AND INSTANT (21) Appl. No.:

More information

58 Field of Search /341,123, NEE"E", "E.

58 Field of Search /341,123, NEEE, E. USOO597.7975A United States Patent (19) 11 Patent Number: Mugura et al. (45) Date of Patent: Nov. 2, 1999 54) ARRAY OF DISPLAYED GRAPHIC IMAGES 5,233,333 8/1993 Borsuk... 345/127 FOR ENABLING SELECTION

More information

OSPATCHER. United States Patent (19) Anschuetz et al. 11 Patent Number: 5,305,455 (45) Date of Patent: Apr. 19, 1994

OSPATCHER. United States Patent (19) Anschuetz et al. 11 Patent Number: 5,305,455 (45) Date of Patent: Apr. 19, 1994 United States Patent (19) Anschuetz et al. USOO5305455A 11 Patent Number: 5,305,455 (45) Date of Patent: Apr. 19, 1994 54 75 (73) 21 22 (51) (52) 58 PER THREAD EXCEPTION MANAGEMENT FOR MULTTASKING MULTITHREADED

More information

(12) United States Patent

(12) United States Patent (12) United States Patent Novik et al. USOO6367034B1 (10) Patent No.: (45) Date of Patent: Apr. 2, 2002 (54) USING QUERYLANGUAGE FOR EVENT FILTERING AND AGGREGATION (75) Inventors: Lev Novik, Bellevue;

More information

(12) Patent Application Publication (10) Pub. No.: US 2016/ A1

(12) Patent Application Publication (10) Pub. No.: US 2016/ A1 US 20160364902A1 (19) United States (12) Patent Application Publication (10) Pub. No.: US 2016/0364902 A1 Hong et al. (43) Pub. Date: (54) HIGH QUALITY EMBEDDED GRAPHICS (52) U.S. Cl. FOR REMOTE VISUALIZATION

More information

(12) Patent Application Publication (10) Pub. No.: US 2004/ A1

(12) Patent Application Publication (10) Pub. No.: US 2004/ A1 (19) United States US 2004O246971A1 (12) Patent Application Publication (10) Pub. No.: US 2004/0246971 A1 Banerjee et al. (43) Pub. Date: Dec. 9, 2004 (54) APPARATUS FOR ENABLING MULTI-TUPLE TCP SOCKETS

More information

(12) United States Patent (10) Patent No.: US 8,253,777 B2

(12) United States Patent (10) Patent No.: US 8,253,777 B2 US008253777B2 (12) United States Patent (10) Patent No.: US 8,253,777 B2 Lin (45) Date of Patent: Aug. 28, 2012 (54) PANORAMIC CAMERA WITH A PLURALITY 7,424,218 B2 * 9/2008 Baudisch et al.... 396,322 OF

More information

Wireless devices supports in a simple environment

Wireless devices supports in a simple environment USOO8868690B2 (12) United States Patent (10) Patent No.: US 8,868,690 B2 Tsao (45) Date of Patent: *Oct. 21, 2014 (54) SYSTEMAND METHOD FOR SUPPORT (52) U.S. Cl. (71) (72) (73) (*) (21) (22) (65) (63)

More information

(12) Patent Application Publication (10) Pub. No.: US 2004/ A1

(12) Patent Application Publication (10) Pub. No.: US 2004/ A1 (19) United States US 20040098533A1 (12) Patent Application Publication (10) Pub. No.: US 2004/0098533 A1 Henshaw et al. (43) Pub. Date: May 20, 2004 (54) USE OF AMEDIA CACHE FOR (52) U.S. Cl.... 711/100

More information

(12) United States Patent (10) Patent No.: US 6,526,272 B1

(12) United States Patent (10) Patent No.: US 6,526,272 B1 USOO6526272B1 (12) United States Patent (10) Patent No.: Bansal et al. (45) Date of Patent: Feb. 25, 2003 (54) REDUCING CALLING COSTS FOR 6,167,250 A * 12/2000 Rahman et al... 455/408 WIRELESS PHONES USING

More information

(10) Patent No.: US 8,169,449 B2 (56) 7,528,890 B2 * 2007/ A2 * 2009/ A1 * * cited by examiner

(10) Patent No.: US 8,169,449 B2 (56) 7,528,890 B2 * 2007/ A2 * 2009/ A1 * * cited by examiner 111111 1111111111111111111111111111111111111111111111111111111111111 US8169449B2 c12) United States Patent Turcotte et al. (1) Patent o.: US 8,169,449 B2 (45) Date of Patent: May 1, 212 (54) SYSTEM COMPOSITIG

More information

(12) Patent Application Publication (10) Pub. No.: US 2002/ A1

(12) Patent Application Publication (10) Pub. No.: US 2002/ A1 (19) United States US 2002O103858A1 (12) Patent Application Publication (10) Pub. No.: US 2002/0103858A1 Bracewell et al. (43) Pub. Date: (54) TEMPLATE ARCHITECTURE AND RENDERING ENGINE FOR WEB BROWSER

More information

(12) United States Patent

(12) United States Patent (12) United States Patent US007 140922B2 (10) Patent No.: US 7,140,922 B2 Lulu et al. (45) Date of Patent: Nov. 28, 2006 (54) MULTI-OUTLET AC/DC ADAPTER (56) References Cited (75) Inventors: Daniel V.

More information

(12) United States Patent (10) Patent No.: US 6,611,682 B1

(12) United States Patent (10) Patent No.: US 6,611,682 B1 USOO661 1682B1 (12) United States Patent (10) Patent No.: Pröjtz (45) Date of Patent: Aug. 26, 2003 (54) MOBILE TELEPHONE APPARATUS AND 6,188.888 B1 * 2/2001 Bartle et al.... 455/417 METHOD FOR CALL DIVERT

More information

(12) Patent Application Publication (10) Pub. No.: US 2014/ A1

(12) Patent Application Publication (10) Pub. No.: US 2014/ A1 US 2014.0004952A1 (19) United States (12) Patent Application Publication (10) Pub. No.: US 2014/0004952 A1 Kern (43) Pub. Date: (54) EXCHANGINGVIRTUAL REWARDS FOR (52) U.S. Cl. COMPUTING RESOURCES USPC...

More information

(12) Patent Application Publication (10) Pub. No.: US 2015/ A1

(12) Patent Application Publication (10) Pub. No.: US 2015/ A1 US 20150358424A1 (19) United States (12) Patent Application Publication (10) Pub. No.: US 2015/0358424 A1 BRAUN et al. (43) Pub. Date: Dec. 10, 2015 (54) SYSTEMAND METHOD FOR PROVIDING (52) U.S. Cl. DATABASE

More information

(12) Patent Application Publication (10) Pub. No.: US 2007/ A1. (51) Int. Cl. ? 200

(12) Patent Application Publication (10) Pub. No.: US 2007/ A1. (51) Int. Cl. ? 200 (19) United States US 20070288373A1 (12) Patent Application Publication (10) Pub. No.: US 2007/0288373 A1 Wilkes (43) Pub. Date: Dec. 13, 2007 (54) TRANSACTION ALERT MESSAGES ASSOCATED WITH FINANCIAL TRANSACTIONS

More information

(12) Patent Application Publication (10) Pub. No.: US 2016/ A1

(12) Patent Application Publication (10) Pub. No.: US 2016/ A1 US 2016O156189A1 (19) United States (12) Patent Application Publication (10) Pub. No.: US 2016/0156189 A1 Ci (43) Pub. Date: Jun. 2, 2016 (54) CLOUD BASED ENERGY SYSTEM (52) U.S. Cl. CPC. H02J 3/32 (2013.01);

More information

mm m I1111(1)]!6l(l)lll7llltillllllllll mm m

mm m I1111(1)]!6l(l)lll7llltillllllllll mm m United States Patent [19] Wisor et al. mm m I1111(1)]!6l(l)lll7llltillllllllll mm m [11] Patent Number: [45] Date of Patent: Feb., 1997 [541 [75] [21] [22] [63] [511 [52] [58] [56] SYSTEM MANAGEMENT INTERRUPT

More information

(12) (10) Patent No.: US 9,588,741 B2. Liberant (45) Date of Patent: Mar. 7, 2017

(12) (10) Patent No.: US 9,588,741 B2. Liberant (45) Date of Patent: Mar. 7, 2017 United States Patent USOO9588.741B2 (12) () Patent No.: Liberant (45) Date of Patent: Mar. 7, 2017 (54) METHODS, APPARATUSES AND 2006/0059464 A1 3/2006 Jameson... 717/120 COMPUTER PROGRAMI PRODUCTS FOR

More information

Feb. 5, 1997 JP Japan... so limiting the amount of time wasted in standby during

Feb. 5, 1997 JP Japan... so limiting the amount of time wasted in standby during USOO6O16490A United States Patent (19) 11 Patent Number: 6,016,490 Watanabe et al. (45) Date of Patent: Jan. 18, 2000 54) DATABASE MANAGEMENT SYSTEM 5,893,912 4/1999 Freund et al.... 707/103 5,893.913

More information

(12) Patent Application Publication (10) Pub. No.: US 2006/ A1

(12) Patent Application Publication (10) Pub. No.: US 2006/ A1 (19) United States US 20060O881 67A1 (12) Patent Application Publication (10) Pub. No.: US 2006/0088167 A1 Bade et al. (43) Pub. Date: Apr. 27, 2006 (54) METHOD AND SYSTEM FOR BACKUP AND RESTORE OF A CONTEXT

More information

USOO A United States Patent (19) 11 Patent Number: 6,125,108 Shafer et al. (45) Date of Patent: Sep. 26, 2000

USOO A United States Patent (19) 11 Patent Number: 6,125,108 Shafer et al. (45) Date of Patent: Sep. 26, 2000 USOO6125.108A United States Patent (19) 11 Patent Number: 6,125,108 Shafer et al. (45) Date of Patent: Sep. 26, 2000 54 METHOD AND SYSTEM FOR ENHANCED 57 ABSTRACT CLIENT DENTIFICATION - A method and System

More information

(12) United States Patent

(12) United States Patent USOO853.8494B2 (12) United States Patent Hsu (10) Patent No.: (45) Date of Patent: US 8,538,494 B2 Sep. 17, 2013 (54) MOBILE PHONE AND METHOD FOR TRANSFERRING BATTERY POWER OF THE MOBILE PHONE (75) Inventor:

More information

(12) Patent Application Publication (10) Pub. No.: US 2010/ A1

(12) Patent Application Publication (10) Pub. No.: US 2010/ A1 (19) United States US 2010.019 1896A1 (12) Patent Application Publication (10) Pub. No.: US 2010/0191896 A1 Yang et al. (43) Pub. Date: Jul. 29, 2010 (54) SOLID STATE DRIVE CONTROLLER WITH FAST NVRAM BUFFER

More information

(12) (10) Patent No.: US 7,330,395 B2. Ichijo (45) Date of Patent: Feb. 12, 2008

(12) (10) Patent No.: US 7,330,395 B2. Ichijo (45) Date of Patent: Feb. 12, 2008 United States Patent USOO7330395 B2 (12) (10) Patent No.: US 7,330,395 B2 Ichijo (45) Date of Patent: Feb. 12, 2008 (54) METHOD AND SYSTEM FOR 2002fOO67835 A1 6/2002 Vatter... 381.58 AUTOMATICALLY CALIBRATING

More information

(12) United States Patent (10) Patent No.: US 8,385,897 B1

(12) United States Patent (10) Patent No.: US 8,385,897 B1 US0083.85897 B1 (12) United States Patent (10) Patent No.: Yadav-Ranjan (45) Date of Patent: Feb. 26, 2013 (54) GLOBAL TEXT MESSAGING SYSTEMAND (56) References Cited METHOD U.S. PATENT DOCUMENTS (75) Inventor:

More information

(12) United States Patent

(12) United States Patent US0088.12887B2 (12) United States Patent Liu et al. (54) ELECTRONIC DISPLAY DEVICE AUTOMATICALLY TURNS ON OR OFF ACCORDING TO WHETHER AUSERN FRONT OF THE DISPLAY (75) Inventors: Xu Liu, Shanghai (CN);

More information

(12) Patent Application Publication (10) Pub. No.: US 2007/ A1

(12) Patent Application Publication (10) Pub. No.: US 2007/ A1 US 20070276982A1 (19) United States (12) Patent Application Publication (10) Pub. No.: US 2007/0276982 A1 Denning (43) Pub. Date: (54) THIRD SWITCH FOR VXS/VMEBUS (57) COMPLIANT COMPUTING SYSTEM (76) Inventor:

More information

(12) Patent Application Publication (10) Pub. No.: US 2006/ A1

(12) Patent Application Publication (10) Pub. No.: US 2006/ A1 US 2006O164425A1 (19) United States (12) Patent Application Publication (10) Pub. No.: US 2006/0164425A1 Parke (43) Pub. Date: Jul. 27, 2006 (54) METHODS AND APPARATUS FOR Publication Classification UPDATING

More information

(12) United States Patent (10) Patent No.: US 6,845,158 B2

(12) United States Patent (10) Patent No.: US 6,845,158 B2 USOO684.5158B2 (12) United States Patent (10) Patent No.: US 6,845,158 B2 KOester et al. (45) Date of Patent: Jan. 18, 2005 (54) RETRACTABLE-REMOVABLE HEADPHONE 5,136,446 A 8/1992 Yamamoto et al. MODULE

More information

(12) Patent Application Publication (10) Pub. No.: US 2004/ A1

(12) Patent Application Publication (10) Pub. No.: US 2004/ A1 US 2004O237046A1 (19) United States (12) Patent Application Publication (10) Pub. No.: US 2004/0237046A1 Burchall et al. (43) Pub. Date: (54) UNICODE TRANSITIONAL CODE POINT DATABASE (52) U.S. Cl.... 71.5/531

More information

(12) United States Patent

(12) United States Patent (12) United States Patent USOO6941277B2 (10) Patent No.: Imag0 (45) Date of Patent: Sep. 6, 2005 (54) METHODS AND SYSTEMS FOR PROVIDING (56) References Cited ONLINE INFORMATION FOR NETWORKED DEVICES U.S.

More information

(12) Patent Application Publication (10) Pub. No.: US 2005/ A1

(12) Patent Application Publication (10) Pub. No.: US 2005/ A1 (19) United States US 20050281269A1 (12) Patent Application Publication (10) Pub. No.: US 2005/0281269 A1 Choi (43) Pub. Date: (54) MOBILE TELECOMMUNICATION SYSTEM (30) Foreign Application Priority Data

More information

(12) United States Patent (10) Patent No.: US 6,701,320 B1

(12) United States Patent (10) Patent No.: US 6,701,320 B1 USOO670132OB1 (12) United States Patent (10) Patent No.: Marple () Date of Patent: Mar. 2, 2004 (54) SYSTEM AND METHOD FOR 6,539,118 B1 * 3/2003 Murray et al.... 382/229 DETERMINING A CHARACTER ENCODING

More information

US A United States Patent (19) 11 Patent Number: 6,055,373 McElroy et al. (45) Date of Patent: Apr. 25, 2000

US A United States Patent (19) 11 Patent Number: 6,055,373 McElroy et al. (45) Date of Patent: Apr. 25, 2000 US006055373A United States Patent (19) 11 Patent Number: 6,055,373 McElroy et al. (45) Date of Patent: Apr. 25, 2000 54) COMPUTER SYSTEM INCLUDING A 5,291,614 3/1994 Baker et al.... 395/800 DIGITAL SIGNAL

More information