DIC AMP Channels in SR Language
1 Channels of SR
- In the book, Andrews uses a language, without ever giving us its
name SR, designed by him and implemented by his group.
- A channel is an SR PL construct for AMP
channel semop[1 .. n](sender: int, k: kind, timestamp: int)
- An array of channels, indexed 1 to n
- Each element is a triplet of (sender, k, timestamp)
send semop[j](i, VEE, lc)
- selects one channel
semop[j]
and deposits the triplet (i, VEE, lc)
- i, VEE, lc are expressions of types int, kind, int
receive semop[j](i, v, lc)
- selects one channel
semop[j]
and retrieves a triplet
- i, v, lc are local variables of the receiving process of types
int, kind, int respectively
- i, v, lc are assigned the triplet's values
broadcast semop(i, VEE, lc)
- does
send semop[j](i, VEE, lc) for all j: 1 .. n
- in parallel
2 References
- Gregory R. Andrews, Concurrent Programming: Principles and Practice,
Benjamin/Cummings, 1991. Chapter 7 on AMP. Required Reading.
- 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.
- ../Projects/WB-SR/ Years ago we used to have the WhiteBoard project
in SR. This is the src code link. Highly Recommended Reading.
Copyright © 2020
www.wright.edu/~pmateti • 2020-01-31