Question: Modify the pthread-data-sharing-mutex-os-call.cpp program to apply a Pthread mutex solution, i.e., you will use Linux system calls to control access to the critical region. You
Modify the pthread-data-sharing-mutex-os-call.cpp program to apply a Pthread mutex solution, i.e., you will use Linux system calls to control access to the critical region. You may want to refer to the prep materials for background info (section 2.3.6 in the textbook) and also to the Linux manual for the names and parameters of the functions. The necessary changes will be very small, i.e., not a lot of code is needed.
Build and execute the updated program several times. Expected Output: Your program should produce output similar to the following:
code:
#include
#include
#define TOTAL_THREADS 4
int count;
pthread_mutex_t the_mutex; // phread mutex variable
void* myFunction(void* arg)
{
int actual_arg = *((int*) arg);
for(unsigned int i = 0; i
// TODO:
// Use a Pthread mutex to control
// access to the critical region.
// Beginning of the critical region
count++;
std::cout
// End of the critical region
}
pthread_exit(NULL);
}
int main()
{
int rc[TOTAL_THREADS];
pthread_t ids[TOTAL_THREADS];
int args[TOTAL_THREADS];
// TODO: Initialize the pthread mutex here
count = 0;
for(unsigned int i = 0; i
args[i] = i;
rc[i] = pthread_create(&ids[i], NULL, myFunction, (void*) &args[i]);
}
for(unsigned int i = 0; i
pthread_join(ids[i], NULL);
}
std::cout
pthread_exit(NULL);
}
Thread #0 count = 1 Thread #0 count = 2 Thread #0 count = 3 Thread #0 count = 4 Thread #0 count = 5 Thread #0 count = 6 Thread #0 count = 7 Thread #0 count = 8 Thread #0 count = 9 Thread #0 count = 10 Thread #3 count = 11 Thread #3 count = 12 Thread #3 count = 13 Thread #3 count = 14 Thread #3 count = 15 Thread #3 count = 16 Thread #3 count = 17 Thread #3 count = 18 Thread #3 count = 19 Thread #3 count = 20 Thread #2 count = 21 Thread #1 count = 22 Thread #1 count = 23 Thread #1 count = 24 Thread #1 count = 25 Thread #1 count = 26 Thread #1 count = 27 Thread #1 count = 28 Thread #1 count = 29 Thread #1 count = 30 Thread #1 count = 31 Thread #2 count = 32 Thread #2 count = 33 Thread #2 count = 34 Thread #2 count = 35 Thread #2 count = 36 Thread #2 count = 37 Thread #2 count = 38 Thread #2 count = 39 Thread #2 count = 40 Final count 40Step by Step Solution
There are 3 Steps involved in it
Get step-by-step solutions from verified subject matter experts
