Question: We want to design an asynchronous process Split that is the dual of Merge (Textbook Fig. 4.3, page 129). The process Split has one input

We want to design an asynchronous process Split that is the dual of Merge (Textbook Fig. 4.3, page 129). The process Split has one input channel in and two output channels out1 and out2. The messages received on the input channel should be routed to one of the output channels in a nondeterministic manner so that all possible splittings of the input stream are feasible executions. Describe all the components of the desired process Split.We want to design an asynchronous process Split that is the dual

Asynchronous Model 129 queue(msg) X1 := null; x2 := null msg ini A: - Full(xi) + Enqueue ini, X1) AZ: - Full(x2) + Enqueue in2, x2) msg out msg in A: - Empty(x1) out := Dequeue(x1) A?: - Empty(x2) out := Dequeue(x2) Figure 4.3: Asynchronous Process Merge The internal computation of a process is described using internal actions. Such actions neither process inputs nor produce outputs but update internal state and are described using internal tasks. An internal task A has a Boolean guard condition Guard that describes the states in which the task is enabled and an update description Update that specifies how the task updates the state variables based on their old values. Given a state s, we evaluate the guard Guard to check whether the task is ready to be executed and, if so, execute the update description Update to compute the new values for the state variables leading to a state t. Thus, the task specifies the set of internal actions set such that s [Guard) and (s, t) [Update]. The label e indicates that there is no observable communication during an internal action. Asynchronous Model 129 queue(msg) X1 := null; x2 := null msg ini A: - Full(xi) + Enqueue ini, X1) AZ: - Full(x2) + Enqueue in2, x2) msg out msg in A: - Empty(x1) out := Dequeue(x1) A?: - Empty(x2) out := Dequeue(x2) Figure 4.3: Asynchronous Process Merge The internal computation of a process is described using internal actions. Such actions neither process inputs nor produce outputs but update internal state and are described using internal tasks. An internal task A has a Boolean guard condition Guard that describes the states in which the task is enabled and an update description Update that specifies how the task updates the state variables based on their old values. Given a state s, we evaluate the guard Guard to check whether the task is ready to be executed and, if so, execute the update description Update to compute the new values for the state variables leading to a state t. Thus, the task specifies the set of internal actions set such that s [Guard) and (s, t) [Update]. The label e indicates that there is no observable communication during an internal action

Step by Step Solution

There are 3 Steps involved in it

1 Expert Approved Answer
Step: 1 Unlock blur-text-image
Question Has Been Solved by an Expert!

Get step-by-step solutions from verified subject matter experts

Step: 2 Unlock
Step: 3 Unlock

Students Have Also Explored These Related Databases Questions!