Question: This is for a Operating Systems class. How can I use the pusedocode below to create a solution to the readers/writers problem while following the

This is for a Operating Systems class. How can I use the pusedocode below to create a solution to the readers/writers problem while following the criteria below:

Recall that to solve a readers/writers problem (Operating Systems), create a multi-thread program to simulate the problem. The following conditions must be satisfied:

1. Any number of readers may simultaneously read the file.

2. Only one writer at a time may write to the file.

3. If a writer is writing to the file, no reader may read it.

Please use semaphore to implement mutual exclusion. Please also create some-sort of GUI Interface to choose between Readers having priority or Writers having priority. In Java.

Puedocode:

/Readers Solution int readcount; semaphore x = 1, wsem = 1; void reader() { while (true) { semWait (x); readcount++; if(readcount == 1) semWait (wsem); semSignal (x); READUNIT(); semWait (x); readcount--; if(readcount == 0) semSignal (wsem); semSignal (x); } } void writer() { while (true) { semWait (wsem); WRITEUNIT(); semSignal (wsem); } } void main() { readcount = 0; parbegin (reader, writer); }

//Wiriters solution using Semaphore int readcount,writecount; semaphore x = 1, y = 1, wsem = 1, rsem = 1; void reader() { while (true) { semWait (z); semWait (rsem); semWait (x); readcount++; if (readcount == 1) semWait (wsem); semSignal (x); semSignal (rsem); semSignal (z); READUNIT(); semWait (x); readcount--; if (readcount == 0) semSIgnal (wsem); } } void writer () { while (true) { semWait (y); writecount++; if (writecount == 1) semWait (rsem); semSignal (y); semWait (wsem); semWait (y); writecount--; if (writecount == 0) semSignal (rsem); semSignal (y); } } void main() { readcount = writecount = 0; parbegin (reader, writer); }

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!