Using the same table T (17 rows × 1024 columns, 32-bit word-addressable entries, 16 page frames of 1024 words each, LRU) and the same column-averaging program as above, now consider T stored in column-major format. How many page faults will be encountered while running the program?
for j = 0 to 1023:
temp = 0
for i = 0 to 16:
temp = temp + T[i][j]
print(temp / 17.0)
temp = 0
for i = 0 to 16:
temp = temp + T[i][j]
print(temp / 17.0)
Pick an option to check yourself, or open the answer below.
Show answer & explanation
Correct answer: D. 17
Explanation
In column-major order, T[i][j] sits at linear address j·17+i, and since the inner loop varies i fastest while j is the slow outer index, the program's references increase by exactly 1 word every step — a single, strictly sequential sweep through all 17×1024 = 17,408 words of the array. That is exactly 17,408 / 1024 = 17 pages, visited once each, strictly in order, with no page ever revisited. Since every page is referenced for the first (and only) time exactly once, the total number of page faults equals the number of distinct pages touched, which is 17, option (iv).More Programming Languages and Computer Graphics questions
- Using the same table T (17 rows × 1024 columns, 32-bit word-addressable entries, 16 page frames of 1024 words each, LRU) and the same colum…
- Using the same table T (17 rows × 1024 columns, 32-bit word-addressable entries, 16 page frames of 1024 words each, LRU) and the same colum…
- Using the same table T (17 rows × 1024 columns, 32-bit word-addressable entries, 16 page frames of 1024 words each, LRU) and the same colum…
- A virtual memory system uses the first-in-first-out (FIFO) page replacement policy and allocates a fixed number of frames to a process. Ass…
- Which of the following statement(s) is/are correct with respect to virtual memory? Statement I: Address translation is performed for every…
- Which of the statement is not true in regards to virtual memory? (i) The main objective for using virtual memory is to increase the effecti…