US6665758B1
Expired / Lapsed
US
⏱️ 0.0 years remaining
Software sanity monitor
Assignee: NCR Voyix Corp
•
Filing: 1999-10-04
•
Granted: 2003-12-16
•
Expires: 2019-10-04
Abstract
Abstract Disclosed is a Software Sanity Monitor for automatically detecting and remedying software lock-up conditions without user intervention. Users often refer to these conditions as “hangs” or “forever loops”. Although the Software Sanity Monitor uses the operating software's information, it is designed to execute independent of the operating system software; thereby, eliminating reliance on a “sane” operating system. If a “hang” condition is detected, the Software Sanity Monitor will automatically restart the system after logging the failure and, optionally, notify the user or host system.
Inventors
- 👤 Ralph E. Frazier
- 👤 Denis M. Blanford
- 👤 William M. Belknap
- 👤 Theodore Heske, III
Bibliographic Details
Application Number
—
Jurisdiction
US
Data Source
google_patents
Last Synchronized
2026-11-05 07:24
CPC Classifications
G; G06; G06F; G06F9/00; G06F9/06; G06F9/46; G06F9/48; G06F9/4806; G06F9/4843; G06F9/4881; G06F11/00; G06F11/07; G06F11/0703; G06F11/0751; G06F11/0754; G06F11/0757
Claims Analysis
Total Claims: 22
Claim 1
Independent Claim
106 words
A computer-implemented method of preventing a computer system lock-up, comprising: starting a first timer; monitoring a second timer and determining when the second timer periodic time interval elapses; sampling operating software scheduling information of the computer system to verify lower priority programs have continued to run; if the lower priority programs have continued to run, restarting the first timer such that the first timer does not interrupt the computer system; restarting the second timer; if the lower priority programs have not continued to run, allowing the first timer to expire and interrupt the computer system; and taking control of the computer system by a monitoring program.
Claim 2
Dependent Claim
106 words
A computer-implemented method of preventing a computer system lock-up, comprising: starting a first timer; monitoring a second timer and determining when the second timer periodic time interval elapses; sampling operating software scheduling information of the computer system to verify lower priority programs have continued to run; if the lower priority programs have continued to run, restarting the first timer such that the first timer does not interrupt the computer system; restarting the second timer; if the lower priority programs have not continued to run, allowing the first timer to expire and interrupt the computer system; and taking control of the computer system by a monitoring program.
Claim 3
Dependent Claim
27 words
The method of claim 1 , wherein the first timer is separate from a clock of the computer system, and the first timer provides an unmaskable interrupt.
Claim 4
Dependent Claim
15 words
The method of claim 1 , comprising starting the first timer upon computer system initialization.
Claim 5
Dependent Claim
28 words
The method of claim 1 , wherein the second timer is not separate from a clock of the computer system, and the second timer provides a maskable interrupt.
Claim 6
Dependent Claim
41 words
The method of claim 1 , comprising subsequent to said taking step, sampling the scheduling information, and if it is determined the lower priority programs have not run or the computer system has reached an idle loop, performing a system recovery.
Claim 7
Dependent Claim
20 words
The method of claim 1 , comprising determining the computer system is in an idle loop and interrupts are disabled.
Claim 8
Dependent Claim
33 words
The method of claim 6 , determining the computer system is properly functioning by determining lower priority programs continue to execute or the idle loop is reached within a predetermined maximum time period.
Claim 9
Dependent Claim
25 words
The method of claim 7 , wherein the predetermined maximum time period is defined as the sum of the second timer and the first timer.
Claim 10
Dependent Claim
12 words
The method of claim 1 , comprising a low run-time priority mark.
Claim 11
Dependent Claim
19 words
The method of claim 9 , comprising resetting the low run-time priority mark when the idle loop is reached.
Claim 12
Dependent Claim
17 words
The method of claim 1 , wherein said taking step is performed by a Software Sanity Monitor.
Claim 13
Dependent Claim
20 words
The method of claim 1 , wherein the monitoring program executes independently of the operating system of the computer system.
Claim 14
Dependent Claim
24 words
The method of claim 12 , comprising logging any instances where the monitoring program has taken control due to the operating system becoming insane.
Claim 15
Dependent Claim
28 words
The method of claim 1 , comprising updating a global field whenever the operating system switches to a lower run-time priority program from a higher run-time priority program.
Claim 16
Dependent Claim
19 words
The method of claim 14 , comprising checking a task switch schedule count for the next lowest run-time priority.
Claim 17
Dependent Claim
29 words
The method of claim 15 , comprising incrementing the task switch schedule count after a higher priority task exits allowing or scheduling a lower run-time priority task to run.
Claim 18
Dependent Claim
19 words
The method of claim 1 , wherein the first timer has evaluation logic which is interrupt service routine code.
Claim 19
Dependent Claim
136 words
An article including a computer readable medium having stored thereon a plurality of sequences of instructions, said plurality of sequences of instructions including sequences of instructions which, when executed by a processor, cause said processor to perform the steps of: starting a first timer; monitoring a second timer and determining when the second timer periodic time interval elapses; sampling operating software scheduling information of the computer system to verify lower priority programs have continued to run; if the lower priority programs have continued to run, restarting the first timer such that the first timer does not interrupt the computer system; restarting the second timer; if the lower priority programs have not continued to run, allowing the first timer to expire and interrupt the computer system; and taking control of the computer system by a monitoring program.
Claim 20
Dependent Claim
136 words
An article including a computer readable medium having stored thereon a plurality of sequences of instructions, said plurality of sequences of instructions including sequences of instructions which, when executed by a processor, cause said processor to perform the steps of: starting a first timer; monitoring a second timer and determining when the second timer periodic time interval elapses; sampling operating software scheduling information of the computer system to verify lower priority programs have continued to run; if the lower priority programs have continued to run, restarting the first timer such that the first timer does not interrupt the computer system; restarting the second timer; if the lower priority programs have not continued to run, allowing the first timer to expire and interrupt the computer system; and taking control of the computer system by a monitoring program.
Claim 21
Dependent Claim
131 words
A computer system, comprising: a processor; and a memory coupled to said processor, the memory having stored therein sequences of instructions, which, when executed by said processor, causes said processor to perform the steps of: starting a first timer; monitoring a second timer and determining when the second timer periodic time interval elapses; sampling operating software scheduling information of the computer system to verify lower priority programs have continued to run; if the lower priority programs have continued to run, restarting the first timer such that the first timer does not interrupt the computer system; restarting the second timer; if the lower priority programs have not continued to run, allowing the first timer to expire and interrupt the computer system; and taking control of the computer system by a monitoring program.
Claim 22
Dependent Claim
131 words
A computer system, comprising: a processor; and a memory coupled to said processor, the memory having stored therein sequences of instructions, which, when executed by said processor, causes said processor to perform the steps of: starting a first timer; monitoring a second timer and determining when the second timer periodic time interval elapses; sampling operating software scheduling information of the computer system to verify lower priority programs have continued to run; if the lower priority programs have continued to run, restarting the first timer such that the first timer does not interrupt the computer system; restarting the second timer; if the lower priority programs have not continued to run, allowing the first timer to expire and interrupt the computer system; and taking control of the computer system by a monitoring program.
References Cited (Backward Citations)
US5278976A
Cited
US5522040A
Cited
US5341497A
Cited
US5655083A
Cited
US5864663A
Cited
US6269478B1
Cited
US6145103A
Cited
US6393433B1
Cited
USPTO Annuity & Maintenance Windows
| Annuity Stage | Window Opens | Payment Deadline | Surcharge Period Until | Estimated Fee | Status |
|---|---|---|---|---|---|
| 3.5 Years (Year 4) | 2006-12-15 | 2007-06-16 | 2007-12-16 | $2000.00 | Window Closed / Lapsed |
| 7.5 Years (Year 8) | 2010-12-15 | 2011-06-16 | 2011-12-16 | $3760.00 | Window Closed / Lapsed |
| 11.5 Years (Year 12) | 2014-12-15 | 2015-06-16 | 2015-12-16 | $7700.00 | Window Closed / Lapsed |