Answered step by step
Verified Expert Solution
Link Copied!

Question

1 Approved Answer

3.Consider the following code segment: int pid = fork(); int c = 5; if (pid == 0) /* child process */ { fork(); c +=

3.Consider the following code segment:

int pid = fork();

int c = 5;

if (pid == 0) /* child process */

{

fork();

c += 10;

}

else

{

c += 5;

}

Answer the following questions:

a) How many different copies of the variable c are there? What are their values?

(Hint: every process has a different copy of variable c) (10 points)

b) Draw the tree structure of processes (you might want to review the examples

in chapter 3 slides). (5 points)

4. Write a C program to simulate deposit/withdraw activities on a banking account.

(Hint: you might want to review Lab 3 slides.) (25 points)

Declare the balance as a global variable and initialize it to 600.

Write two functions, one for withdraw, the other for deposit. Both withdraw

and deposit functions have one parameter, which represent the amount to

withdraw or deposit. The functions deduct the balance and add to the balance

one dollar at a time, respectively. Therefore, to withdraw 600 thousands, for

example, the withdraw function has to execute a loop with 600 thousand

iterations. The deposit function works in the same way, in the reverse

direction.

Create two Posix threads in main(), which call the withdraw and the deposit

function respectively.

Use pthread_mutex_lock() and pthread_mutex_unlock() functions to ensure

mutual exclusion between the two threads. Also make sure to use

pthread_join() to wait for the threads to terminate.

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

Recommended Textbook for

More Books

Students also viewed these Databases questions