Skip to main content
Log in

Primitives for resource management in a demand-driven reduction model

  • Published:
International Journal of Parallel Programming Aims and scope Submit manuscript

Abstract

Graph reduction has recently become well-known as a suitable technique for implementing applicative languages. However, its use hitherto has been primarily in implementing determinate programs. This paper is concerned with extensions to a demand-driven graph reduction language for performing resource management, and entail indeterminate operations. Our focus is on primitives for programming the synchronization and scheduling of resources, as found, for example, in operating systems. We propose queueing operators and operators for controlling the order of execution of operations. We show that demand-driven graph reduction simplifies the implementation of resource management, especially in obviating explicit protocols for task creation and deletion, and for busy waiting. The language FGL (Function Graph Language) is first introduced, and the primitives are presented in this language. A number of examples are then presented to show the versatility of these primitives. The paper concludes with a brief sketch of a higher-level notation, calledresource expressions, for specifying synchronization properties.

This is a preview of subscription content, log in via an institution to check access.

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Similar content being viewed by others

References

  1. Arvind, K. P. Gostelow, and W. Plouffe, The Id Report: an Asynchronous Programming Language and Computing Machine, TR 114A, University of California at Irvine (1978).

  2. D. Comte and N. Hifdi, LAU Multiprocessor: Microfunctional description and technological choices, inFirst European Conf. on Parallel and Distributed Processing, IFIPS, AFCET, CNRS, pp. 8–15 (1979).

  3. A. L. Davis, The Architecture and System Method of DDM-1: A Recursively-Structured Data Driven Machine, inProc. Fifth Annual Symp. on Computer Architecture (1978).

  4. J. B. Dennis, First Version of a Data-Flow Procedure Language,Lecture Notes in Computer Science, New York, pp. 362–376 (1974).

  5. R. M. Keller, G. Lindstrom, and S. S. Patil, A Loosely-Coupled Applicative Multiprocessing System, inAFIPS Proc. (1979).

  6. E. J. Courtois, F. Heymans, and D. L. Parnas, Concurrent Control with Readers Writers, inCommunications of the ACM 14:667–668 (October 1971).

  7. B. Jayaraman and R. M. Keller, Resource Expressions for Applicative Languages, inInternational Conf. on Parallel Processing, pp. 160–167 (1982).

  8. E. W. Dijkstra, Solution of a Problem in Concurrent Programming Control, inComminications of the ACM 8:569 (September 1965).

  9. J. McCarthy, A Basis for Mathematical Theory of Computation, inComputer Programming and Formal Systems, pp. 33–70 (1963).

  10. B. Jayaraman and R. M. Keller, Resource Control in a Demand-driven Data-flow Model, inInternational Conf. on Parallel Processing, pp. 118–127 (1980).

  11. P. R. Kosinski, Denotational Semantics of Determinate and Nondeterminate Data Flow Programs, Ph.D. Thesis, M.I.T. (May 1979).

  12. S. A. Ward, Functional Domains of Applicative Languages, Tech Report MAC TR-136, MIT Project MAC (September 1974).

  13. D. P. Friedman and D. S. Wise, An Indeterminate Constructor for Applicative Programming, inProc. of the Seventh Annual Symp. on Principles of Programming Languages, pp. 245–250 (1980).

  14. K. S. Weng, An Abstract implementation of Generalized Data Flow Language, Ph.D. Thesis, M.I.T. (May 1979).

  15. P. Henderson, Purely Functional Operating Systems inFunctional Programming and its Applications. Darlington, Henderson, and Turner (eds.), Cambridge University Press, London, pp. 177–192 (1982).

    Google Scholar 

  16. R. M. Keller, G. Lindstrom, and S. S. Patil, Dataflow Concepts for Hardware Design, inIEEE Compcon'80, pp. 105–111 (February 1980).

  17. Arvind, K. P. Gostelow, and W. Plouffe, Dataflow, Monitors, inProc. of the Sixth ACM Symp. on Operating Systems Principles, pp. 159–169 (1977).

  18. Arvind and J. D. Brock, Resource Managers in Functional Programming, inJ. of Parallel and Distributed Computing 1:5–21 (1984).

  19. A. Catto and J. Gurd, Resource Management in Dataflow, inConf. on Functional Programming Languages and Computer Architecture, New Hampshire, pp. 77–84 (1981).

  20. R. P. Gabriel and J. McCarthy, Queue-based Multi-processing Lisp,Symposium on LISP and Functional Programming, Austin, pp. 25–43 (1984).

  21. C. T. Haynes and D. P. Friedman, Engines Build Process Abstractions, inProc. of the ACM Symp. on LISP and Functional Programming, Austin, Texas, pp. 18–24 (1984).

  22. R. M. Keller, Semantics and Applications of Function Graphys, Technical Report UUCS-80-112, Computer Science Dept., University of Utah (October 1980).

  23. R. M. Keller and G. Lindstrom, Hierarchical Analysis of a Distributed Evaluator, inProc. of International Conf. on Parallel Processing, pp. 299–310 (1980).

  24. D. P. Friedman and D. S. Wise, Cons Should Not Evaluate Its Arguments, inAutomata, Languages, and Programming, Edinburgh, pp. 257–284 (1976).

  25. C. P. Wadsworth, Semantics and Pragmatics of Lambda-Calculus, Ph.D. Thesis, Oxford University (1971).

  26. P. Hudak and J. Young, Higher-Order Strictness Analysis in Untyped Lambda Calculus, in13th ACM POPL, St. Petersburg Beach, pp. 97–109 (1986).

  27. R. M. Keller, B. Jayaraman, G. Lindstrom, and D. Rose, FGL Programmer's Guide, AMPS Technical Memo 1, University of Utah (March 1980).

  28. P. Landin, The Mechanical Evaluation of Expressions,Computer Journal 6(4):308–320 (January 1964).

    Google Scholar 

  29. R. M. Keller, Sentinels: a Concept for Multiprocess Coordination, Technical Report UUCS-78-104, Computer Science Dept., University of Utah (June 1978).

  30. P. Henderson,Functional Programming, Prentice Hall (1980).

  31. T. Bloom, Evaluating Synchronization Mechanisms, inProc. of the Seventh ACM Symp. on Operating Systems Principles, pp. 24–32 (1979).

  32. R. J. M. Hughes, The Design and Implementation of Programming Languages, Ph.D. Thesis, Oxford University (1983).

  33. C. A. R. Hoare, Monitors: an Operating System Structuring Concept, inCommunications of the ACM 17:549–557 (October 1974).

  34. C. E. Hewitt and R. R. Atkinson, Specification and Proof Techniques for Serielizers, inIEEE Transactions on Software Engineering SE-5:10–23 (January 1979).

  35. A. N. Habermann and R. H. Campbell, The Specification of Process Synchronization by Path Expression, inLecture Notes in Computer Science, pp. 89–102 (1974).

  36. B. Jayaraman, Resource Extensions for FGL, AMPS Technical Memo 3, Department of Computer Science, University of Utah (July 1981).

  37. C. A. R. Hoare, Communicating Sequential Processes, inCommunications of the ACM 21:666–667 (August 1978).

Download references

Author information

Authors and Affiliations

Authors

Additional information

This research was undertaken while the authors were at the University of Utah, Salt Lake City, and was supported by a grant MCS77-09369 A01 from the National Science Foundation.

Rights and permissions

Reprints and permissions

About this article

Cite this article

Jayaraman, B., Keller, R.M. Primitives for resource management in a demand-driven reduction model. Int J Parallel Prog 15, 215–244 (1986). https://doi.org/10.1007/BF01414555

Download citation

  • Received:

  • Revised:

  • Issue Date:

  • DOI: https://doi.org/10.1007/BF01414555

Key Words

Navigation