Answered step by step
Verified Expert Solution
Link Copied!

Question

1 Approved Answer

Please write a full answer and explain it well 4. (6%) The pseudocode in the right Producer thread: column has been written to solve a

image text in transcribed

Please write a full answer and explain it well

4. (6%) The pseudocode in the right Producer thread: column has been written to solve a void produce ) while (true) int item producer-consumer problem with one pro- ducer thread (which is running method produce)) and one consumer thread (run- ning the method consume )- the ac tual implementation of ProduceItem and Consumeltem does not matter and is there- fore not shown. These two threads run con- currentlv and share an unbounded buffer item ProduceItem ) queue. enue (item); 1 10 Consumer thread: void consume ) int item; 12 13 14 instance (queue) of type Queue. while (true) if (queue.size () >0) The implementation of the used class Queue is shown as well. The Vector data structure item-queue. dequeue ); ConsumeItem (item) 16 17 18 19 20 21 used there has two important properties . It is able to grow as needed to support the concept of an unbounded buffer. (Even though RAM is a limit, we con- class Queue ( sider it big enough to cope with all oc- private Vector thequeue private int theSize-0; int size() f -new Vector 23 24 curring cases.) The methods add and remove are synchronized, i.e. even if two threads try to access the Vector instance theQueue at the same time, a race con- dition with respect to the Vector data return theSize; ) 27 28 29 void enqueue (int element) 1 structure is avoided. theSize++ Does the provided pseudocode solve the producer-consumer problem or is the code, 31 theQueue. add (element) // Append 32 // at end of vector 33 34 problem or is the code incorrect? If you think, the code is incor- rect, provide an example scenario or sched- ule in which a problem occurs (such as a deadlock, a race condition, an empty queue is dequeued, or anything else which is unin tended happens) and explain the underlying int dequeue (int element) [ 36 37 38 // Return and remove 39 /7 from front of vector 40 41 theSize -; return theQueue.remove (0) >

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

Step: 3

blur-text-image

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

Database And Expert Systems Applications 24th International Conference Dexa 2013 Prague Czech Republic August 2013 Proceedings Part 1 Lncs 8055

Authors: Hendrik Decker ,Lenka Lhotska ,Sebastian Link ,Josef Basl ,A Min Tjoa

2013 Edition

3642402844, 978-3642402845

More Books

Students also viewed these Databases questions