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
Medical
NEETAIIMS
Graduate Aptitude Test in Engineering
GATE CSEGATE ECEGATE EEGATE MEGATE CEGATE PIGATE IN
Civil Services
UPSC Civil Service
Defence
NDA
Staff Selection Commission
SSC CGL Tier I
CBSE
Class 12