All mock tests are FREE till 31 December — register to save your progress

Directions (Q91–95): Consider the following program fragment that deals with a table T with 17 rows and 1024 columns, computing an average for each column and printing it (i is the row index and j is the column index):

for j = [0...1023] {
  temp = 0;
  for i = [0...16]
    temp = temp + T[i][j];
  print(temp / 17.0);
}

T[i][j] and temp are 32-bit floating-point values and memory is word addressable. temp is kept in a processor register, so accessing temp does not involve a memory reference. The main memory is paged and holds 16 pages of 1024 words each. The page replacement policy is least recently used (LRU). Unless stated otherwise, T is stored in the virtual address space in row-major format.

Consider now that T is stored in column-major format. What is the main memory hit ratio?

Pick an option to check yourself, or open the answer below.

Show answer & explanation

Correct answer: D. 99.9%

Explanation

In column-major order the inner loop walks consecutive words, so only 17 page faults occur in 17,408 references. Hit ratio = 1 − 17/17408 ≈ 99.9%.

More System Software and Operating System questions