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. a) How many bytes of of virtual memory are necessary to hold the entire array? b) How many pages are necessary to hold the entire array? c) Assuming an int requires 4 bytes, which elements of the array will start in physical memory?
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.
a) How many bytes of of virtual memory are necessary to hold the entire array?
b) How many pages are necessary to hold the entire array?
c) Assuming an int requires 4 bytes, which elements of the array will start in physical
memory?
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.
Trending now
This is a popular solution!
Step by step
Solved in 3 steps with 1 images