dwm@msc.edu (Don Mears) (01/14/91)
The biggest argument in favor of virtual memory is that FORTRAN does not
support dynamic memory allocation. So that you have users that
run FORTRAN programs that look like:
parameter(MAXSIZE=500)
common /block/ s(MAXSIZE, MAXSIZE, MAXSIZE), array(MAXSIZE,MAXSIZE)
read *, newsize, ((s(i, j, 1), i=1,newsize, j=1,newsize))
...
Typically, these programs will be configured to the largest size that fits
on a machine, but most runs will use only a small part of the memory.
If most of the runs of the above program use a 'newsize' that is substantially
smaller than MAXSIZE, you could be wasting over 100MW of real memory per
run. This is especially a problem with vendor supplied applications
that you do not have source access to.
This would not be a problem with a virtual memory system because the unused
parts of the address space would not tie up real memory.
Other VM arguments are:
(1) If I have a 500MW machine, I would like to be able to debug a 500MW problem
during the day without preventing other users from getting work done.
I don't want to have to swap in and out my 500MW process.
(2) If I have a 500MW machine and my problem requires 501MW, I would like
to just run it and suffer the slight paging penalty rather that having
to re-write my code.
(3) If I have a 500 MW machine and my friend has a 1000MW machine and
my code fails on his machine, I would like to be able to debug it
on my machine.
(4) Users are used to writing in a style that assumes the presence of
virtual memory because there are so many virtual memory machines around
today. It is a waste of my time to remove the wasteful use of memory
in these programs to make them run efficiently on supercomputers.
(5) New and interesting operating systems like Mach require segmented
memory at least and work best with virtual memory.
On the other hand, Real Programmers (tm) don't need no stinkin' virtual
memory :-). Why, when I was your age, sonny, I could fit a compiler, an
editor, and the operating system in 4K bytes. I don't know what this world
is coming to.
dwm@msc.edu Donald W. Mears @ Minnesota Supercomputer Center
dwm@msc.edu Donald W. Mears @ Minnesota Supercomputer Center