Re: Structure of large link libraries in f95



Gordon Sande wrote:

If all the program is contained in the executable file then it would seem
that all of the program has to be brought into memory so that execution
can begin. Much of it can then be paged out and left out.

No. Pages can read from the a.out - as needed. When data pages are modified,
they are then 'dirty' and then need to be paged elsewhere. (Google for "copy on
write".)

I have no trouble believing that there are well designed operating systems
where a properly installed program will be paged in from its executable
file.

There are quite a few. COW paging is old technology that dates to the 1970s,
if not before.

My observation is that that large Fortran arrays are not much of a problem
unless they are initialized with something like

real my_data ( 1000,1000,1000 )
data my_data / 1000000000 * 0 /

and the executable file format does not have a repeated initialization
construct.

Even if the data pages are not touched, and therefore are not resident in
physical memory, they still occupy "address space". On machines limited
to 32-bit addressing, or less in the olden days, this can lead to problems
as well.

Walt
.