Question: CS4315 Operating Systems Lab 3: Basic Synchronization using Mutex In this lab work we will do some practice about basic synchronization. Question 1 is about

CS4315 Operating Systems Lab 3: Basic Synchronization using Mutex

In this lab work we will do some practice about basic synchronization. Question 1 is about creating threads and each thread runs a different function. Question 2 and 3 are about mutex lock (acquiring a lock and releasing a lock).

1. Run the following C program (tprog1.c) and observe the result on the screen. #include #include #include #include // These two functions will run concurrently void* print_i(void *ptr) {

printf("I am in i "); } void* print_j(void *ptr) {

printf("I am in j "); } int main() {

pthread_t t1,t2; int rc1 = pthread_create(&t1, NULL, print_i, NULL); int rc2 = pthread_create(&t2, NULL, print_j, NULL); exit(0); }

2. Run the following C program (tprog2.c) and observe the result on the screen. Briefly explain why we may get the interleaving messages from these two processes.

#include

#include

#include

#include

void* print_i(void *ptr)

{

printf("1: I am ");

sleep(1);

printf("in i ");

}

void* print_j(void *ptr)

{

printf("2: I am ");

sleep(1);

printf("in j ");

}

int main()

{

pthread_t t1,t2;

int rc1 = pthread_create(&t1, NULL, print_i, NULL);

int rc2 = pthread_create(&t2, NULL, print_j, NULL);

exit(0);

}

3. Add mutex locks to tprog2.c to achieve synchronization, and then observe the result on your screen.

Submit the following on Blackboard: 1) a text file (e.g. q2.txt) that includes your answer to question 2.

2) tprog3.c (i.e., tprog2.c with mutex lock) 3) a screenshot of running tprog3

If you like you can include 1-3 in one document, e.g. a word file.

Step by Step Solution

There are 3 Steps involved in it

1 Expert Approved Answer
Step: 1 Unlock blur-text-image
Question Has Been Solved by an Expert!

Get step-by-step solutions from verified subject matter experts

Step: 2 Unlock
Step: 3 Unlock

Students Have Also Explored These Related Databases Questions!