Re: Another question about Global Pages

Jack,

global pages are an OpenVMS memory management construct to allow several processes to share parts of their virtual address space.

If a process references a global page, which is not yet in physical memory, it has to be loaded into memory from it's backing store (global page fault). If another process then accesses the same global page, it just has to be made valid in his workingset (global valid fault). Using global pages saves physical memory and pagefault IOs.

Note that there could also be global pages physically locked into memory (memory resident global sections - see the SYSMAN RESERVED_MEMORY commands or the $CRMPSC_GDZRO_64 system service).

Re: Another question about Global Pages

Jack,

Process private and global pages are essentially differ in scope, not concept. Process private pages are private to an individual process, global pages are available to multiple processes. These differing classes of pages appear in different areas of your process' address space (see the "OpenVMS Programming Concepts Manual", available in PDF and HTML from the OpenVMS www site at http://www.hp.com/go/openvms; there is also a good description of the issues surrounding global sections in various chapters of the Internals and Data Structures books -- the general concepts have not changed extensively in a VERY long time).

With either process-private or global pages, you can (and I can argue, should) have more virtual memory than real memory in most cases. This is the reason for the advent of virtual memory about 40 years ago. In short, much of the program and data used by a program is not used often, if ever. Before the advent of virtual memory, and on machines not supporting virtual memory, program controlled overlaying (of code and data) was used to fit applications into machines. It was a grueling process. Virtual memory removes that laborious process to the operating system. When information is needed, it is paged in. When information has not been used for an extended time, the "page" containing the information (if it is writeable) is written to the temporary backing store (aka, the page file) and the memory is recycled. Generally speaking, this is an efficient process, and not a problem. When paging becomes excessive, this leads to a performance problem referred to as "thrashing". There is a wealth of pre-VMS literature on the issues surrounding paging, in journals such as those published by the ACM (www.acm.org) and IEEE (www.ieee.org). There are also some classic books covering the origins of paging, including that by Bell and Sieworiek (my apologies to Dan Sieworiek if I have mis-spelled his name, I don't have the book handy).

The amount of virtual memory to real memory is referred to (appropriately enough) the virtual to real ratio. The suitability of a specific virtual to real ratio is workload dependant. 2:1 is not a particularly high ratio for a timesharing workload.