Jump to content

Computer Organization problem

- - - - -

This topic has been archived. This means that you cannot reply to this topic.
3 replies to this topic

#1
babno

babno

    Newbie

  • Members
  • Pip
  • 6 posts
having trouble with this problem. anywho good in comp org and c? any help is greatly apreciated and if you could also explain how you got the answer that would be best so I can understand it (even though he said this wouldn't be on test. hardest problem of semester so he says)

Assume the following behaviors in the virtual memory system. Reading or writing physical memory requires 25 nanoseconds. Reading or writing disk writing 25 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 initially. You may ignore any memory used by the program or stack to execute these functions.

How long does each of the two following functions take to execute?

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; 

}

Edited by WingedPanther, 11 March 2009 - 11:41 AM.
add code tags (the # button)


#2
WingedPanther

WingedPanther

    A spammer's worst nightmare

  • Moderators
  • 16,831 posts
The key to both seems to be this: you will be reading/writing to disk in the second function, and thus will be using the slower access most of the time. Do you have any initial calculations?
Programming is a branch of mathematics.
My CodeCall Blog | My Personal Blog

#3
babno

babno

    Newbie

  • Members
  • Pip
  • 6 posts
I got ts a 2 mb array with 1 mb in physical memory

#4
WingedPanther

WingedPanther

    A spammer's worst nightmare

  • Moderators
  • 16,831 posts
The first loop only accesses 256*sizeof(int) bytes
The second loop accesses 524288*sizeof(int) bytes
What is relevant is what is accessed.
Programming is a branch of mathematics.
My CodeCall Blog | My Personal Blog