This dissertation studies conflicts. A conflict is a bug in concurrent systems where one or more components of the system may potentially be blocked from completing their task. This dissertation investigates how nonconflicting completions may be used to characterise the situations in which individual components of a system may be in conflict with other components. The first major contributions of this dissertation are new methods of abstracting systems with respect to conflicts, and showing how these methods may be used to check whether a large system is conflict-free. The second contribution is a method of comparing whether one system is less susceptible to conflict than another. The last major contribution is a method of expressing all conflicts in a system in a finite and canonical way. The methods developed have applications for model checking, refinement, and the development of contracts for concurrent systems.
Discrete Event Systems, Nonblocking, Liveness Properties, Abstraction
Networked Digital Library of Theses and Dissertations