[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Synchronous Communication = Swap



M_Boosten wrote:
> 
> Hi,
> 
> I was unclear about the barier synchronisation idea.
> I'll try to clarify myself.
> 
> The basic primitive "Sync" should:
> 1. Allow a number of processes to synchronise.
>    (Fundamentally, this is an event in CSP math)
> 2. Allow each of them to contribute data to the moment of
>    synchronisation.
> 3. Allow each of them to obtain the collection of contributed
>    data.
> 
> One2One, One2All, and SwapChannel are special cases (semantical
> sugar) of this basic Sync primitive.  I think all these special
> cases can/are easily (be) modelled in CSP maths.

There is no need for "Sync" in *this* sense because it is already
covered by CSP events. I defined a different sort of "sync" in an early
version of HCSP and it appears as SYNC in Barry and Rogers's occam
hardware compiler. But that is closely associated with my "merge"
algebra on CSP events. 

The extra semantics that you have in 2) and 3) above is fine as a
refinement of the CSP algebra. Mind you, I had things like
  (c ? x)<>(d ! y)
in my merge algebra which is a bidirectional event in your sense. And
machine readable CSP (the language of FDR) allows joint input and output
events.

Adrian
-- 
Dr A E Lawrence (from home)