[comp.os.vms] Thoughts On Installing Images /SHARED/OPEN, And Related Topics...

CLAYTON@XRT.UPENN.EDU ("Clayton, Paul D.") (02/07/88)

Dave Neiman has asked the question of what the break-even point is for 
installing images with '/SHARED/OPEN' qualifiers. The use of installing 
shared images with the open qualifier is a win situation for any program that
has more then ONE user ACTIVELY using it from my point of view. 

The OPEN qualifier eliminates a directory lookup, which can have substantial
system overhead depending where the .EXE file is located.

The SHARE qualifier directs VMS to go to other processes currently running the
SAME image and to 'page fault' needed pages from the other persons working set 
into the one which incurred the page fault. If the needed pages are not in 
memory (someone else's working set) then an I/O to disk is generated and 
performed and the page fault is comlpeted using the information from disk. The
item to note here is that the I/O to disk, and resulting delay period to perform
the I/O, can be eliminated (maybe).

This sharing of pages between different processes on the same processor is
typically limited to the 'CODE' segments only. Therefore a decision to install
images has to be made based on the following two items.

1. How large the code segments are in 512 byte pages.
2. How many people are going to be in the same general area of the code at 
any one time.

Item 1 deals with the issue of how large the SYSGEN parameter PFCDEFAULT is,
the organization of the program sections, or PSECTS, and the size of the image.
If the image is small, PFCDEFAULT large and program sections are not splintered
you could end up with very few page faults when the processes is run. You could
just as easily end up with a process that page faults itself into oblivion. You 
have to try different things to see what works best. I STRONGLY RECOMMEND 
CAUTION WHEN CHANGING THE VALUE OF PFCDEFAULT.

Item 2 deals with how 'clustered' the users are in the code segments. If the
image is large, and the users spread out over the image, installing shared would
not help much unless the user working sets are large enough to cause overlap.

To clear up one last item, there are cases where 'data' program sections can 
be shared between programs that are installed. Usually this is by design, and
not a bug. Languages higher then MACRO USUALLY insure that your programs will
not have problems with shared program sections. It is up to the coder when 
using MACRO to eliminate this problem. A good reading of the LINKER manual
chapter on program sections is in order for anyone wanting further information.

Paul D. Clayton - Manager Of Systems
TSO Financial - Horsham, Pa. USA
Address - CLAYTON%XRT@CIS.UPENN.EDU