Sharing segments of storage by enabling the sharing of page...

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

C711S147000, C711S148000, C711S220000, C711S221000

Reexamination Certificate

active

06289432

ABSTRACT:

TECHNICAL FIELD
This invention relates, in general, to the sharing of storage and, in particular, to the sharing of a segment of storage among a plurality of users by storing the address of a page table, which corresponds to the segment of storage to be shared, at a plurality of virtual addresses.
BACKGROUND ART
The sharing of storage is an important aspect of many computer systems. Specifically, the ability to selectively control the data areas that are accessible to the units of work within the system is an essential function of an operating system. One operating system that allows a user to share pages of storage between address spaces and/or data spaces of the system is the OS/390 operating system, offered by International Business Machines Corporation. In particular, it is the IARVSERV service of OS/390 that provides this ability. IARVSERV is described in “MVS Programming: Authorized Assembler Services Reference”, Volume 2, Document Number GC28-1765-03, which is hereby incorporated herein by reference in its entirety.
As another example, on UNIX systems, the mechanism used to create a shared memory segment is the shmget function in the C programming language. Servers then use the shmat C function to attach the shared memory to each of the clients. OS/390 UNIX System Services exploits the IARVSERV function to provide the shmget and shmat functions to UNIX applications on OS/390.
The sharing of storage comes at a high price, though. This is due to the fact that extra control structures are needed to keep track of the shared storage, which in turn necessitates the need for additional storage. Further, this high price can become exorbitant, especially when attempting to share large amounts of storage.
For example, the overhead associated with using a service, such as IARVSERV, to share a segment (e.g., 1 megabyte; 256 pages) of storage can be calculated as follows:
X MB*256 pages/MB*(Y+2) connections*32 bytes/page,
where X is the number of megabytes being shared and Y is the number of address spaces connecting to the shared memory segment. The Y+2 accounts for the system overhead in tracking the shared segments. In a large server environment, it is possible to have X=500 Meg and Y represent 500 clients connecting to the server. In this sort of environment, the formula shows:
500 MB*256 pages/MB*(500+2) connections*32 bytes/page=2 Gig
In other words, it would consume 2 gigabytes of real storage to map this 500 Meg of virtual storage for 500 clients.
In addition to the above storage, there is also a need to account for the pages used for the page tables associated with the storage to be shared. Each page table consumes 4 k of real storage (assuming all clients are paged in) for each megabyte of shared memory. Thus, the overhead for the page table is:
X MB*4 Kbytes/MB*(Y+1) connections.
Plugging in 500 Meg for X and 500 for Y for the above example, shows that the page tables will consume an additional 1 gigabyte of real storage. Thus, three additional gigabytes of real storage would be needed in the above example. This need for such an exorbitant amount of additional storage has previously made the sharing of large amounts of storage unrealistic.
Based on the foregoing, a need exists for the ability to share large amounts of storage, without the overhead of additional control structures. Further, a need exists for the ability to share large amounts of storage without incurring exorbitant costs in terms of real storage. Yet further, a need exists for a capability that allows a client address space to attach to the same shared memory multiple times at different virtual addresses without incurring additional overhead.
SUMMARY OF THE INVENTION
The shortcomings of the prior art are overcome and additional advantages are provided through the provision of a method of sharing segments of storage of a computer system. In one embodiment, the method includes, for instance, obtaining, at a first address, a pointer to a page table corresponding to a segment of storage to be shared; and storing the pointer to the page table at a second address. The first address and the second address reference the same page table and therefore, the same segment of storage.
In a further embodiment of the invention, the pointer is stored at a plurality of addresses, such that the plurality of addresses reference the same page table.
In yet a further embodiment of the invention, the first address is located within a first address space and the second address is located within a second address space. In one example, the first and second address spaces are the same address spaces, while in another example, they are different address spaces.
In further embodiments of the invention, the first address and the second address are different virtual addresses, and the pointer is a real address of the page table.
In yet another embodiment of the invention, the method further includes determining the first address and/or the second address. As an example, the determining includes multiplying a given segment index by a length of a segment table entry, and adding that result to a beginning address of the segment table.
In another embodiment of the invention, a method of sharing segments of storage of a computer system is provided. The method includes, for instance, identifying a segment of storage to be shared; locating a source segment table entry corresponding to the segment of storage to be shared; retrieving a pointer to a page table associated with the segment of storage to be shared from the source segment table entry; determining a target segment table entry to receive the pointer; and storing the pointer in the target segment table entry, wherein the pointer to the page table is located within a plurality of segment table entries.
In another aspect of the present invention, a system of sharing segments of storage of a computer environment is provided. In one example, the system includes means for obtaining, at a first address, a pointer to a page table corresponding to a segment of storage to be shared; and means for storing the pointer to the page table at a second address, wherein the first address and the second address reference the same page table, and therefore, the same segment of storage.
In another example of the invention, the system includes means for storing the pointer at a plurality of addresses, wherein the plurality of addresses reference the same page table.
In another aspect of the present invention, a system of sharing segments of storage of a computer environment is provided. The system includes, for instance, means for identifying a segment of storage to be shared; means for locating a source segment table entry corresponding to the segment of storage to be shared; means for retrieving a pointer to a page table associated with the segment of storage to be shared from the source segment table entry; means for determining a target segment table entry to receive the pointer; and means for storing the pointer in the target segment table entry, wherein the pointer to the page table is located within a plurality of segment table entries.
In yet another aspect of the invention, an article of manufacture is provided. The article of manufacture includes at least one computer usable medium having computer readable program code means embodied therein for causing the sharing of segments of storage of a computer system. The computer readable program code means in the article of manufacture includes, for instance, computer readable program code means for causing a computer to obtain, at a first address, a pointer to a page table corresponding to a segment of storage to be shared; and computer readable program code means to cause a computer to store the pointer to the page table at a second address. The first address and the second address reference the same page table, and therefore, the same segment of storage.
In another aspect of the present invention, at least one program storage device readable by a machine tangibly embodying at least one program of instructions executa

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

Sharing segments of storage by enabling the sharing of page... does not yet have a rating. At this time, there are no reviews or comments for this patent.

If you have personal experience with Sharing segments of storage by enabling the sharing of page..., we encourage you to share that experience with our LandOfFree.com community. Your opinion is very important and Sharing segments of storage by enabling the sharing of page... will most certainly appreciate the feedback.

Rate now

     

Profile ID: LFUS-PAI-O-2503632

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