The GATE Grind

GATE 2023 CS – Question 57

Operating System · Memory Management and Virtual Memory · 2 marks · Numerical answer

Consider the following two-dimensional array D in the C programming language, which is stored in row-major order: int D[128][128]; Demand paging is used for allocating memory and each physical page frame holds 512 elements of the array D. The Least Recently Used (LRU) page-replacement policy is used by the operating system. A total of 30 physical page frames are allocated to a process which executes the following code snippet:

for (int i = 0; i < 128; i++)
  for (int j = 0; j < 128; j++)
    D[j][i] *= 10;

The number of page faults generated during the execution of this code snippet is ______.

Practise this question in The GATE Grind →

Show answer and explanation

Correct answer: 4096

Explanation

One page holds 4 rows, so the array occupies 32 pages. For each i, the inner loop cycles through all 32 pages in order. With only 30 frames under LRU, each new page is evicted before reuse, so each i gives 32 faults, and the total is 128 × 32 = 4096.