Home / Expert Answers / Computer Science / readers-writers-problem-based-on-the-monitor-r-w-controlled-defined-here-chapter-5-monitors-pa599

(Solved): Readers/Writers Problem. Based on the monitor \( R W \). Controlled defined here, Chapter 5 Monitors ...



Readers/Writers Problem. Based on the monitor \( R W \). Controlled defined here, Chapter 5 Monitors nonlter \( x w \) controller cond oktoready is signaled when mw \( ==0 \) cond oktowrited \( \quad \) signaled when \( \mathrm{nr} \mathrm{m}=0 \) and \( \mathrm{nw}=0 \) procedure request_read () \( \{ \) while (mw > 0) walt (oktoread) : \( \mathrm{nr}=\mathrm{nr}+11 \) 1 procedure release_read () \( \{ \) \( \mathrm{nr}=\mathrm{nr}-1 \mathrm{y} \) if ( \( \mathrm{nr}=0 \) ) signal (oktowrite) a awaken one writer 1 procedure reguest write () i while \( (\mathrm{nr}>0 \mid 1 \mathrm{~m} \) > 0) walt (oktowrite) ; \( \mathrm{nw}=\mathrm{nw}+1 t \) ) procedure relesse_write () \{ mw = nw - 1 i signal(oktowrite): awaken one writer and signal all(oktoread); all readers ) 1 Figure 5.5 Readers/writers solution using monitors. page 216, develop a server process for read/write control using asynchronous message passing. Suppose we have \( k \) reader processes and \( n-k \) writer processes, defined as follows: ``` type op_kind = enum(READ_REQ, READ_DONE, WRITE_REQ, WRITE_DONE); chan request(int clientID, op_kind kind); chan reply[n] (): process Reader[i=0 to k-1] { process Writer[i = k to n-1] | while (true) { while (true) ( send request (i, READ_REQ); send request (i, WRITE_REQ); receive reply[i](); xeceive reply[1](); reading -- writing - send request (i, READ_DONE); send request(i, WRITE_DONE); receive reply[i](); receive reply[i](): } 1 } ```



We have an Answer from Expert

View Expert Answer

Expert Answer


We have an Answer from Expert

Buy This Answer $5

Place Order

We Provide Services Across The Globe