Question: Instructions Given the two semaphore operations illustrated below; wait (x) { while x

Instructions

Given the two semaphore operations illustrated below;

wait (x)

{

while x <= 0

// No Operation

x--

}

Signal (x)

{

x++

}

And using (as an example and basis) the producer-consumer code as illustrated below;

Producer()

{

while (true)

{

item = produceitem()

wait(empty)

wait(binary)

additemtobuffer(item)

signal(binary)

signal(full)

}

}

Consumer()

{

while (true)

{

wait(full);

wait(binary);

takeitemfrombuffer(item);

signal(binary);

signal(empty);

consumeitem(item)

}

}

Then given the following information;

Three processes are involved in printing a file (pictured below);

Process A reads the file data from the disk to Buffer 1

Process B copies the data from Buffer 1 to Buffer 2

Process C takes the data from Buffer 2 and prints it

Assume all three processes operate on one (file) record at a time, both buffers' capacity are one record.

Write pseudo code (in the style of the producer-consumer) to coordinate the three processes using semaphores and successfully print a file.

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!