Browse Prior Art Database

Address Space Partitioning Using "Address Submaps"

IP.com Disclosure Number: IPCOM000113406D
Original Publication Date: 1994-Aug-01
Included in the Prior Art Database: 2005-Mar-27
Document File: 2 page(s) / 70K

Publishing Venue

IBM

Related People

Arendt, JW: AUTHOR [+4]

Abstract

A very powerful construct in modern operating systems is to allow several applications to share a single copy of library routines. This provides both space and time efficiencies. Space efficiency because there is only one copy of the library text and shared data and also only one copy that needs to be saved in paging space on a hard disk. Time efficiency because only one copy has to be loaded from disk. In addition to library routines, there are several other examples such as file systems and user level device drivers. For simplicity, only shared libraries will be discussed here as the other examples are very similar to the shared library case.

This text was extracted from an ASCII text file.
This is the abbreviated version, containing approximately 52% of the total text.

Address Space Partitioning Using "Address Submaps"

      A very powerful construct in modern operating systems is to
allow several applications to share a single copy of library
routines.  This provides both space and time efficiencies.  Space
efficiency because there is only one copy of the library text and
shared data and also only one copy that needs to be saved in paging
space on a hard disk.  Time efficiency because only one copy has to
be loaded from disk.  In addition to library routines, there are
several other examples such as file systems and user level device
drivers.  For simplicity, only shared libraries will be discussed
here as the other examples are very similar to the shared library
case.

      On several hardware platforms, the location of the library
routines' text and data portions must occur at the same virtual
memory addresses.  This is caused by hardware instruction sets that
include the virtual address of operands as an integral portion of
instructions, as opposed to position independant code.  To further
complicate the situation, an application loader can not be sure
exactly which libraries will be used since libraries can be
dynamically loaded and unloaded by applications.  The only solution
is to reserve a larger portion of each application's virtual memory
space that is apportioned out to libraries as required.  In the OS/2*
monolithic kernel the library semantics are bound into the kernel --
a method that is not portable to either new platforms or different
operating system personalities.

      Mach further adds a complication.  A basic concept of Mach is
out-of-line memory.  This is memory that is passed from the mach
kernel or another application into a target application.  The Mach
kernel determines where this memory appears in the...