Some Deadlock Properties of Computer Systems
ACM Computing Surveys (CSUR)
Reflections on an operating system design
Communications of the ACM
Communications of the ACM
Protection in operating systems
Communications of the ACM
Monitors: an operating system structuring concept
Communications of the ACM
Concurrent control with “readers” and “writers”
Communications of the ACM
HYDRA: the kernel of a multiprocessor operating system
Communications of the ACM
The specification of process synchronization by path expressions
Operating Systems, Proceedings of an International Symposium
Language Constructs for Specifying Concurrency in CDL
IEEE Transactions on Software Engineering
Concepts and Notations for Concurrent Programming
ACM Computing Surveys (CSUR)
MSL: a microprocessors systems language
ACM-SE 16 Proceedings of the 16th annual Southeast regional conference
Assuring and evolving concurrent programs: annotations and policy
Proceedings of the 24th International Conference on Software Engineering
Capsules: A Shared Memory Access Mechanism for Concurrent C/C++
IEEE Transactions on Parallel and Distributed Systems
Capabilities for Sharing: A Generalisation of Uniqueness and Read-Only
ECOOP '01 Proceedings of the 15th European Conference on Object-Oriented Programming
Scheduling in Concurrent Pascal
ACM SIGOPS Operating Systems Review
Hi-index | 0.00 |
Languages for parallel programming should meet four goals: expressiveness, data integrity, security, and verifiability. This paper presents a set of language features for describing processes and process interaction, gives examples of their use, and briefly discusses their relation to the goals. Two constructs, resources and protected variables, are introduced as the mechanisms for describing interaction. Resources are extensions of the monitor concept of Hoare; protected variables are global variables which can only be accessed by one process at a time. Two types of access control are introduced: restrictions on scope rules for static access, and capabilities for dynamic access. Examples include the interface to machine devices, files and virtual devices, readers/writers, device scheduling, device reservation, and buffer allocation.