1
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
2
GATE CSE 2021 Set 2
MCQ (More than One Correct Answer)
+2
-0

Consider a computer system with multiple shared resource types, with one instance per resource type. Each instance can be owned by only one process at a time. Owning and freeing of resources are done by holding a global lock (L). The following scheme is used to own a resource instance:

function OWNRESOURCES(Resource R)

Acquire lock L / / a global lock

if R is available then

Acquire R

Release lock L

else

if R is owned by another process P then

Terminate P, after releasing all resources owned by P

Acquire R

Restart P

Release lock L

end if

end if

end function

Which of the following choice(s) about the above scheme is/are correct?

A
The scheme may lead to starvation.
B
The scheme may lead to live-lock.
C
The scheme ensures that deadlocks will not occur.
D
The scheme violates the mutual exclusion property.
3
GATE CSE 2021 Set 2
MCQ (More than One Correct Answer)
+2
-0

Consider the following multi-threaded code segment (in a mix of C and pseudocode), invoked by two processes P1 and P2, and each of the processes spawns two threads T1 and T2:

int x = 0; // global

Lock L1; // global

main() {

create a thread to execute foo(); // Thread T1

create a thread to execute foo(); // Thread T2

wait for the two threads to finish execution;

print (x);}

foo() {

int y = 0;

Acquire L1;

x = x + 1;

y = y + 1;

Release L1;

print (y); }

Which of the following statement(s) is/are correct ?

A
Both T1 and T2, in both the processes, will print the value of y as 1.
B
At least one of P1 and P2 will print the value of x as 4
C
Both P1 and P2 will print the value of x as 2.
D
At least one of the threads will print the value of y as 2.
4
GATE CSE 2020
MCQ (Single Correct Answer)
+2
-0.67
Each of a set of n processes executes the following code using two semaphores a and b initialized to 1 and 0, respectively. Assume that count is a shared variable GATE CSE 2020 Operating Systems - Synchronization and Concurrency Question 7 English
What does the code achieve?
A
It ensures that all processes execute CODE SECTION P mutually exclusively.
B
It ensures that at most two processes are in CODE SECTION Q at any time.
C
It ensures that no process executes CODE SECTION Q before every process has finished CODE SECTION P.
D
It ensures that at most n-1 processes are in CODE SECTION P at any time.
GATE CSE Subjects
Software Engineering
Web Technologies
EXAM MAP