Browse Prior Art Database

Algorithm for Determining the Functional Description of an OS/2 2.0 Memory Object

IP.com Disclosure Number: IPCOM000108209D
Original Publication Date: 1992-May-01
Included in the Prior Art Database: 2005-Mar-22
Document File: 4 page(s) / 141K

Publishing Venue

IBM

Related People

DeWitt, JE: AUTHOR [+3]

Abstract

Disclosed is an algorithm for determining the "description" of an OS/2* 2.0 Memory Object and the display in a predetermined format which makes it easier for a user to quickly grasp the information.

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

Algorithm for Determining the Functional Description of an OS/2 2.0 Memory Object

       Disclosed is an algorithm for determining the
"description" of an OS/2* 2.0 Memory Object and the display in a
predetermined format which makes it easier for a user to quickly
grasp the information.

      In OS/2 2.0 before this method, each of OS/2 Memory Manager's
control blocks had to be dumped individually, using either Kernel
Debug or ASDT (both are full screen, character mode hex debuggers
which show one item at a time). This required a great deal of
knowledge on the user's part to determine what the control blocks are
and what information in the control blocks was necessary for the task
at hand.

      Definition of terms used below:
      Arena          An Arena is a doubly linked circular chain of
Arena Records which maps a linear address space.  Each Process has a
Private Arena which maps the linear address space that is unique to
that Process.  That is, this memory holds the Process' static (from
the .EXE file) and dynamic (allocated via DosAllocSeg) private
memory.  The Shared Arena maps the space which holds shared DLL
objects and DosAllocSharedMem objects.  The System Arena maps the
space which belongs to the OS/2 kernel.
      Arena Record   There is an Arena Record for each Memory Object
in the system which has linear address space allocated to it.
      Context Record There is a Context Record for each Process which
can access a Memory Object in the Shared Arena.
      hco            Handle of a Context Record.
      hmte           Handle of an MTE (Module Table Entry).
      Memory Object  Memory Objects are the logical allocation units
of memory.  Applications allocate Memory Objects via DosAllocMem or
DosAllocSharedMem.
      MTE            Module Table Entry.  An in-memory description of
a module.
      Object Record  There is an Object Record for each Memory Object
in the system.  Most Objects are real objects and have Arena Records
associated with them.  The associated Arena Record contains the
linear address.
      owner          All memory allocated in OS/2 is assigned to an
owner.  For system memory, that owner is a hex value, starting with
hex FF.  Each "sub-system" in the OS/2 kernel has one or more unique
values which it uses to keep track of the memory it has allocated.
For private memory, the owner is the Object Record pointer of a PTDA
or MTE.  For shared memory, the owner may be either a system owner
value, Object Record pointer of a PTDA, or Object Record pointer of
an MTE.  The owner value is in the Object Record.
      Page Directory The first-level address translation table used
by the hardware to map a linear address to a physical address.  The
entries point to Page Tables.
      Page Table     The second-level address translation table used
by the hardware to map a linear addres...