Question: Complete the missing sections of code and explain the logic as well (if possible). CODE TO USE: semaphore_critical_reason.c #include #include #include #include #include void* protect_critical_region(void*
Complete the missing sections of code and explain the logic as well (if possible).
CODE TO USE: semaphore_critical_reason.c
#include #include #include #include #include
void* protect_critical_region(void* n) { int i = 0, thread_num = (int)(long)n; bool finished = false; sem_t mutex, mutex2, mutex3;
while (!finished) { // TODO: FILL IN THIS LINE for (int j = 0; j
sleep(2);
// TODO: FILL IN THIS LINE for (int j = 0; j 3;
// TODO: FILL IN THIS LINE for (int j = 0; j
#define N_THREADS 3
int main(int argc, const char* argv[]) { pthread_t tid[N_THREADS]; pthread_attr_t attr; pthread_attr_init(&attr); for (int i = 0; i
return 0; }
DESIRED OUTPUT (CAN VARY SLIGHTLY): //======================================================================== CRITICAL(T1) CRITICAL(T0) CRITICAL(T2) out of CRITICAL(T1) into non-critical(T1) CRITICAL(T1) out of CRITICAL(T2) into non-critical(T2) CRITICAL(T2) out of CRITICAL(T0) into non-critical(T0) CRITICAL(T0) out of CRITICAL(T1) out of CRITICAL(T2) out of CRITICAL(T0) into non-critical(T0) into non-critical(T2) CRITICAL(T2) CRITICAL(T0) into non-critical(T1) CRITICAL(T1) out of CRITICAL(T2) into non-critical(T2) CRITICAL(T2) out of CRITICAL(T0) into non-critical(T0) CRITICAL(T0) out of CRITICAL(T1) into non-critical(T1) CRITICAL(T1) out of CRITICAL(T2) out of CRITICAL(T0) into non-critical(T0) CRITICAL(T0) out of CRITICAL(T1) into non-critical(T1) CRITICAL(T1) into non-critical(T2) CRITICAL(T2) out of CRITICAL(T0) into non-critical(T0) out of CRITICAL(T1) into non-critical(T1) out of CRITICAL(T2) into non-critical(T2) all 3 threads joined End of program Program ended with exit code: 0
Screenshot of code: 
Output Screenshot:

(Global Scope) main(int argc, const char * argv[]) eous Files #include
Step by Step Solution
There are 3 Steps involved in it
Get step-by-step solutions from verified subject matter experts
