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
Step: 1
Get Instant Access to Expert-Tailored Solutions
See step-by-step solutions with expert insights and AI powered tools for academic success
Step: 2
Step: 3
Ace Your Homework with AI
Get the answers you need in no time with our AI-driven, step-by-step assistance
Get Started