1
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.
2
GATE CSE 2021 Set 2
Numerical
+2
-0

Consider a three-level page table to translate a 39-bit virtual address to a physical address as shown below.

GATE CSE 2021 Set 2 Operating Systems - Memory Management Question 9 English

The page size is 4 KB (1 KB = 210 bytes) and page table entry size at every level is 8 bytes. A process P is currently using 2 GB (1 GB = 230 bytes) virtual memory which is mapped to 2 GB of physical memory. The minimum amount of memory required for the page table of P across all levels is _______ KB.

Your input ____
3
GATE CSE 2021 Set 2
Numerical
+1
-0

Consider the following ANSI C function:

int SomeFunction (int x, int y)

{

if ( (x == 1) I I (y == 1)) return 1;

if (x == y) return x;

if (x > y) return SomeFunction(x - y, y);

if (y > x) return SomeFunction(x, y - x);

}

The value returned by SomeFunction(15, 255) is _______.

Your input ____
4
GATE CSE 2021 Set 2
MCQ (Single Correct Answer)
+2
-0.66

Consider the following ANSI C program:

#include <stdio.h>

#include <stdlib.h>

struct Node{

int value;

struct Node ⋆next;};

int main(){

struct Node ⋆boxE, ⋆head, ⋆boxN; int index = 0;

boxE = head = (struct Node ⋆) malloc (sizeof(struct Node));

head -> value = index;

for (index = 1; index <=3; index++){

boxN = (struct Node ⋆) malloc(sizeof(struct Node));

boxE -> next = boxN;

boxN -> value = index;

boxE = boxN; }

for (index = 0; index <= 3; index++) {

printf("value at index %d is %d\m", index, head -> value);

head = head -> next;

printf("value at index %d is %d\n", index + 1, head -> value);}}

Which one of the statement below is correct about the program ?

A
It has a missing return which will be reported as an error by the compiler.
B
It dereferences an uninitialized pointer that may result in a run-time error.
C
Upon execution, the program goes into an infinite loop.
D
Upon execution, the program creates a linked-list of five nodes.
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