Dataflow Resource Managers and Their Synthesis from Open Path Expressions

The control of concurrent access to shared resources is an important feature of both centralized and distributed operating systems. In conventional systems, exclusive access is the rule while concurrent access is the exception. Dataflow computer systems, along with an applicative style of programming, provide an execution environment in which this philosophy is reversed. In these latter systems, it is necessary to reexamine the manner in which synchronization of access to shared resources is specified and implemented. A basic design for a dataflow resource manager is reviewed, illustrating the clear separation between access mechanism and scheduling policy. The semantics of the access mechanism is based solely on the principle of data dependency. Specifications are presented for a general scheduler to further constrain or order accesses to the resource. Using ``open path expressions'' as a very high-level specification language for synchronization, it is shown how to automatically synthesize a scheduler as a distributed network of communicating modules.

[1]  Daniel P. Friedman,et al.  An indeterminate constructor for applicative programming , 1980, POPL '80.

[2]  Carl Hewitt,et al.  Specification and Proof Techniques for Serializers , 1979, IEEE Transactions on Software Engineering.

[3]  Krithivasan Ramamritham Specification and synthesis of synchronizers , 1981 .

[4]  Arvind,et al.  A Computer Capable of Exchanging Processors for Time , 1977, IFIP Congress.

[5]  C. A. R. Hoare,et al.  Monitors: an operating system structuring concept , 1974, CACM.

[6]  Arvind,et al.  Streams and Managers , 1980, Operating Systems Engineering.

[7]  R. Rajamony,et al.  References 1 , 1961 .

[8]  Bharadwaj Jayaraman Resource control in a demand-driven data-flow model , 1981 .

[9]  John W. Backus,et al.  Can programming be liberated from the von Neumann style?: a functional style and its algebra of programs , 1978, CACM.

[10]  A. L. Davis,et al.  The architecture and system method of DDM1: A recursively structured Data Driven Machine , 1978, ISCA '78.

[11]  Marie-Paule Lecouffe MAUD: a dynamic single-assignment system , 1979 .

[12]  William B. Ackerman,et al.  Data Flow Languages , 1899, Computer.

[13]  D. A. Turner,et al.  A new implementation technique for applicative languages , 1979, Softw. Pract. Exp..

[14]  John R. Gurd,et al.  Nondeterministic Dataflow Graphs , 1980, IFIP Congress.

[15]  Daniel P. Friedman,et al.  Aspects of Applicative Programming for Parallel Processing , 1978, IEEE Transactions on Computers.

[16]  Arvind,et al.  Indeterminacy, monitors, and dataflow , 1977, SOSP '77.

[17]  Ryuzo Hasegawa,et al.  A list-processing-oriented data flow machine architecture , 1982, AFIPS '82.

[18]  John R. Gurd,et al.  Resource management in dataflow , 1981, FPCA '81.

[19]  James R. McGraw,et al.  Streams and iteration in VAL: Additions to a data flow Language , 1982, ICDCS.

[20]  Peter M. Maurer,et al.  The Use of Combinators in Translating A Purely Functional Language to Low-Level Data-Flow Graphs , 1983, Comput. Lang..

[21]  Alan C. Shaw,et al.  Software Specification Languages Based on Regular Expressions , 1980 .

[22]  Roy H. Campbell,et al.  The specification of process synchronization by path expressions , 1974, Symposium on Operating Systems.