The drinking philosophers problem
ACM Transactions on Programming Languages and Systems (TOPLAS) - Lecture notes in computer science Vol. 174
Hierarchical correctness proofs for distributed algorithms
PODC '87 Proceedings of the sixth annual ACM Symposium on Principles of distributed computing
The Formal Specification and Design of a Distributed Electronic Funds-Transfer System
IEEE Transactions on Computers
Parallel program design: a foundation
Parallel program design: a foundation
An exercise in the formal derivation of parallel programs: maximum flows in graphs
ACM Transactions on Programming Languages and Systems (TOPLAS)
A Relational Notation for State Transition Systems
IEEE Transactions on Software Engineering
Mechanically Verifying Concurrent Programs with the Boyer-Moore Prove
IEEE Transactions on Software Engineering
Specification case studies
An experience in the formal verification of industrial software
Communications of the ACM - Electronic supplement to the December issue
Specifying Concurrent Program Modules
ACM Transactions on Programming Languages and Systems (TOPLAS)
Specification and Verification of Large-Scale Reactive Programs
Specification and Verification of Large-Scale Reactive Programs
Formal specification and design of a message router
ACM Transactions on Software Engineering and Methodology (TOSEM)
An experience in the formal verification of industrial software
Communications of the ACM - Electronic supplement to the December issue
Modeling deflection networks: design and specification
Proceedings of the 1999 ACM symposium on Applied computing
Reasoning About Places, Times, and Actions in the Presence of Mobility
IEEE Transactions on Software Engineering
Compositional Programming Abstractions for Mobile Computing
IEEE Transactions on Software Engineering
Fundamenta Informaticae - Behavior of Composed Concurrent Systems: Logic and Reasoning
Electronic Notes in Theoretical Computer Science (ENTCS)
Fundamenta Informaticae - Behavior of Composed Concurrent Systems: Logic and Reasoning
Hi-index | 0.00 |
The formal derivation of an implementation of the I/O (input/output) subsystem portion of an existing operating system is presented. The I/O subsystem is responsible for allocating I/O resources such as tapes, disks, I/O channels in response to requests from user processes. The derivation employs the UNITY methodology which captures the concurrent interaction of the I/O subsystem with its environment. The verified resource allocation algorithm that results from the derivation has been used as part of a high-level design by software engineers implementing the I/O subsystem. As the largest application to date of the UNITY methodology, the derivation illustrates a number of techniques for organizing large specifications and proofs.