Monitors: an operating system structuring concept
Communications of the ACM
Concurrent control with “readers” and “writers”
Communications of the ACM
Operating system principles
A preliminary architecture for a basic data-flow processor
ISCA '75 Proceedings of the 2nd annual symposium on Computer architecture
A data flow language for operating systems programming
Proceeding of ACM SIGPLAN - SIGOPS interface meeting on Programming languages - operating systems
A GRAPH MODEL FOR PARALLEL COMPUTATIONS
A GRAPH MODEL FOR PARALLEL COMPUTATIONS
Data-Driven and Demand-Driven Computer Architecture
ACM Computing Surveys (CSUR)
Toward an algebra of nondeterministic programs
LFP '82 Proceedings of the 1982 ACM symposium on LISP and functional programming
Resource management in dataflow
FPCA '81 Proceedings of the 1981 conference on Functional programming languages and computer architecture
Advances in dataflow programming languages
ACM Computing Surveys (CSUR)
Performance of a Simulated Dataflow Computer
IEEE Transactions on Computers
Agent-oriented programming: from prolog to guarded definite clauses
Agent-oriented programming: from prolog to guarded definite clauses
Structured flowcharts for multiprocessing
Computer Languages
Hi-index | 0.00 |
The work described in this paper began with a desire to include some linguistic concept of a resource manager within a dataflow language we have been designing [AGP76]. In doing so, we discovered that dataflow monitors (resource managers) provide a natural way of thinking about resources and especially their scheduling. Dataflow semantics are based upon a program composed of asynchronous operators interconnected by lines along which data tokens (messages) flow, such that when all of the input tokens for a given operator have arrived then that operator may fire (execute) by absorbing the input tokens, computing, and producing an output token as its result. These operations closely match one's intuitive model of resource managers (operators) passing signals (tokens) to one another for the purpose of synchronizing and scheduling resource usage. Previously though, dataflow languages [D73, K73, W75] have dealt only with the expression of highly asynchronous yet determinate computations; however, resource management characteristically involves indeterminate computation. The introduction here of dataflow monitors and an explicit nondeterministic merge operator for dataflow streams makes dataflow very well suited for expressing interprocess communication and operations on resources.