该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
A program computes the row sums
of an array A that is 100words by 100 words. Assume that the computer uses demand paging with a pagesize of 1000 words, and that the amount of main memory allotted for data isfive page frames. Is there any difference in the page fault rate if A werestored in virtual memory by rows or columns? Let’s explore.
Whether you store by rows or columns, it’s the same total amount ofmemory (in this case). The software environment you use can actually changethings, meaning locality is affected by both the reference order and datalayout. The same computation can be written in MATLAB or C, for example. MATLABwill store the same column contiguously in memory, but C will store the samerow. So for this problem, i is the row number and j is the column number.
a. Does the math expression cycle through theelements of a row, or of a column? __________
b. How many pages are required to hold theentire array: ________
Assume you are writing inC, which will store the elements of an array row in contiguous memory.
c. Across how many pages is a single row i spread? _______
d. Across how many pages is a column j spread? ______
e. Based on that, how many page loads arerequired for a row i._______
f. How many total page loads are required by thealgorithm? ______
Now assume you writethe algorithm in MATLAB, which will allocate memory by columns, storing theelements of an array column in contiguous memory.
g. Across how many pages isa row i spread? _______
h. Across how many pages is a column j spread? ______
i. Based on that, how many page loads arerequired for a row i._______
j. How many total page loads are required by thealgorithm? ______