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