Answered step by step
Verified Expert Solution
Link Copied!

Question

1 Approved Answer

//thread.c v2 #include #include #include #define _SCHED_H 1 #define __USE_GNU 1 #include #define STACK_SIZE 4096 int var1 = 0;//global variable int var2 = 0;//global variable

//thread.c v2

#include

#include

#include

#define _SCHED_H 1

#define __USE_GNU 1

#include

#define STACK_SIZE 4096

int var1 = 0;//global variable

int var2 = 0;//global variable

int thread_behavior(void *arg) {

printf("\t\tThread: Inside thread_behavior, my pid: %d ", getpid());

var2++;

printf("\t\tThread: var2 = %d ", var2);

sleep(1);//sleep 1 second

printf("\t\tThread: Terminating thread_behavior... ");

return 0;

}

int child_behavior() {

int state;

printf("Child: Inside child_behavior, my pid: %d ", getpid());

var1++;

printf("Child: var1 = %d ", var1);

//reserve some space for the thread's stack

//no need to reserve space for data or code,

// since thread will share its creator's data and code section

void *thread_stack = malloc(STACK_SIZE);

int thread_pid;

printf("Child: Creating new thread and waiting... ");

//clone system call

thread_pid = clone(&thread_behavior, thread_stack + STACK_SIZE, CLONE_SIGHAND | CLONE_FS |CLONE_VM | CLONE_FILES | CLONE_THREAD, NULL);

sleep(1);//sleep 1 second

printf("Child: var2 = %d ", var2);

printf("Child: Terminating child_behavior... ");

return 0;

}

int main() {

int state;

int child_pid;

printf("\tParent: my pid: %d ", getpid());

printf("\tParent: Creating new child and waiting... ");

//clone system call

child_pid = fork(); //duplicate

if( child_pid == 0 ){

//child: The return of fork() is zero

child_behavior();

} else {

wait(&state);//wait for the child to terminate

printf("\tParent: Done waiting! Child pid: %d ", child_pid);

printf("\tParent: var1 = %d ", var1);

}

return 0;

}

What is the output of this program? Explain the value(s) obtained for var2.

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

Modern Database Management

Authors: Jeffrey A. Hoffer Fred R. McFadden

4th Edition

0805360476, 978-0805360479

More Books

Students also viewed these Databases questions

Question

3. Who would the members be?

Answered: 1 week ago

Question

4. Who would lead the group?

Answered: 1 week ago