UP | HOME
../../

DIC AMP Channels in SR Language

1 Channels of SR

  1. In the book, Andrews uses a language, without ever giving us its name SR, designed by him and implemented by his group.
  2. A channel is an SR PL construct for AMP
    1. channel semop[1 .. n](sender: int, k: kind, timestamp: int)
    2. An array of channels, indexed 1 to n
    3. Each element is a triplet of (sender, k, timestamp)
  3. send semop[j](i, VEE, lc)
    1. selects one channel semop[j] and deposits the triplet (i, VEE, lc)
    2. i, VEE, lc are expressions of types int, kind, int
  4. receive semop[j](i, v, lc)
    1. selects one channel semop[j] and retrieves a triplet
    2. i, v, lc are local variables of the receiving process of types int, kind, int respectively
    3. i, v, lc are assigned the triplet's values
  5. broadcast semop(i, VEE, lc)
    1. does send semop[j](i, VEE, lc) for all j: 1 .. n
    2. in parallel

2 References

  1. Gregory R. Andrews, Concurrent Programming: Principles and Practice, Benjamin/Cummings, 1991. Chapter 7 on AMP. Required Reading.
  2. https://www2.cs.arizona.edu/~greg/ Andrews and Olsson, The SR Programming Language: Concurrency in Practice, Benjamin/Cummings, 1993. The book is now in its third printing. {pmateti: SR provided remote/local procedure calls (RPC-like), rendezvous (as in Ada), sending a msg to a procedure (that created a transient process), and send! coupled with in? that resulted in message passing.} Recommended Visits.
  3. ../Projects/WB-SR/ Years ago we used to have the WhiteBoard project in SR. This is the src code link. Highly Recommended Reading.

3 End


Copyright © 2020 www.wright.edu/~pmateti • 2020-01-31