Patent US3586383A successfully refreshed from Google Patents.
Patent US6665758B1 successfully refreshed from Google Patents.
← Back to Patent Explorer
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
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

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 08:47
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

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag