Paging Within a Process

The OpenVMS paging scheme attempts to force processes to page against themselves. Put another way, if one particular process is memory-hungry and causes a large number of page faults, the unavoidable performance degradation should come at the expense of that process, not of other processes.

OpenVMS attempts to achieve this goal by setting a limit upon the working set size of a process. The paging behavior of a process (whether it causes few or many page faults) causes automatic adjustment of the working set size within predetermined limits (discussed later).

Note 

The term working set size refers to the number of entries in the process working set list. Not all entries may be in use at a particular time. Therefore, the number of pages actually in use may be less than the size of the working set. The term size is used to avoid confusion with limit, which is the number to which a size can grow.

If a process generates a page fault, the system adds a page to the process working set to hold the additional page if an entry is available. If no entry is available, OpenVMS may try to expand the process working set size, as described below.

When a process generates a page fault, but cannot add a page to its working set, one of the process's own pages must be removed from its working set to make room for the new page. Certain pages that have not been modified can simply be discarded; they can be loaded again from the same source as before. Other pages may have been modified and therefore have no backing store from which they can be recreated. The system must make arrangements for modified pages to be saved in a pagefile.

If the process generates page faults at a fast rate—greater than a limit called page fault rate high limit (PFRATH)—the size of its working set is automatically adjusted upward, within limits. If the rate of page faults is very slow—lower than page fault rate low limit (PFRATL)—its working set size may be reduced, but many system managers disable this downward adjustment. In this case, pages are removed as the result of program termination or explicit requests from within programs. The system manager may adjust each of these thresholds.

Depending on system conditions, the size to which a working set can grow can be one of two limits. At the start of a program, the number of working set entries is set to a relatively small size called working set default(WSDEF). As the program executes, its page fault rate may exceed the threshold value. If the page fault rate stays high, the working set will grow to a limit called working set quota (WSQUOTA).

This limit prevents a process from unnecessarily degrading the performance of other processes by consuming too much physical memory. However, if the system has ample free memory, a process is allowed to grow even further. If a certain number of pages is available on the free page list, a process may grow beyond WSQUOTA to a final limit called working set extent(WSEXTENT). Just as WSQUOTA keeps one process from interfering with others, WSEXTENT keeps a process from being artificially constrained when resources are available.



Getting Started with OpenVMS(c) A Guide for New Users
Getting Started with OpenVMS: A Guide for New Users (HP Technologies)
ISBN: 1555582796
EAN: 2147483647
Year: 2005
Pages: 215

flylib.com © 2008-2017.
If you may any questions please contact us: flylib@qtcs.net