a) Remember this readers-writers synchronization problem from BUX and the reference book. 3. do { wait (mutex); read.count++3B if (read_count == 1) wait (rw.mutex); signal (mutex); .. /* reading is performed */ do { wait (rw_mutex); wait (mutex); read_count--; if (read.count == 0) signal (rw_mutex); signal (mutex); } while (true); /* writing is performed */ signal (rw.mutex); } while (true); Figure 5.11 The structure of a writer process. Figure 5.12 The structure of a reader process. This solution solves the critical section problem. However, there is a starvation issue here for the writer process. If there is a steady stream of reader processes in the ready queue, the writer process may starve and may not be able to write. We hope you can solve this starvation issue by applying one restriction in the code. The restriction is that if the writer was waiting for a reader, then that reader cannot read again before the writer completes writing. If than reader reading when the writer was waiting, this more one were restriction applies to all those readers. Update the reader and writer code to implement this restriction.

Computer Networking: A Top-Down Approach (7th Edition)
7th Edition
ISBN:9780133594140
Author:James Kurose, Keith Ross
Publisher:James Kurose, Keith Ross
Chapter1: Computer Networks And The Internet
Section: Chapter Questions
Problem R1RQ: What is the difference between a host and an end system? List several different types of end...
icon
Related questions
Question
3.
a) Remember this readers-writers synchronization problem from BUX and the reference
book.
do {
wait(mutex);
read_count++;
if (read_count == 1)
wait(rw_mutex);
signal(mutex);
/* reading is performed */
do {
wait(rw_mutex);
wait (mutex);
read_count--;
if (read_count == 0)
signal (rw_mutex);
signal (mutex);
} while (true);
/* writing is performed */
signal (rw_mutex);
} while (true);
Figure 5.11 The structure of a writer process.
Figure 5.12 The structure of a reader process.
This
solution solves
the
critical
section problem. However,
there
is
a
starvation issue here for the writer process. If there is a steady stream of
reader processes in the ready queue, the writer process may starve and may not
be able to write. We hope you can solve this starvation issue by applying one
restriction in the code. The restriction is that if the writer was waiting for a
reader, then that reader cannot read again before the writer completes writing.
If more
restriction applies to all those readers. Update the reader and writer code to
implement this restriction.
than
reader
were reading when
the writer was waiting, this
one
HINTS:
You do
not
need
any additional mutex for this but need to
use
both
Transcribed Image Text:3. a) Remember this readers-writers synchronization problem from BUX and the reference book. do { wait(mutex); read_count++; if (read_count == 1) wait(rw_mutex); signal(mutex); /* reading is performed */ do { wait(rw_mutex); wait (mutex); read_count--; if (read_count == 0) signal (rw_mutex); signal (mutex); } while (true); /* writing is performed */ signal (rw_mutex); } while (true); Figure 5.11 The structure of a writer process. Figure 5.12 The structure of a reader process. This solution solves the critical section problem. However, there is a starvation issue here for the writer process. If there is a steady stream of reader processes in the ready queue, the writer process may starve and may not be able to write. We hope you can solve this starvation issue by applying one restriction in the code. The restriction is that if the writer was waiting for a reader, then that reader cannot read again before the writer completes writing. If more restriction applies to all those readers. Update the reader and writer code to implement this restriction. than reader were reading when the writer was waiting, this one HINTS: You do not need any additional mutex for this but need to use both
Expert Solution
steps

Step by step

Solved in 2 steps with 2 images

Blurred answer
Recommended textbooks for you
Computer Networking: A Top-Down Approach (7th Edi…
Computer Networking: A Top-Down Approach (7th Edi…
Computer Engineering
ISBN:
9780133594140
Author:
James Kurose, Keith Ross
Publisher:
PEARSON
Computer Organization and Design MIPS Edition, Fi…
Computer Organization and Design MIPS Edition, Fi…
Computer Engineering
ISBN:
9780124077263
Author:
David A. Patterson, John L. Hennessy
Publisher:
Elsevier Science
Network+ Guide to Networks (MindTap Course List)
Network+ Guide to Networks (MindTap Course List)
Computer Engineering
ISBN:
9781337569330
Author:
Jill West, Tamara Dean, Jean Andrews
Publisher:
Cengage Learning
Concepts of Database Management
Concepts of Database Management
Computer Engineering
ISBN:
9781337093422
Author:
Joy L. Starks, Philip J. Pratt, Mary Z. Last
Publisher:
Cengage Learning
Prelude to Programming
Prelude to Programming
Computer Engineering
ISBN:
9780133750423
Author:
VENIT, Stewart
Publisher:
Pearson Education
Sc Business Data Communications and Networking, T…
Sc Business Data Communications and Networking, T…
Computer Engineering
ISBN:
9781119368830
Author:
FITZGERALD
Publisher:
WILEY