|Publication number||US7000100 B2|
|Application number||US 09/870,965|
|Publication date||Feb 14, 2006|
|Filing date||May 31, 2001|
|Priority date||May 31, 2001|
|Also published as||US20020184482|
|Publication number||09870965, 870965, US 7000100 B2, US 7000100B2, US-B2-7000100, US7000100 B2, US7000100B2|
|Inventors||John Lacombe, Jeffery L. Galloway, Tim Majni|
|Original Assignee||Hewlett-Packard Development Company, L.P.|
|Export Citation||BiBTeX, EndNote, RefMan|
|Patent Citations (29), Referenced by (68), Classifications (19), Legal Events (8)|
|External Links: USPTO, USPTO Assignment, Espacenet|
1. Field of the Invention
The present invention generally relates to watchdog timers for personal computer systems. More specifically, the preferred embodiment relates to the use of a software watchdog timer to monitor the uptime of individual applications running on a computer system.
2. Background of the Invention
Watchdog circuits are rather common in modem computer systems. A watchdog circuit is one way of creating a stable computing platform. In fact, when one speaks of a stable, robust computer system, the watchdog circuit is indirectly one of the reasons that the system has these attributes. Computer designers rely on the watchdog circuit to reset the system in the unfortunate event something goes wrong. If a computer system hangs or locks up, the watchdog circuit can perform a number of tasks, including logging error information, checking memory, and rebooting the system so the computer will be up and running again in a short amount of time.
A watchdog circuit typically is a timing circuit that measures a certain system activity or activities. If the system activity does not occur within a prescribed timer period, the watchdog circuit generates an output signal indicating that the activity has not occurred. In its simplest form, the watchdog timer insures that the system is operational. Modem watchdog circuits are capable of performing a variety of tasks, but the heart of a watchdog timer is essentially just a counter. The timer continually counts up or down using the system clock towards a predetermined value until one of two things happen. First, the counter can be cleared so that the amount of time required to count to the predetermined value is pushed back to the maximum value. For example, if a timer counts from a maximum value of 300 seconds towards a minimum value of zero seconds, then when the timer is cleared, the clock will revert back to the maximum value and continue counting down from 300 seconds. The clear command (sometimes referred to as “hitting the watchdog”) is typically issued by the operating system (OS). Programmers will insert commands in the OS code instructing the OS to periodically hit the watchdog. Thus, as long as the OS is operating as intended, the watchdog timer will be cleared periodically and the timer never reaches the predetermined value.
The second thing that may happen as the watchdog timer is running is that the counter actually does reach the predetermined value. This obviously occurs if the watchdog is never hit and the timer is never cleared. In this case, the watchdog timer will issue a reset command to the system and the computer will reboot. This type of automatic recovery is particularly helpful in unmanned computer systems. Obviously, if a user is working at a computer system and the OS becomes unresponsive, the user can initiate the reset procedure themselves. If, on the other hand, the computer is generally unmanned and working as a server in a computer network, it may not be readily obvious that the computer has ceased normal operations. The first person affected by such a condition will likely be a network user who discovers that they can't access a network database or perhaps their email. Thus, if a server becomes inoperative, the watchdog timer guarantees that the system will be up and running again in a short amount of time.
In their present configuration, conventional watchdog timers are certainly useful for their intended purpose. However, there are a number of drawbacks that can be improved upon by a more modem approach. From the perspective of server customers, the health of the OS is not necessarily the most important aspect of a network server. More often than not, a server actually exists to run a specific application and the proper operation of that application is the most important goal for the customer. Thus, if the key application or applications cease operation, but the OS effectively continues, the system will never reset and the customer experiences unwanted downtime.
Another problem with conventional systems is that the fix for a system lock-up is a full system reset or reboot operation. A more efficient solution to this problem is to first restart the failed application. The time required to end an application process and subsequently restart of that application is much less than the time required to reset the entire system. If the application is successfully restarted, the end result is a decrease in downtime. If, however the OS is unresponsive as well, the conventional watchdog timer will still recover the application by forcing a system reset. In either case, the minimum required downtime is achieved.
It is desirable therefore, to develop an application-level watchdog timer that is capable of monitoring key applications and reviving those applications in the event the applications become unresponsive. The application-level watchdog timer may work in conjunction with a system level watchdog timer to provide a staggered level of protection that may advantageously improve computer server uptime.
The problems noted above are solved in large part by a software implementation of an application watchdog comprising a restart service operating in the user mode of a computer operating system and a watchdog driver operating in the kernel mode of the computer operating system. The driver includes a system thread configured to monitor a plurality of user applications that operate in the user mode of the computer operating system. The watchdog driver also provides a first input/output control (IOCTL) signal interface for communicating control signals between the watchdog driver and one of the user applications and a second IOCTL signal interface for communicating control signals between the watchdog driver and the restart service. Lastly, a communication interface is provided for coordinating timer events with the operating system scheduler. Each timer event corresponds to one of the applications and indicates when the application is presumed to be unresponsive.
If the system thread does not receive a message from an application within an allotted period of time, the timer event alerts the watchdog driver that the allotted time has elapsed and the watchdog driver signals the restart service to restart that application. If the system thread does receive a message from one the applications, the timer event corresponding to that application is updated to reflect the current time plus the allotted period of time. The restart service may also be configured to perform a system reset. Other functions that may be performed by the restart service include: user notification, error logging, and multiple application reset. In addition, the plurality of applications may be prioritized by a computer user to permit varying levels of watchdog protection.
In the preferred embodiment, the messages from the applications are sent periodically by the applications and directed specifically to the watchdog driver. The messages are preferably sent to the watchdog driver via a message passing interface between the user mode and kernel mode. The message passing interface is preferably implemented as shared memory queues.
Initialization of the watchdog driver involves loading the watchdog driver as the operating system loads following a computer system boot. During driver initialization, an initial input/output control (IOCTL) signal interface is loaded and created to establish the message passing interface. A second IOCTL signal interface for communication with the reset service is also created. The restart service is initialized by loading the reset service in the kernel mode of the computer operating system and calling the watchdog driver via the second IOCTL signal interface to verify communication with the watchdog driver.
The computer application is initialized by linking the application with a dynamic link library and calling the watchdog driver via the dynamic link library to validate the message passing interface. Once this is completed, application information such as the relevant location and process identification is sent to the watchdog driver. The driver sets up timer events for that application and forwards the application information to the reset service. The reset service is then capable of locating and resetting a given application in the event that application becomes unresponsive.
For a detailed description of the preferred embodiments of the invention, reference will now be made to the accompanying drawings in which:
Certain terms are used throughout the following description and claims to refer to particular system components. As one skilled in the art will appreciate, computer companies may refer to a component by different names. This document does not intend to distinguish between components that differ in name but not function. In the following discussion and in the claims, the terms “including” and “comprising” are used in an open-ended fashion, and thus should be interpreted to mean “including, but not limited to . . . ”. Also, the term “couple” or “couples” is intended to mean either an indirect or direct electrical connection. Thus, if a first device couples to a second device, that connection may be through a direct electrical connection, or through an indirect electrical connection via other devices and connections.
Turning now to the figures,
The central server 20 preferably includes at least one input device such as a keyboard 30 and at least one output device such as a monitor 40. Other I/O devices such as a mouse, printer, keyboard, and speakers are certainly permissible and are perhaps desirable peripheral components.
Users working on computers 100, 120 may remotely access data such as file databases or software applications located on the server 20. Alternatively, software applications may be loaded and run directly on the computers 100, 120, but licenses for the authorized use thereof are located on the central server 20. In either event, if a key application that is needed to provide data from the central server 20 to the network computers 100, 120 becomes unresponsive, that data will become unavailable and users on the network will be inconvenienced.
It can be appreciated therefore, that the ability to restart a failed application without rebooting the operating system of the server 20 provides certain advantages. The biggest advantage derives from the fact that the total time required to end a process for a key application and restart that application is much less than the time required to reboot the server 20 on which that application is run. The preferred system ensures that the network users are not inconvenienced for an unreasonably lengthy period of time.
Referring now to
If other, secondary, expansion buses are provided in the computer system 20, as is typically the case, another bridge logic device 212 is used to couple the primary expansion bus (BUS A) to the secondary expansion bus (BUS B). This bridge logic 212 is sometimes referred to as a “South bridge” reflecting its location vis-à-vis the North bridge 206 in a typical computer system drawing. An example of such bridge logic is described in U.S. Pat. No. 5,634,073, assigned to Compaq Computer Corporation. Various components that comply with the bus protocol of BUS B may reside on this bus, such as hard disk controller 222, Flash ROM 224, and I/O Controller 226. Slots 220 may also be provided for plug-in components that comply with the protocol of BUS B.
The I/O controller 226 typically interfaces to basic input/output devices such as a floppy disk drive 228, a keyboard 30, a mouse 232, a parallel port, a serial port, and, if desired, various other input switches such as a power switch and a suspend switch (not shown). The I/O controller 226 may incorporate a counter and a Real Time Clock (RTC) to track the activities of certain components such as the hard disk 222 and the primary expansion bus. Alternatively, the clock functions may reside on the Advanced Server Management (ASM) unit 230. The ASM unit 230 includes a system watchdog of the type that is found in many conventional computer systems. An example of such a watchdog is the Automatic Server Recovery (ASR) watchdog found in some Compaq Computer Corporation servers.
Referring now to
Also shown in
An operating system kernel scheduler 320 is also found in conventional NT architectures. This scheduler dispatches interrupts and performs kernel mode process and thread scheduling. The scheduler 320 uses the OS clock to perform this scheduling. Since the hardware clock is read by the OS at boot time, the OS clock is theoretically identical to the clock from the hardware device 300. Hence, the scheduler 320 operates using the clock signal from the hardware timer 300 by way of the HAL 310.
Another aspect of
The above described architecture will now be supplemented with a description of the unique aspects and advantages of the preferred embodiment. Among the required components is a kernel mode driver 360 with a system thread 370. The system thread 370 processes information and communicates with the shared memory queues 350 situated between the application 330 and driver 360. A restart service agent 380 is also incorporated to restart desired applications. The restart service may also be configured to restart the entire system much like the hardware watchdog timer, but for the preferred embodiment, the restart service 380 maintains reset control over applications only.
The application watchdog driver 360 also uses I/O control calls (IOCTL), which are user-defined requests and instructions passed to and from kernel mode drivers. In accordance with the preferred embodiment, the watchdog driver 360 establishes an initial IOCTL interface 390 that establishes the appropriate message passing interface 350 and a run-time IOCTL signal interface 395 for communication with the application restart service. The initialization and use of the IOCTL interfaces 390, 395 are described below.
Referring now to
During runtime operation the user application sends messages periodically through the interface 350. The watchdog driver system thread 370 will asynchronously monitor the interface 350 for periodic messages from the application 440. If the watchdog driver 360 does not detect a message from the application 330 for a predetermined period of time, the driver 360 will signal the restart service 380 to terminate and restart the application 450. The terminate procedure may consist of killing the appropriate process or ending a task as provided for by the operating system. Otherwise, the application watchdog system simply continues monitoring the shared memory queues 350 for the periodic messages until the application 330 is manually closed down or the computer system is shut down 460.
As discussed above, the restart service 380 may also be configured to provide system restarts if a system administrator feels that is the appropriate reaction. It is envisioned that an alternative embodiment may provide a user interface that allows the user to choose the level of reset capability. For example, the user may be able to choose between application, operating system, or full system reset. Also, the restart service may also perform other functions such as error logging or local/remote user notification.
The watchdog driver 360 preferably includes variables for the various applications to be monitored as well as how frequently messages from the applications should be expected. The driver 360 preferably uses this information and works in conjunction with the OS scheduler 320 to set up alarms or events that will notify the application watchdog driver 360 if a particular application has stopped responding. The timer events represent the end of some allotted period of time during which the watchdog driver 360 should expect a message from the application 330 under normal operating conditions. These timer events are reset or postponed as new messages are detected from the application 330. Thus, detecting a message serves the same function as hitting the watchdog in a conventional watchdog timer. If the timer event actually occurs, this means the application 330 has not delivered a message to the shared memory queues 350 for some time and the application 330 is presumed dead or unresponsive. The application watchdog driver 360 then responds to the timer event by directing the restart service 380 to initiate the appropriate reset procedure.
It is envisioned that the periodic signals sent by the application will be initiated by commands embedded in the computer application software. These commands will be directed at the shared memory queues 350 for the purpose of resetting the application watchdog timer events. It is feasible however, that the commands be sent as part of normal communication with other parts of the computer including the CPU, system memory, or the OS. In this case, the watchdog driver system thread 370 acts as a passive observer checking for activity from the application 330. Other embodiments in accordance with the above teachings are certainly feasible.
The above discussion is meant to be illustrative of the principles and various embodiments of the present invention. Numerous variations and modifications will become apparent to those skilled in the art once the above disclosure is fully appreciated. For example, since the watchdog driver 360 is capable of monitoring several applications, the watchdog system may be configured to provide a user interface to establish priority among the applications. For instance, some sort of policy control may be added that allows the alarm timer events to be delayed more for one application compared to others. This will provide some measure of certainty to ensure that an application has hung before it is restarted. It is intended that the following claims be interpreted to embrace all such variations and modifications.
|Cited Patent||Filing date||Publication date||Applicant||Title|
|US4635187 *||Dec 19, 1983||Jan 6, 1987||At&T Bell Laboratories||Control for a multiprocessing system program process|
|US5333285 *||Nov 21, 1991||Jul 26, 1994||International Business Machines Corporation||System crash detect and automatic reset mechanism for processor cards|
|US5341497 *||Dec 16, 1993||Aug 23, 1994||Ohmeda Inc.||Method and apparatus for a computer system to detect program faults and permit recovery from such faults|
|US5390324 *||Oct 2, 1992||Feb 14, 1995||Compaq Computer Corporation||Computer failure recovery and alert system|
|US5594865 *||Mar 25, 1996||Jan 14, 1997||Fujitsu Limited||Watchdog timer that can detect processor runaway while processor is accessing storage unit using data comparing unit to reset timer|
|US5748882 *||May 8, 1996||May 5, 1998||Lucent Technologies Inc.||Apparatus and method for fault-tolerant computing|
|US5815144 *||Jun 7, 1995||Sep 29, 1998||International Business Machines Corporation||Icon-based reset for cartridge memory computer system|
|US5961622 *||Oct 23, 1997||Oct 5, 1999||Motorola, Inc.||System and method for recovering a microprocessor from a locked bus state|
|US5978911 *||Nov 12, 1997||Nov 2, 1999||International Business Machines Corp.||Automatic error recovery in data processing systems|
|US5978912 *||Mar 20, 1997||Nov 2, 1999||Phoenix Technologies Limited||Network enhanced BIOS enabling remote management of a computer without a functioning operating system|
|US5978939 *||Aug 20, 1997||Nov 2, 1999||Kabushiki Kaisha Toshiba||Timeout monitoring system|
|US6026454 *||Dec 17, 1993||Feb 15, 2000||Packard Bell Nec, Inc.||Interface for multiplexing and reformatting information transfer between device driver programs and a network application program which only accepts information in a predetermined format|
|US6112320 *||Oct 29, 1997||Aug 29, 2000||Dien; Ghing-Hsin||Computer watchdog timer|
|US6141774 *||Apr 17, 1998||Oct 31, 2000||Infineon Technologies North America Corp.||Peripheral device with access control|
|US6266781 *||Jul 20, 1998||Jul 24, 2001||Academia Sinica||Method and apparatus for providing failure detection and recovery with predetermined replication style for distributed applications in a network|
|US6393589 *||Sep 16, 1998||May 21, 2002||Microchip Technology Incorporated||Watchdog timer control circuit with permanent and programmable enablement|
|US6393590 *||Dec 22, 1998||May 21, 2002||Nortel Networks Limited||Method and apparatus for ensuring proper functionality of a shared memory, multiprocessor system|
|US6496890 *||Dec 3, 1999||Dec 17, 2002||Michael Joseph Azevedo||Bus hang prevention and recovery for data communication systems employing a shared bus interface with multiple bus masters|
|US6505298 *||Oct 25, 1999||Jan 7, 2003||International Business Machines Corporation||System using an OS inaccessible interrupt handler to reset the OS when a device driver failed to set a register bit indicating OS hang condition|
|US6560726 *||Aug 19, 1999||May 6, 2003||Dell Usa, L.P.||Method and system for automated technical support for computers|
|US6615312 *||Feb 29, 2000||Sep 2, 2003||Western Digital Ventures, Inc.||Method for processing file system service requests in a computer having an attached disk drive that can reproduce stream data and non-stream data|
|US6665758 *||Oct 4, 1999||Dec 16, 2003||Ncr Corporation||Software sanity monitor|
|US6754855 *||Dec 1, 1999||Jun 22, 2004||Microsoft Corporation||Automated recovery of computer appliances|
|US6799318 *||Jun 5, 2000||Sep 28, 2004||Microsoft Corporation||Method having multiple interfaces with distinguished functions and commands for providing services to a device through a transport|
|US6850257 *||Apr 6, 2000||Feb 1, 2005||Microsoft Corporation||Responsive user interface to manage a non-responsive application|
|US6851074 *||Apr 30, 2001||Feb 1, 2005||Hewlett-Packard Development Company||System and method for recovering from memory failures in computer systems|
|US20010044339 *||Feb 20, 2001||Nov 22, 2001||Angel Cordero||Multi-player computer game, system and method|
|US20020162053 *||May 17, 2002||Oct 31, 2002||Os Ron Van||User transparent software malfunction detection and reporting|
|US20040244014 *||Jun 8, 2004||Dec 2, 2004||Microsoft Corporation||Method for transferring data in a system having multiple transports|
|Citing Patent||Filing date||Publication date||Applicant||Title|
|US7360253 *||Dec 23, 2004||Apr 15, 2008||Microsoft Corporation||System and method to lock TPM always ‘on’ using a monitor|
|US7526805 *||Feb 17, 2005||Apr 28, 2009||Microsoft Corporation||Thread protection|
|US7552337||Feb 17, 2005||Jun 23, 2009||Microsoft Corporation||Service protection|
|US7559091||Jul 7, 2009||Microsoft Corporation||Software obfuscation|
|US7577997||Feb 17, 2005||Aug 18, 2009||Microsoft Corporation||Image verification|
|US7584509||Feb 17, 2005||Sep 1, 2009||Microsoft Corporation||Inhibiting software tampering|
|US7631360||Dec 8, 2009||Microsoft Corporation||Hardware protection|
|US7640592||Dec 29, 2009||Microsoft Corporation||Installation setup|
|US7721340||Feb 17, 2005||May 18, 2010||Microsoft Corporation||Registry protection|
|US7765558 *||Jul 27, 2010||Authentium, Inc.||System and method for handling an event in a computer system|
|US7783872||Mar 30, 2007||Aug 24, 2010||Dell Products, Lp||System and method to enable an event timer in a multiple event timer operating environment|
|US7891008||Feb 15, 2011||Microsoft Corporation||Profile protection|
|US8176564||Jun 14, 2005||May 8, 2012||Microsoft Corporation||Special PC mode entered upon detection of undesired state|
|US8332872 *||Jun 14, 2010||Dec 11, 2012||Wontok, Inc.||System and method for handling an event in a computer system|
|US8336085||Sep 12, 2005||Dec 18, 2012||Microsoft Corporation||Tuning product policy using observed evidence of customer behavior|
|US8341649||Dec 29, 2009||Dec 25, 2012||Wontok, Inc.||System and method for handling an event in a computer system|
|US8347078||Jan 1, 2013||Microsoft Corporation||Device certificate individualization|
|US8353046||Jan 8, 2013||Microsoft Corporation||System and method for delivery of a modular operating system|
|US8438645||Apr 27, 2005||May 7, 2013||Microsoft Corporation||Secure clock with grace periods|
|US8453013 *||Jul 9, 2008||May 28, 2013||Google Inc||System-hang recovery mechanisms for distributed systems|
|US8464348||Jun 11, 2013||Microsoft Corporation||Isolated computing environment anchored into CPU and motherboard|
|US8621628||Feb 25, 2010||Dec 31, 2013||Microsoft Corporation||Protecting user mode processes from improper tampering or termination|
|US8700535||Mar 21, 2008||Apr 15, 2014||Microsoft Corporation||Issuing a publisher use license off-line in a digital rights management (DRM) system|
|US8719171||Jul 8, 2010||May 6, 2014||Microsoft Corporation||Issuing a publisher use license off-line in a digital rights management (DRM) system|
|US8725646||Apr 15, 2005||May 13, 2014||Microsoft Corporation||Output protection levels|
|US8781969||Jul 13, 2010||Jul 15, 2014||Microsoft Corporation||Extensible media rights|
|US8838687 *||May 20, 2008||Sep 16, 2014||Telefonaktiebolaget L M Ericsson (Publ)||Composite services provision within a telecommunications network|
|US8856804||Feb 8, 2008||Oct 7, 2014||Microsoft Corporation||Performance indicator for measuring responsiveness of user interface applications to user input|
|US8959520||Sep 18, 2006||Feb 17, 2015||Siemens Aktiengesellschaft||Data processor with performance controls|
|US9189605||Feb 23, 2009||Nov 17, 2015||Microsoft Technology Licensing, Llc||Protected computing environment|
|US9224168||Dec 11, 2012||Dec 29, 2015||Microsoft Technology Licensing, Llc||Tuning product policy using observed evidence of customer behavior|
|US9235705||May 19, 2009||Jan 12, 2016||Wontok, Inc.||Secure virtualization system software|
|US9305159 *||Nov 18, 2014||Apr 5, 2016||Fortinet, Inc.||Secure system for allowing the execution of authorized computer program code|
|US9336359||Feb 6, 2012||May 10, 2016||Microsoft Technology Licensing, Llc||Device certificate individualization|
|US9363481||Apr 27, 2005||Jun 7, 2016||Microsoft Technology Licensing, Llc||Protected media pipeline|
|US9436804||Sep 15, 2005||Sep 6, 2016||Microsoft Technology Licensing, Llc||Establishing a unique session key using a hardware functionality scan|
|US20050278535 *||Feb 17, 2005||Dec 15, 2005||Microsoft Corporation||Profile protection|
|US20050278553 *||Feb 17, 2005||Dec 15, 2005||Microsoft Corporation||Hardware protection|
|US20050278782 *||Feb 17, 2005||Dec 15, 2005||Microsoft Corporation||Thread protection|
|US20050278791 *||Feb 17, 2005||Dec 15, 2005||Microsoft Corporation||Service protection|
|US20060005248 *||Feb 17, 2005||Jan 5, 2006||Microsoft Corporation||Registry protection|
|US20060005249 *||Feb 17, 2005||Jan 5, 2006||Microsoft Corporation||Installation setup|
|US20060005250 *||Feb 17, 2005||Jan 5, 2006||Microsoft Corporation||Software obfuscation|
|US20060005251 *||Feb 17, 2005||Jan 5, 2006||Microsoft Corporation||Inhibiting software tampering|
|US20060005252 *||Feb 17, 2005||Jan 5, 2006||Microsoft Corporation||Image verification|
|US20060015880 *||Jul 5, 2005||Jan 19, 2006||Authentium, Inc.||System and method for handling an event in a computer system|
|US20060089917 *||Oct 22, 2004||Apr 27, 2006||Microsoft Corporation||License synchronization|
|US20060107306 *||Sep 12, 2005||May 18, 2006||Microsoft Corporation||Tuning product policy using observed evidence of customer behavior|
|US20060107328 *||Dec 22, 2004||May 18, 2006||Microsoft Corporation||Isolated computing environment anchored into CPU and motherboard|
|US20060143446 *||Dec 23, 2004||Jun 29, 2006||Microsoft Corporation||System and method to lock TPM always 'on' using a monitor|
|US20060212363 *||Feb 13, 2006||Sep 21, 2006||Microsoft Corporation||Rendering digital content in an encrypted rights-protected form|
|US20060242406 *||Apr 27, 2005||Oct 26, 2006||Microsoft Corporation||Protected computing environment|
|US20060282899 *||Jun 8, 2005||Dec 14, 2006||Microsoft Corporation||System and method for delivery of a modular operating system|
|US20070101337 *||Sep 18, 2006||May 3, 2007||Peter Gunther||Data processor with performance controls|
|US20080016385 *||Jul 13, 2006||Jan 17, 2008||Hollingsworth Robert E||Plain Language Announcement of Diagnostic and Troubleshooting Information for Users|
|US20080244302 *||Mar 30, 2007||Oct 2, 2008||Dell Products, Lp||System and method to enable an event timer in a multiple event timer operating environment|
|US20080256542 *||Jun 1, 2005||Oct 16, 2008||Kazushi Kurata||Processor|
|US20090013180 *||Mar 6, 2008||Jan 8, 2009||Dongsheng Li||Method and Apparatus for Ensuring the Security of an Electronic Certificate Tool|
|US20090083747 *||Feb 19, 2008||Mar 26, 2009||Mao-Gue Huang||Method for managing application programs by utilizing redundancy and load balance|
|US20090288167 *||May 19, 2009||Nov 19, 2009||Authentium, Inc.||Secure virtualization system software|
|US20100138843 *||Dec 29, 2009||Jun 3, 2010||Authentium, Inc.||System and method for handling an event in a computer system|
|US20100251368 *||Jun 14, 2010||Sep 30, 2010||Authentium, Inc.||System and method for handling an event in a computer system|
|US20110131277 *||May 20, 2008||Jun 2, 2011||Joerg Niemoeller||Composite Services Provision Within A Telecommunications Network|
|US20110209219 *||Feb 25, 2010||Aug 25, 2011||Microsoft Corporation||Protecting User Mode Processes From Improper Tampering or Termination|
|US20110213878 *||Mar 24, 2009||Sep 1, 2011||Siemens Aktiengesellschaft||Method and system for monitoring a security-related system|
|US20150193614 *||Nov 18, 2014||Jul 9, 2015||Fortinet, Inc.||Secure system for allowing the execution of authorized computer program code|
|US20160132675 *||Dec 28, 2015||May 12, 2016||Fortinet, Inc.||Secure system for allowing the execution of authorized computer program code|
|US20160253491 *||May 13, 2016||Sep 1, 2016||Fortinet, Inc.||Secure system for allowing the execution of authorized computer program code|
|U.S. Classification||713/1, 713/100, 719/329, 719/321, 719/330, 713/502, 714/E11.003, 709/230, 719/328, 719/318, 713/500, 709/203, 713/2, 709/220, 719/327|
|International Classification||G06F11/00, G06F15/177|
|May 31, 2001||AS||Assignment|
Owner name: COMPAQ COMPUTER CORPORATION, TEXAS
Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:LACOMBE, JOHN;GALLOWAY, JEFFREY L.;MAJNI, TIMOTHY W.;REEL/FRAME:011863/0070;SIGNING DATES FROM 20010419 TO 20010531
|Jan 15, 2002||AS||Assignment|
Owner name: COMPAQ INFORMATION TECHNOLOGIES GROUP, L.P., TEXAS
Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:COMPAQ COMPUTER CORPORATION;REEL/FRAME:012478/0195
Effective date: 20010620
|May 12, 2004||AS||Assignment|
Owner name: HEWLETT-PACKARD DEVELOPMENT COMPANY, L.P., TEXAS
Free format text: CHANGE OF NAME;ASSIGNOR:COMPAQ INFORMATION TECHNOLOGIES GROUP LP;REEL/FRAME:014628/0103
Effective date: 20021001
|Mar 24, 2009||CC||Certificate of correction|
|Aug 14, 2009||FPAY||Fee payment|
Year of fee payment: 4
|Sep 27, 2013||REMI||Maintenance fee reminder mailed|
|Feb 14, 2014||LAPS||Lapse for failure to pay maintenance fees|
|Apr 8, 2014||FP||Expired due to failure to pay maintenance fee|
Effective date: 20140214