[comp.os.vms] INSTALLED IMAGE question

STEINBERGER@KL.SRI.COM (Richard Steinberger) (05/02/88)

	When one or more users run an image that is installed, who's Working
set quota get's debited, or do each of the user's quotas get charged, or
do no charges result (assuming it was installed /shared).  Is there a way
to have very popular images (like emacs) reside in memory (if space is
available) even though no one may currently be running that image?  Would
there be any reason to do this (i.e. speed of execution)?

	Thanks to any/all who reply.

-Ric Steinberger
steinberger@kl.sri.com

-------

tada@athena.mit.edu (Michael Zehr) (05/03/88)

In article <12395117720.16.STEINBERGER@KL.SRI.COM> STEINBERGER@KL.SRI.COM (Richard Steinberger) writes:
>
>	When one or more users run an image that is installed, who's Working
>set quota get's debited? [...] [Can popular images reside in memory 
>even though no one may currently be running that image?]

Yes, it is faster, because the file's header is resident so VMS
doesn't have to do a directory lookup to see where the file is on
disk, but i don't think you can force it to remain in memory.  The
large advantage is when two people are using it they use the same
global pages (i.e. takes up less memory, so it pages less so it's
faster).  

Does anyone know how this applies to data files?  I want two processes
to run at the same time, each of them reading data from a file.  I can
install the file /open, but when i try it /shared, it complains (BADHDR
-- an error was discovered in the image header).  The machine is
really thrashing for memory, so any suggestions on how to make the
processes share data pages would be appreciated.

-michael j zehr

LEICHTER@Venus.YCC.Yale.EDU ("Jerry Leichter ", LEICHTER-JERRY@CS.YALE.EDU) (05/03/88)

	When one or more users run an image that is installed, who's Working
	set quota get's debited, or do each of the user's quotas get charged,
	or do no charges result (assuming it was installed /shared).

The pages from installed images are charged to the working set sizes of each
of the processes that map to them and then fault pages in.

							   Is there a way
	to have very popular images (like emacs) reside in memory (if space is
	available) even though no one may currently be running that image?
	Would there be any reason to do this (i.e. speed of execution)?

Install the images /OPEN/HEADER_RES.  This will keep the file open permanently
and keep the image header resident.  There is no explicit way to force the
pages of the file to remain resident, but if there is enough memory they
usually will anyway.  Let the pager worry about it....

							-- Jerry

pstevens@pioneer.arpa (Paul Stevens RCE Sterling) (05/04/88)

In article <5077@bloom-beacon.MIT.EDU> tada@athena.mit.edu (Michael Zehr) writes:
>
>Does anyone know how this applies to data files?  I want two processes
>to run at the same time, each of them reading data from a file.  I can
>install the file /open, but when i try it /shared, it complains (BADHDR
>-- an error was discovered in the image header).  The machine is
>really thrashing for memory, so any suggestions on how to make the
>processes share data pages would be appreciated.
>
I believe that to install as SHARED the file must be an executable.
To do what you want, look at $CRMPSC (create and map section system
service) and use it to create a permanant section.  Of course you will
need suficient privledges to do so.  Of course, with both techniques the
file will only actually be in memory after one or more processes maps to
it.  It's also possible to accomplish the same thing (sharing a data file
between two processes) by using linker options, but then your file must be
source code for some supported language, as opposed to raw data.  Hope this
helps a bit.




-----------------------------------------------------------------------
Paul Stevens - NASA Ames Research Center Moffet Field CA
               Mail Stop 233-10
               (415)694-4887
	       pstevens@ames-pioneer.arpa

rrk@byuvax.bitnet (05/06/88)

If this is a data file, I doubt you want to do anything $CRMPSC could do
for you.  You probably want to do a convert/fdl or some such thing on the
file and specify that you want global RMS buffers.  This actually makes
a system section you can see with list/global from install whenever the
file is opened, but it allows you to access the file from RMS with normal
file/record locking like you are used to instead of giving you the whole
file uninterpreted in system memory in one whack.

                                AMMON::RAY