1
GATE CSE 2024 Set 2
MCQ (More than One Correct Answer)
+2
-0.66

Consider a multi-threaded program with two threads T1 and T2. The threads share two semaphores: s1 (initialized to 1) and s2 (initialized to 0). The threads also share a global variable x (initialized to 0). The threads execute the code shown below.

// code of T1
wait(s1);
x = x+1;
print(x);
wait(s2);
signal(s1);

// code of T2
wait(s1);
x = x+1;
print(x);
signal(s2);
signal(s1);

Which of the following outcomes is/are possible when threads T1 and T2 execute concurrently?

A

T1 runs first and prints 1, T2 runs next and prints 2

B

T2 runs first and prints 1, T1 runs next and prints 2

C

T1 runs first and prints 1, T2 does not print anything (deadlock)

D

T2 runs first and prints 1, T1 does not print anything (deadlock)

2
GATE CSE 2024 Set 1
MCQ (Single Correct Answer)
+2
-0.66

Consider the following two threads T1 and T2 that update two shared variables a and b. Assume that initially $a = 1$ and $b = 1$. Though context switching between threads can happen at any time, each statement of T1 or T2 is executed atomically without interruption.

T1:
$a = a + 1$;
$b = b + 1$;

T2:
$b = 2 * b$;
$a = 2 * a$;

Which one of the following options lists all the possible combinations of values of a and b after both T1 and T2 finish execution?

A

$(a = 4, b = 4); (a = 3, b = 3); (a = 4, b = 3)$

B

$(a = 3, b = 4); (a = 4, b = 3); (a = 3, b = 3)$

C

$(a = 4, b = 4); (a = 4, b = 3); (a = 3, b = 4)$

D

$(a = 2, b = 2); (a = 2, b = 3); (a = 3, b = 4)$

3
GATE CSE 2024 Set 1
Numerical
+2
-0.66

Consider the following code snippet using the fork() and wait() system calls. Assume that the code compiles and runs correctly, and that the system calls run successfully without any errors.

int x = 3;
while(x > 0) {
fork();
printf("hello");
wait(NULL);
x--;
}

The total number of times the printf statement is executed is _______

4
GATE CSE 2023
MCQ (Single Correct Answer)
+2
-0.67

Consider the two functions incr and decr shown below.


incr() {
wait(s);
X = X+1;
signal(s);
}

decr() {
wait(s);
X = X-1;
signal(s);
}



There are 5 threads each invoking incr once, and 3 threads each invoking decr once, on the same shared variable X. The initial value of X is 10.

Suppose there are two implementations of the semaphore s, as follows:

I-1: s is a binary semaphore initialized to 1.

I-2: s is a counting semaphore initialized to 2.

Let V1, V2 be the values of X at the end of execution of all the threads with implementations I-1, I-2, respectively.

Which one of the following choices corresponds to the minimum possible values of V1, V2, respectively?

A
15, 7
B
7, 7
C
12, 7
D
12, 8
GATE CSE Subjects
EXAM MAP
Medical
NEET
Graduate Aptitude Test in Engineering
GATE CSEGATE ECEGATE EEGATE MEGATE CEGATE PIGATE IN
Civil Services
UPSC Civil Service
Defence
NDA
CBSE
Class 12