Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
research-article

A Generalized Message-Passing Mechanism for Communicating Sequential Processes

Published: 01 June 1988 Publication History
  • Get Citation Alerts
  • Abstract

    Bidirectional message-passing (bi-io), a novel symmetric communication mechanism for concurrent processes, is introduced and developed. The mechanism is symmetric in the sense that, in one atomic action, a message is transmitted in each direction between two processes. For some applications (tree structure, systolic arrays) this method is shown to have several advantages over conventional synchronization and communication primitives (mainly conciseness of programs, absence of certain types of deadlock). The mechanism is rigorously defined with a CSP-like syntax and a weakest-precondition semantics. Two systolic arrays are developed using bidirectional message-passing: a matrix-vector multiplier and a palindrome recognizer.

    References

    [1]
    {1} G. R. Andrews, "The distributed programming language SR-mechanisms, design, and implementation," Software Practice Exper., vol. 12, pp. 719-754, Aug. 1982.
    [2]
    {2} G. R. Andrews and F. B. Schneider, "Concepts and notations for concurrent programming," ACM Comput. Surveys, vol. 15, pp. 3- 43, Mar. 1983.
    [3]
    {3} J. de Bakker, Mathematical Theory of Program Correctness. London, England: Prentice-Hall, 1980.
    [4]
    {4} E. W. Dijkstra, "Guarded commands, nondeterminacy and formal derivation of programs," Commun. ACM, vol. 18, pp. 453-457, Aug. 1975.
    [5]
    {5} E. W. Dijkstra, "Invariance and non-determinacy," Int. Summer School in Concept Distributed Programming, Munich, Germany, 1984.
    [6]
    {6} T. Elrad and N. Francez, "A weakest precondition semantics for communicating processes," Theoret. Comput. Sci., vol. 29, pp. 231- 250, 1984.
    [7]
    {7} J. A. Feldman, "High level programming for distributed computing," Commun. ACM, vol. 22, pp. 353-368, June 1979.
    [8]
    {8} C. A. R. Hoare, "Communicating sequential processes," Commun. ACM, vol. 21, pp. 666-677, Aug. 1978.
    [9]
    {9} C. Mead and L. Conway, Introduction to VLSI Systems. Reading, MA: Addison-Wesley, 1980.
    [10]
    {10} P. C. Treleaven, D. R. Brownbridge, and R. P. Hopkins, "Data-driven and demand-driven computer architecture," ACM Comput. Surveys, vol. 14, pp. 93-143, Mar. 1982.
    [11]
    {11} U.S. Department of Defense, "Programming language Ada: Reference manual," vol. 106, Lecture Notes in Computer Science. New York: Springer-Verlag, New York, 1981.
    [12]
    {12} INMOS, Occam Programming Language. Englewood Cliffs, NJ: Prentice-Hall, 1984.

    Cited By

    View all
    • (2012)A systematic approach to embedded biomedical decision makingComputer Methods and Programs in Biomedicine10.1016/j.cmpb.2011.11.002108:2(656-664)Online publication date: 1-Nov-2012
    • (1989)Distributed Computing with Single Read-Single Write VariablesIEEE Transactions on Software Engineering10.1109/32.2470615:5(569-574)Online publication date: 1-May-1989
    • (1988)Correction to "A Generalized Message-Passing Mechanism for Communicating Sequential Processes"IEEE Transactions on Computers10.5555/52029.62656337:11(1484)Online publication date: 1-Nov-1988
    • Show More Cited By

    Recommendations

    Reviews

    Craig Partridge

    The message-passing mechanism described by this paper is called “bi-io,” which is short for “bidirectional message passing.” The novelty of bi-io is its paradigm of a simultaneous exchange of messages between two processes, instead of the standard request-response interaction used by most message-passing systems. The paper presents bi-io by extending the notation developed for communicating sequential processes and then analyzing bi-io in terms of this notation. It also presents ways that the problems of palindrome recognition and matrix vector multiplication could be represented in the bi-io notation. No implementations are discussed. In general, the paper presents the idea of bi-io clearly (although Lenders has published a correction to a typesetting error [1]) and the simple examples clearly illustrate how programmers might use it. Unfortunately, the paper does not make a very good argument for why bi-io is superior to existing communications paradigms such as classic RPC [2], nor does it discuss how bi-io might be implemented efficiently on a communication network.

    Access critical reviews of Computing literature here

    Become a reviewer for Computing Reviews.

    Comments

    Information & Contributors

    Information

    Published In

    cover image IEEE Transactions on Computers
    IEEE Transactions on Computers  Volume 37, Issue 6
    June 1988
    136 pages

    Publisher

    IEEE Computer Society

    United States

    Publication History

    Published: 01 June 1988

    Author Tags

    1. CSP-like syntax
    2. bidirectional message passing
    3. communicating sequential processes
    4. communication primitives
    5. concurrent processes
    6. distributed processing
    7. generalized message-passing mechanism
    8. parallel processing
    9. symmetric communication mechanism
    10. synchronization
    11. systolic arrays
    12. tree structure
    13. trees (mathematics).
    14. weakest-precondition semantics

    Qualifiers

    • Research-article

    Contributors

    Other Metrics

    Bibliometrics & Citations

    Bibliometrics

    Article Metrics

    • Downloads (Last 12 months)0
    • Downloads (Last 6 weeks)0
    Reflects downloads up to 29 Jul 2024

    Other Metrics

    Citations

    Cited By

    View all
    • (2012)A systematic approach to embedded biomedical decision makingComputer Methods and Programs in Biomedicine10.1016/j.cmpb.2011.11.002108:2(656-664)Online publication date: 1-Nov-2012
    • (1989)Distributed Computing with Single Read-Single Write VariablesIEEE Transactions on Software Engineering10.1109/32.2470615:5(569-574)Online publication date: 1-May-1989
    • (1988)Correction to "A Generalized Message-Passing Mechanism for Communicating Sequential Processes"IEEE Transactions on Computers10.5555/52029.62656337:11(1484)Online publication date: 1-Nov-1988
    • (1988)Distributed microprogrammingACM SIGMICRO Newsletter10.1145/62197.6219919:1-2(11-12)Online publication date: 1-Jun-1988
    • (1987)Distributed microprogrammingProceedings of the 20th annual workshop on Microprogramming10.1145/255305.255307(12-14)Online publication date: 1-Dec-1987

    View Options

    View options

    Media

    Figures

    Other

    Tables

    Share

    Share

    Share this Publication link

    Share on social media