Sender and receiver communicating via a channel by issuing send and receive operations; read policy and transmission policy define communication details.
A channel is specified by three attributes:
In the basic thinking model, all elements are stored as a sequential collection in the channel.
A runnable may send elements to a channel by issuing send operations.
The send operation has a single parameter:
A runnable may receive elements from a channel by issuing receive operations.
The receive operation is specified with a
receive policy that defines the main behaviour of the operation:
The receive policy defines the direction a receive operation takes effect with LIFO accesses are from top of the sequential collection, while with FIFO accesses are from bottom of the sequential collection-and they define if the receive operation is destructive (take) or non-destructive) read.
Each operation further has two parameters and two attributes specifying the exact behavior. The two parameters are:
In the following several examples are shown, of how to read or take elements out of a channel with the introduced parameters.
Two attributes further detail the receive operation:
To further specify how elements are accessed by a runnable in terms of computing time, an optional transmission policy may specify details for each receive and send operation. The intention of the transmission policy is to reflect computing demand (time) depending on data.
The transmission policy consists of the following attributes:
Example for using transmission policy to detail the receiving phase of a runnable execution. Two elements are received, leading to transmission time as given in the formula. After the receiving phase, the runnable starts with the computing phase.