The concept of an interrupt is one that appears across many paradigms, and used in many different areas. It may be used as a device to assist specifications to model failure, or to describe complex interactions between non co-operating components. It is frequently used in hardware to allow complex scheduling patterns. Although interrupts are ubiquitous in usage, the precise behaviour of a system incorporating interrupts can be difficult to reason about and predict. In this paper, a complete theory of the interrupt operator presented by Hoare in his original treatment of CSP is proposed. The semantics are given in the CSP model in Unifying Theories of Programming. New and existing algebraic laws are proposed and justified. The contribution of the paper is therefore a denotational semantics of an interrupt operator, and a collection of algebraic laws that assist in reasoning about systems incorporating interrupts.
[1]
Jim Woodcock,et al.
The Semantics of Circus
,
2002,
ZB.
[2]
Jan A. Bergstra,et al.
Algebra of Communicating Processes with Abstraction
,
1985,
Theor. Comput. Sci..
[3]
Jim Woodcock,et al.
A Tutorial Introduction to CSP in Unifying Theories of Programming
,
2004,
PSSE.
[4]
Andrew William Roscoe,et al.
The Theory and Practice of Concurrency
,
1997
.
[5]
C. A. R. Hoare,et al.
Communicating sequential processes
,
1978,
CACM.
[6]
Robin Milner,et al.
A Calculus of Communicating Systems
,
1980,
Lecture Notes in Computer Science.
[7]
Jim Woodcock,et al.
A Concurrent Language for Refinement
,
2001,
IWFM.
[8]
Robin Milner,et al.
Communication and concurrency
,
1989,
PHI Series in computer science.