Journal ArticleInterrupts are superficially similar to threads, but there are subtle semantic differences between the two abstractions. This paper compares and contrasts threads and interrupts from the point of view of verifying the absence of race conditions. We identify a small set of extensions that permit thread verification tools to also verify interrupt-driven software, and we present examples of source-to-source transformations that turn interrupt-driven code into semantically equivalent thread-based code that can be checked by a thread verifier
Modern systems involve a complex organization of computational processes sharing access to both proc...
When trying to track down bugs using cyclic debugging, the ability to correctly reproduce executions...
In concurrent programming, mutual exclusion algorithms are used to avoid the simultaneous access of ...
AbstractMost of the research effort towards verification of concurrent software has focused on multi...
Interrupt-driven software is difficult to test and debug, especially when interrupts can be nested a...
Abstract—Interrupt-driven software is difficult to test and debug, especially when interrupts can be...
Interrupt-driven software is difficult to test and debug, especially when interrupts can be nested a...
ManuscriptWhile developing embedded and real-time systems, it is usually necessary to write code tha...
Information security is important in academia, industry and government. The use of formal methods in...
In most software development projects, it is not feasi-ble for developers to handle explicitly all p...
The interrupt mechanism in a system-on-chip (SoC) joins the SoCs hardware and software behaviors. We...
We describe an approach to design static analysis and verification tools for concurrent programs tha...
Abstract—Interrupt behaviors, particularly the external ones, are difficult to verify in a microproc...
AbstractThe paper details the author's thread verification experiences with four applications: Linux...
A widely-used class of real-time, reactive, embedded systems is called interrupt-driven systems [8]....
Modern systems involve a complex organization of computational processes sharing access to both proc...
When trying to track down bugs using cyclic debugging, the ability to correctly reproduce executions...
In concurrent programming, mutual exclusion algorithms are used to avoid the simultaneous access of ...
AbstractMost of the research effort towards verification of concurrent software has focused on multi...
Interrupt-driven software is difficult to test and debug, especially when interrupts can be nested a...
Abstract—Interrupt-driven software is difficult to test and debug, especially when interrupts can be...
Interrupt-driven software is difficult to test and debug, especially when interrupts can be nested a...
ManuscriptWhile developing embedded and real-time systems, it is usually necessary to write code tha...
Information security is important in academia, industry and government. The use of formal methods in...
In most software development projects, it is not feasi-ble for developers to handle explicitly all p...
The interrupt mechanism in a system-on-chip (SoC) joins the SoCs hardware and software behaviors. We...
We describe an approach to design static analysis and verification tools for concurrent programs tha...
Abstract—Interrupt behaviors, particularly the external ones, are difficult to verify in a microproc...
AbstractThe paper details the author's thread verification experiences with four applications: Linux...
A widely-used class of real-time, reactive, embedded systems is called interrupt-driven systems [8]....
Modern systems involve a complex organization of computational processes sharing access to both proc...
When trying to track down bugs using cyclic debugging, the ability to correctly reproduce executions...
In concurrent programming, mutual exclusion algorithms are used to avoid the simultaneous access of ...