Answered step by step
Verified Expert Solution
Link Copied!

Question

1 Approved Answer

OPERATING SYSTEM CLASS The program newrace.c contains 5 reader processes and 5 writer processes. Each writer writes a string like 0000000000, 1111111111 or 2222222222 to

OPERATING SYSTEM CLASS

The program newrace.c contains 5 reader processes and 5 writer processes. Each writer writes a string like "0000000000", "1111111111" or "2222222222" to a shared memory area. Each reader reads the string from the shared memory area and display them. However, because of the race condition, the readers get strings with mixed characters such as "4011120001", or "32100011132" most of time. This is incorrect.

(1) Your job is to implement a multiple-readers-single-writer algorithm to prevent the race condition. The correct display results should look like "0000000000", "1111111111", etc. You should use System V semaphores to solve the problem.

(2) You dont have to give readers and writers equal priority.

(3) Your code must be able to allow multiple readers to access the string concorrently.

(4) To learn more about System V semaphores, Search the web about "System V IPC". Pay attention to functions such as semget(), semctl(), semop().

(5) If you want to create a shared variable such as ReaderCount among processes, use the mmap() function. Follow the example in newrace.c.

(6) Use ucfilespace.uc.edu as your test platform.

newrace.c is listed below

#include  #include  #include  #include  #include  #include  #include  #include  #include  #include  #define FILE_SIZE 11 #define NO_PROC 10 int DelayCount = 0; int readerID = 0; int writerID = 0; char* shared_buffer; int Delay100ms = 0; /*------------------------------------------- Delay routines --------------------------------------------*/ void basic_delay() { long i,j,k; for (i=0;i<200L;i++) { for (j=0;j<400L;j++) { k = k+i; } } } /* do some delays (in 100 ms/tick) */ void delay(int delay_time) { int i,j; for (i=0; i                        

Step by Step Solution

There are 3 Steps involved in it

Step: 1

blur-text-image

Get Instant Access to Expert-Tailored Solutions

See step-by-step solutions with expert insights and AI powered tools for academic success

Step: 2

blur-text-image

Step: 3

blur-text-image

Ace Your Homework with AI

Get the answers you need in no time with our AI-driven, step-by-step assistance

Get Started

Students also viewed these Databases questions

Question

Compute the derivative of f(x)cos(-4/5x)

Answered: 1 week ago

Question

Discuss the process involved in selection.

Answered: 1 week ago

Question

Differentiate tan(7x+9x-2.5)

Answered: 1 week ago

Question

Explain the sources of recruitment.

Answered: 1 week ago

Question

Differentiate sin(5x+2)

Answered: 1 week ago