home *** CD-ROM | disk | FTP | other *** search
- Path: sparky!uunet!opl.com!hri.com!spool.mu.edu!howland.reston.ans.net!usc!sdd.hp.com!decwrl!pa.dec.com!engage.pko.dec.com!e2big.mko.dec.com!adserv.enet.dec.com!winalski
- From: winalski@adserv.enet.dec.com (Paul S. Winalski)
- Newsgroups: comp.os.vms
- Subject: Re: Image activations, page faults and disk I/O
- Message-ID: <1993Jan27.222442.10344@e2big.mko.dec.com>
- Date: 27 Jan 93 22:24:42 GMT
- References: <1993Jan26.155208.131143@mswe.dnet.ms.philips.nl>
- Sender: usenet@e2big.mko.dec.com (Mr. USENET)
- Reply-To: winalski@adserv.enet.dec.com (Paul S. Winalski)
- Organization: Digital Equipment Corporation, Nashua NH
- Lines: 42
-
-
- In article <1993Jan26.155208.131143@mswe.dnet.ms.philips.nl>,
- hdavids@mswe.dnet.ms.philips.nl (Henk Davids) asks about the design rationale
- behind VMS image activation, in particular, why successive activations of the
- same image are not faster than the first, and other such optimizations.
-
- The main reason is conservation of physical memory. The minimum memory
- configuration available for the first VAX-11/780s was 256K. VMS V1 was
- designed to run in that configuration. Keeping track of which image that
- a page on the free list belonged to requires additional non-paged data
- structures. Non-paged pool was a precious commodity on 256K VAX systems.
- Furthermore, the odds are that on such a system the memory would almost
- immediately be scarfed up into another process's working set, so you won't
- be able to scavenge those pages, anyway. This is also why VMS doesn't share
- read-only portions of an image by default, but rather requires that you
- INSTALL the image first--known image entries consume nonpageable memory, and
- in small memory configurations, you're better off not eating up the physical
- memory just on the off chance that another user will simultaneously run the
- same program. Cases where the is a payback can be handled by the INSTALL
- command.
-
- There is an unsupported hack that you can do to speed up image activation.
- You write a program that does the following:
-
- 1) for each image in a list of images you wish to "turbo-charge":
- 2) call the $IMGACT service to activate the image
- 3) touch each page in the image to fault it into the working set
- 4) when all images have been processed, hibernate
-
- Install all of the images in the list /SHARE. Then run the above program in
- a process with sufficiently large working set limits to hold all of the images
- in physical memory, and with working set adjustment and swapping turned off.
-
- This will insure that all of the global pages of the images are always
- resident in physical memory, thus, there will be no need to fault them in off
- disk when the image is activated and run. In situations where the same small
- set of images is run repeatedly, this can result in vastly improved performance.
-
- Of course, this only works on systems where you can afford to have the
- physical memory tied down like this.
-
- --PSW
-