← Back to Patent Explorer
US5513349A Expired / Lapsed US ⏱️ 0.0 years remaining

System and method for safing of asynchronous interrupts

Assignee: International Business Machines Corp
•
Filing: 1994-03-24
•
Granted: 1996-04-30
•
Expires: 2014-03-24
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract Processing of an asynchronous signal directed to a thread comprising a software routine executing in a computer system such that data consistency is maintained is discussed. Such processing proceeds by determining whether the routine is signal safe such that processing of the routine may be interrupted in order to process the signal without possibly causing inconsistency of data. The routine is asynchronously interrupted and the signal is processed immediately if the routine is signal safe. If the routine is not signal safe, then the routine is not asynchronously interrupted and processing of the signal is deferred to a time when the signal may be processed without possibly causing inconsistency of data.

Inventors

  • 👤 Tsuneo Horiguchi
  • 👤 Eric L. Porter
  • 👤 Richard Tallman

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-11-08 08:50
CPC Classifications
G; G06; G06F; G06F9/00; G06F9/06; G06F9/46; G06F9/48; G06F9/4806; G06F9/4812

Claims Analysis

Total Claims: 22
Claim 1
Independent Claim 130 words
A method of processing an asynchronous signal directed to a thread comprising a software routine executing in a computer system such that data consistency is maintained, comprising the steps of: (1) determining one or more characteristics of the routine; (2) determining from said one or more characteristics of the routine whether the routine is signal safe such that processing of the routine may be interrupted in order to process the signal without possibly causing inconsistency of data without requiring the use of a locking mechanism; (3) asynchronously interrupting the routine and processing the signal immediately if the routine is signal safe; and (4) deferring processing of the signal if the routine is not signal safe to a time when the signal may be processed without possibly causing inconsistency of data.
Claim 2
Independent Claim 130 words
A method of processing an asynchronous signal directed to a thread comprising a software routine executing in a computer system such that data consistency is maintained, comprising the steps of: (1) determining one or more characteristics of the routine; (2) determining from said one or more characteristics of the routine whether the routine is signal safe such that processing of the routine may be interrupted in order to process the signal without possibly causing inconsistency of data without requiring the use of a locking mechanism; (3) asynchronously interrupting the routine and processing the signal immediately if the routine is signal safe; and (4) deferring processing of the signal if the routine is not signal safe to a time when the signal may be processed without possibly causing inconsistency of data.
Claim 3
Independent Claim 222 words
A method of processing an asynchronous signal directed to a thread comprising a software routine executing in a computer system such that data consistency is maintained, comprising the steps of: (1) determining whether the routine is signal safe such that processing of the routine may be interrupted in order to process the signal without possibly causing inconsistency of data, step (1) further comprising the steps of: (a) determining whether the routine is part of a user written application program; (b) determining whether the routine is capable of enabling and disabling asynchronous interrupts; (c) concluding that the routine is signal safe if it is determined that the routine is part of a user written application program and the routine is capable of enabling and disabling asynchronous interrupts; (d) concluding that the routine is not signal safe if it is determined that the routine is not part of a user written application program; and (e) concluding that the routine is not signal safe if it is determined that the routine is not capable of enabling and disabling asynchronous interrupts; (2) asynchronously interrupting the routine and processing the signal immediately if the routine is signal safe; and (3) deferring processing of the signal if the routine is not signal safe to a time when the signal may be processed without possibly causing inconsistency of data.
Claim 4
Independent Claim 222 words
A method of processing an asynchronous signal directed to a thread comprising a software routine executing in a computer system such that data consistency is maintained, comprising the steps of: (1) determining whether the routine is signal safe such that processing of the routine may be interrupted in order to process the signal without possibly causing inconsistency of data, step (1) further comprising the steps of: (a) determining whether the routine is part of a user written application program; (b) determining whether the routine is capable of enabling and disabling asynchronous interrupts; (c) concluding that the routine is signal safe if it is determined that the routine is part of a user written application program and the routine is capable of enabling and disabling asynchronous interrupts; (d) concluding that the routine is not signal safe if it is determined that the routine is not part of a user written application program; and (e) concluding that the routine is not signal safe if it is determined that the routine is not capable of enabling and disabling asynchronous interrupts; (2) asynchronously interrupting the routine and processing the signal immediately if the routine is signal safe; and (3) deferring processing of the signal if the routine is not signal safe to a time when the signal may be processed without possibly causing inconsistency of data.
Claim 5
Dependent Claim 92 words
The method of claim 2 in which the computer system includes an operating system that conforms to an operating system interface standard that defines functions for enabling and disabling asynchronous interrupts, wherein step (b) comprises the steps of: determining whether the routine is written in a computer programming language that conforms to the operating system interface standard; and concluding that the routine is capable of enabling and disabling asynchronous interrupts if it is determined that the routine is written in a computer programming language that conforms to the operating system interface standard.
Claim 6
Dependent Claim 19 words
The method of claim 3, wherein the operating system interface standard is a Portable Operating System Interface (POSIX) standard.
Claim 7
Independent Claim 230 words
A method of processing an asynchronous signal directed to a thread comprising a software routine executing in a computer system, having an invocation stack comprising a plurality of stack frames, the stack frames associated with routines executing in the computer system, and in which a stub routine in maintained in the computer system, the stub routine when invoked in the computer system enabling the computer system to process any deferred signals, such that data consistency is maintained, comprising the steps of: (1) determining whether the routine is signal safe such that processing of the routine may be interrupted in order to process the signal without possibly causing inconsistency of data; (2) asynchronously interrupting the routine and processing the signal immediately if the routine is signal safe; and (3) deferring processing of the signal if the routine is not signal safe to a time when the signal may be processed without possibly causing inconsistency of data, step (3) further comprising the steps of: (a) searching for a signal sate routine associated with one of the stack frames in the invocation stack; and (b) if a signal safe routine is found in step (a), inserting a new stack frame associated with the stub routine into a return mechanism of the invocation stack such that the stub routine is invoked just prior to returning to the signal safe routine found in step (a).
Claim 8
Independent Claim 230 words
A method of processing an asynchronous signal directed to a thread comprising a software routine executing in a computer system, having an invocation stack comprising a plurality of stack frames, the stack frames associated with routines executing in the computer system, and in which a stub routine in maintained in the computer system, the stub routine when invoked in the computer system enabling the computer system to process any deferred signals, such that data consistency is maintained, comprising the steps of: (1) determining whether the routine is signal safe such that processing of the routine may be interrupted in order to process the signal without possibly causing inconsistency of data; (2) asynchronously interrupting the routine and processing the signal immediately if the routine is signal safe; and (3) deferring processing of the signal if the routine is not signal safe to a time when the signal may be processed without possibly causing inconsistency of data, step (3) further comprising the steps of: (a) searching for a signal sate routine associated with one of the stack frames in the invocation stack; and (b) if a signal safe routine is found in step (a), inserting a new stack frame associated with the stub routine into a return mechanism of the invocation stack such that the stub routine is invoked just prior to returning to the signal safe routine found in step (a).
Claim 9
Dependent Claim 135 words
The method of claim 5 in which a second stub routine is maintained in the computer system, the second stub routine when invoked in the computer system enabling the computer system to process any deferred signals, and in which the computer system also includes a library invocation mechanism which is accessed whenever any signal sate routine invokes any library function, wherein step (3) further comprises the step of: (c) if a signal safe routine is not found in step (a), then modifying the library invocation mechanism to refer to the second stub routine such that the second stub routine is invoked whenever any signal safe routine attempts to invoke any library function, the second stub routine also enabling the computer system to restore the library invocation mechanism after the second stub routine has been invoked.
Claim 10
Independent Claim 137 words
A system for processing an asynchronous signal directed to a thread comprising a software routine executing in a computer system such that data consistency is maintained, comprising: characteristic determining means for determining one or more characteristics of the routine; signal safe determining means for determining from said one or more characteristics of the routine whether the routine is signal safe such that processing of the routine may be interrupted in order to process the signal without possibly causing inconsistency of data without requiring the use of a locking mechanism; means for asynchronously interrupting the routine and processing the signal immediately if the routine is signal safe; and deferring means for deferring processing of the signal if the routine is not signal safe to a time when the signal may be processed without possibly causing inconsistency of data.
Claim 11
Independent Claim 137 words
A system for processing an asynchronous signal directed to a thread comprising a software routine executing in a computer system such that data consistency is maintained, comprising: characteristic determining means for determining one or more characteristics of the routine; signal safe determining means for determining from said one or more characteristics of the routine whether the routine is signal safe such that processing of the routine may be interrupted in order to process the signal without possibly causing inconsistency of data without requiring the use of a locking mechanism; means for asynchronously interrupting the routine and processing the signal immediately if the routine is signal safe; and deferring means for deferring processing of the signal if the routine is not signal safe to a time when the signal may be processed without possibly causing inconsistency of data.
Claim 12
Independent Claim 234 words
A system for processing an asynchronous signal directed to a thread comprising a software routine executing in a computer system such that data consistency is maintained, comprising: signal safe determining means for determining whether the routine is signal safe such that processing of the routine may be interrupted in order to process the signal without possibly causing inconsistency of data, wherein said signal safe determining means further comprises: means for determining whether the routine is part of a user written application program; conformance determining means for determining whether the routine is capable of enabling and disabling asynchronous interrupts; means for concluding that the routine is signal safe if it is determined that the routine is part of a user written application program and the routine is capable of enabling and disabling asynchronous interrupts; means for concluding that the routine is not signal safe if it is determined that the routine is not part of a user written application program; and means for concluding that the routine is not signal safe if it is determined that the routine is not capable of enabling and disabling asynchronous interrupts; means for asynchronously interrupting the routine and processing the signal immediately if the routine is signal safe; and deferring means for deferring processing of the signal if the routine is not signal safe to a time when the signal may be processed without possibly causing inconsistency of data.
Claim 13
Independent Claim 234 words
A system for processing an asynchronous signal directed to a thread comprising a software routine executing in a computer system such that data consistency is maintained, comprising: signal safe determining means for determining whether the routine is signal safe such that processing of the routine may be interrupted in order to process the signal without possibly causing inconsistency of data, wherein said signal safe determining means further comprises: means for determining whether the routine is part of a user written application program; conformance determining means for determining whether the routine is capable of enabling and disabling asynchronous interrupts; means for concluding that the routine is signal safe if it is determined that the routine is part of a user written application program and the routine is capable of enabling and disabling asynchronous interrupts; means for concluding that the routine is not signal safe if it is determined that the routine is not part of a user written application program; and means for concluding that the routine is not signal safe if it is determined that the routine is not capable of enabling and disabling asynchronous interrupts; means for asynchronously interrupting the routine and processing the signal immediately if the routine is signal safe; and deferring means for deferring processing of the signal if the routine is not signal safe to a time when the signal may be processed without possibly causing inconsistency of data.
Claim 14
Dependent Claim 95 words
The system of claim 8 in which the computer system includes an operating system that conforms to an operating system interface standard that defines functions for enabling and disabling asynchronous interrupts, wherein said conformance determining means comprises: means for determining whether the routine is written in a computer programming language that conforms to the operating system interface standard; and means for concluding that the routine is capable of enabling and disabling asynchronous interrupts if it is determined that the routine is written in a computer programming language that conforms to the operating system interface standard.
Claim 15
Dependent Claim 19 words
The system of claim 9, wherein the operating system interface standard is a Portable Operating System Interface (POSIX) standard.
Claim 16
Independent Claim 238 words
A system for processing an asynchronous signal directed to a thread comprising a software routine executing in a computer system, having an invocation stack comprising a plurality of stack frames, the stack frames associated with routines executing in the computer system, and in which a stub routine in maintained in the computer system, the stub routine when invoked in the computer system enabling the computer system to process any deferred signals, such that data consistency is maintained, comprising: signal safe determining means for determining whether the routine is signal safe such that processing of the routine may be interrupted in order to process the signal without possibly causing inconsistency of data; means for asynchronously interrupting the routine and processing the signal immediately if the routine is signal safe; and deferring means for deferring processing of the signal if the routine is not signal safe to a time when the signal may be processed without possibly causing inconsistency of data, wherein said deferring means further comprises: searching means for searching for a signal safe routine associated with one of the stack frames in the invocation stack: and means for inserting, if a signal safe routine is found by said searching means, a new stack frame associated with the stub routine into a return mechanism of the invocation stack, such that the stub routine is invoked just prior to returning to the signal safe routine found by said searching means.
Claim 17
Independent Claim 238 words
A system for processing an asynchronous signal directed to a thread comprising a software routine executing in a computer system, having an invocation stack comprising a plurality of stack frames, the stack frames associated with routines executing in the computer system, and in which a stub routine in maintained in the computer system, the stub routine when invoked in the computer system enabling the computer system to process any deferred signals, such that data consistency is maintained, comprising: signal safe determining means for determining whether the routine is signal safe such that processing of the routine may be interrupted in order to process the signal without possibly causing inconsistency of data; means for asynchronously interrupting the routine and processing the signal immediately if the routine is signal safe; and deferring means for deferring processing of the signal if the routine is not signal safe to a time when the signal may be processed without possibly causing inconsistency of data, wherein said deferring means further comprises: searching means for searching for a signal safe routine associated with one of the stack frames in the invocation stack: and means for inserting, if a signal safe routine is found by said searching means, a new stack frame associated with the stub routine into a return mechanism of the invocation stack, such that the stub routine is invoked just prior to returning to the signal safe routine found by said searching means.
Claim 18
Dependent Claim 133 words
The system of claim 11 in which a second stub routine is maintained in the computer system, the second stub routine when invoked in the computer system enabling the computer system to process any deferred signals, and in which the computer system also includes a library invocation mechanism which is accessed whenever any signal safe routine invokes any library function, wherein deferring means further comprises: means for modifying, if a signal safe routine is not found by said searching means, the library invocation mechanism to refer to the second stub routine, such that the second stub routine is invoked whenever any signal safe routine attempts to invoke any library function, the second stub routine also enabling the computer system to restore the library invocation mechanism after the second stub routine has been invoked.
Claim 19
Independent Claim 145 words
A method of processing an asynchronous signal directed to a thread comprising a software routine executing in a computer system such that data consistency is maintained, comprising the steps of: (1) determining whether the routine is signal safe such that processing of the routine may be interrupted in order to process the signal without possibly causing inconsistency of data, step (1) further comprising the steps of: (a) determining whether the routine is from a run-time software library; and (b) concluding that the routine is not signal safe if it is determined that the routine is from a run-time software library; (2) asynchronously interrupting the routine and processing the signal immediately if the routine is signal safe; and (3) deferring processing of the signal if the routine is not signal safe to a time when the signal may be processed without possibly causing inconsistency of data.
Claim 20
Independent Claim 145 words
A method of processing an asynchronous signal directed to a thread comprising a software routine executing in a computer system such that data consistency is maintained, comprising the steps of: (1) determining whether the routine is signal safe such that processing of the routine may be interrupted in order to process the signal without possibly causing inconsistency of data, step (1) further comprising the steps of: (a) determining whether the routine is from a run-time software library; and (b) concluding that the routine is not signal safe if it is determined that the routine is from a run-time software library; (2) asynchronously interrupting the routine and processing the signal immediately if the routine is signal safe; and (3) deferring processing of the signal if the routine is not signal safe to a time when the signal may be processed without possibly causing inconsistency of data.
Claim 21
Independent Claim 152 words
A system for processing an asynchronous signal directed to a thread comprising a software routine executing in a computer system such that data consistency is maintained, comprising: signal safe determining means for determining whether the routine is signal safe such that processing of the routine may be interrupted in order to process the signal without possibly causing inconsistency of data, wherein said signal safe determining means further comprises: means for determining whether the routine is from a run-time software library; and means for concluding that the routine is not signal safe if it is determined that the routine is from a run-time software library; means for asynchronously interrupting the routine and processing the signal immediately if the routine is signal safe; and deferring means for deferring processing of the signal if the routine is not signal safe to a time when the signal may be processed without possibly causing inconsistency of data.
Claim 22
Independent Claim 152 words
A system for processing an asynchronous signal directed to a thread comprising a software routine executing in a computer system such that data consistency is maintained, comprising: signal safe determining means for determining whether the routine is signal safe such that processing of the routine may be interrupted in order to process the signal without possibly causing inconsistency of data, wherein said signal safe determining means further comprises: means for determining whether the routine is from a run-time software library; and means for concluding that the routine is not signal safe if it is determined that the routine is from a run-time software library; means for asynchronously interrupting the routine and processing the signal immediately if the routine is signal safe; and deferring means for deferring processing of the signal if the routine is not signal safe to a time when the signal may be processed without possibly causing inconsistency of data.

References Cited (Backward Citations)

US5210828A Cited
US5392433A Cited

USPTO Annuity & Maintenance Windows

Annuity Stage Window Opens Payment Deadline Surcharge Period Until Estimated Fee Status
3.5 Years (Year 4) 1999-04-30 1999-10-30 2000-04-30 $2000.00 Window Closed / Lapsed
7.5 Years (Year 8) 2003-04-30 2003-10-30 2004-04-30 $3760.00 Window Closed / Lapsed
11.5 Years (Year 12) 2007-04-30 2007-10-30 2008-04-30 $7700.00 Window Closed / Lapsed

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag