Method for managing pages of a designated memory object...

Electrical computers and digital processing systems: memory – Address formation – Address mapping

Reexamination Certificate

Rate now

  [ 0.00 ] – not rated yet Voters 0   Comments 0

Details

C711S206000, C711S208000

Reexamination Certificate

active

06804766

ABSTRACT:

BACKGROUND OF THE INVENTION
BACKGROUND INFORMATION
The present invention relates to managing physical memory in a virtual memory computer.
A virtual memory system automatically moves a program's data back and forth between slower, lower-cost secondary memory and faster, higher-cost, primary memory, so that the program's more-referenced data tend to reside in a faster memory, and less-referenced data tend to reside in the slower memory. A program's data are divided into fixed-size blocks, called “pages.” More-referenced pages are kept in primary storage. As references to the page become less frequent, the less-referenced page is moved to secondary storage. In a computer with a virtual memory system, programs reference data by virtual address. Address translation hardware translates program-visible virtual addresses to physical addresses a physical address is the address in primary memory at which the data actually reside.
The translation from virtual addresses to physical addresses is called the “mapping,” and is described by a “page table,” a table that associates pages of virtual addresses to pages of physical addresses. The page table is itself divided into pages. The pages of the page table are typically arranged as a tree, with a base pointer forming the root at the top of the tree, higher-level nodes in the tree indicating the mapping at coarser levels and lower-level nodes in the tree indicating the mapping at finer levels. The memory pages actually read, written, and executed by programs form the leaf nodes at the bottom of this tree.
Virtual memory systems and multi-level address translation are described in “Structured Computer Organization,” second edition, by Andrew S. Tanenbaum, Prentice-Hall, 1984; “VAXNMS Internals and Data Structures,” by Lawrence J. Kenah and Simon F. Bate, Digital Press, 1984; “OpenVMS AXP Internals and Data Structures, Version 1.5” by R. Goldenberg ad S. Saravanan, Digital Press, 1994; “Extending OpenVMS for 64-bit Addressable Virtual Memory,” Digital Technical Journal vol 8 no.2 (1996), and “Alpha AXP Architecture Reference Manual,” second edition, by Richard L. Sites and Richard T. Witek, Digital Press, 1995, each incorporated herein by reference.
It is known to provide shared memory among multiple processes executing on a computer. In a typical implementation, two processes agree on the physical page number in which the shared data are stored, and the page tables of the two processes are each set to point to that agreed physical page.
SUMMARY OF THE INVENTION
In general, in a first aspect, the invention features a method for use in a computer. A user of the computer stores a selection in a permanent memory structure, indicating a memory object and one of at least two memory management policies for the designated memory object. Physical pages of the designated memory object are managed according to the stored selection.
Embodiments of the invention may include one or more of the following features. The designated memory object may be a page of a memory object simultaneously shared by two processes. The selected policy may specify whether pages of the designated object are to be reserved, or to be faulted on demand. The selected policy may specify whether pages of the designated memory object are to be locked into physical memory of the computer, or to be demand paged from a fluid page pool. The selected policy may specify whether the allocated pages are to be zeroed; pages to be zeroed maybe zeroed during the system idle loop. The selected policy may specify the number of levels of page table pages for the designated memory object to be shared. The selected policy may specify that the designated memory object may be, to be allocated in contiguous pages of physical memory. The designated memory object may be a page table page describing a virtual-to-physical address mapping for memory references to a program-accessible page. Page tables may be constructed at the time of memory allocation. The policy selection and an allocation size explicitly stored in the permanent memory structure may refer to management of the program-accessible page, while a size of an allocation embracing the page table page may be inferentially computed from the stored size for the program-accessible allocation. The designated memory object may be a shared page table page for a memory object simultaneously mapped by two processes.
In a second aspect, the invention features a method for operation of a computer. From among the memory managed by a virtual memory manager, a pool of physical memory is designated as non-pageable. Memory from the designated pool is mapped in response to a request from a non-privileged program.
Some embodiments may feature one or more of the following. A symbolic name may be assigned to the designated pool, and processes may request memory from the pool by referring to the symbolic name. During execution of an operating system of the computer, the designated pool may be freed to the system fluid page pool. Memory may be allocated for page tables of the program-accessible pages in response the request. An operating system may enforce a privilege right to allocate memory from the designated pool, and allow a non-privileged program to attach to the allocated memory. Memory may be allocated from a fluid page pool if an allocation request from the designated pool exceeds the remaining contents of the designated pool.
Specific embodiments of the invention may offer one or more of the following advantages.
Performance of Very Large Memory (VLM) systems (computer systems with over 4 GB of main memory, requiring more than 32 bits of addressing) is improved. VLM applications typically consume large amounts of physical memory in an attempt to minimize disk input/output (I/O) and enhance overall application performance. A VLM system allows large amounts of data to remain resident in main memory, thereby reducing the time required to access that data. For example, database cache designers implement large-scale caches on VLM systems to improve the access times for database records. Similarly, VLM database applications support more server processes. The combination of large in-memory caches and increased number of server processes significantly reduces the overall time database clients wait to receive the data requested.
Users of VLM systems can memory map very large shared memory objects (gigabytes in size) that use a multi-level shared page table structure to create and access the shared memory with a single handle. Users are not required to make major changes to their applications to take advantage of the invention. Instead, the original shared memory object handle name encoded in the application can be used to create and access shared memory that will exhibit better physical memory and CPU utilization characteristics. VLM objects exhibit the same basic characteristics (from the programmer's perspective) as other virtual memory objects created with conventional service programming interfaces. Implementations may choose not to charge the shared memory object or its page tables against a users page quota, reducing the risk of un-anticipated exhaustion of a working set or pagefile quota. Program start-up times are reduced. The time required for multiple users to map the same object is reduced. The improved management of memory improves performance when multiple VLM applications are run on a single system.
Shared memory objects with shared page tables exhibit better physical memory and central processing unit (CPU) utilization since the page table structure that maps the shared memory is also shared among the processes that wish to access the shared memory. Significant processor time is saved in creating and deleting virtual address mappings to those shared memory objects. Contention is reduced for the locks serializing access to memory management data structures. There is a savings in physical memory required for the process private page tables that map a shared memory object for each process mapping the object. More concurrent users may

LandOfFree

Say what you really think

Search LandOfFree.com for the USA inventors and patents. Rate them and share your experience with other people.

Rating

Method for managing pages of a designated memory object... does not yet have a rating. At this time, there are no reviews or comments for this patent.

If you have personal experience with Method for managing pages of a designated memory object..., we encourage you to share that experience with our LandOfFree.com community. Your opinion is very important and Method for managing pages of a designated memory object... will most certainly appreciate the feedback.

Rate now

     

Profile ID: LFUS-PAI-O-3267972

  Search
All data on this website is collected from public sources. Our data reflects the most accurate information available at the time of publication.