This post just for the last two question which weren't covered in the last post
This post just for the last two question which weren't covered in the last post.
Study the two functions given below. Both use the same array declared as: static int data[256*256*8];
void function1()
{
int i;
int j;
for (i = 0; i < 32; i++)
for (j = 0; j < 256; j++)
data[j] = i;
}
void function2()
{
int i;
int j;
for (i = 0; i < 32; i++)
for (j = 0; j < 256; j++)
data[j*2048] = i;
}
Instructions:
Assume the following behaviors in a virtual memory system. Reading or writing physical
memory requires 50 nanoseconds. Reading or writing disk writing 10 milliseconds. Page
size is 8 kilobytes. Presume that the program has 1 megabyte of physical memory
available. You may consider everything except the array access itself to take no time.
You should also assume that the first 1 megabyte of the array is in physical memory ini-
tially. You may ignore any memory used by the program or stack to execute these func-
tions. Using this information, answer the following questions. In each case, show the
work you use to calculate the answer. Give your answer in a reasonable unit.
d) Just considering virtual memory access time, how long will it take for function1() to
execute?
e) Just considering virtual memory access time, how long will it take for function2() to
execute? Remember to account for both read and write activity.
Step by step
Solved in 2 steps