Answered step by step
Verified Expert Solution
Link Copied!

Question

1 Approved Answer

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.image text in transcribed

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

Step: 1

blur-text-image

Get Instant Access to Expert-Tailored Solutions

See step-by-step solutions with expert insights and AI powered tools for academic success

Step: 2

blur-text-image_2

Step: 3

blur-text-image_3

Ace Your Homework with AI

Get the answers you need in no time with our AI-driven, step-by-step assistance

Get Started

Recommended Textbook for

Visual C# And Databases

Authors: Philip Conrod, Lou Tylee

16th Edition

1951077083, 978-1951077082

More Books

Students also viewed these Databases questions

Question

1. Which position would you take?

Answered: 1 week ago