

              NOVELL TECHNICAL INFORMATION DOCUMENT

TITLE:              DPMS: What are the Tradeoffs?
DOCUMENT ID:        014947
DOCUMENT REVISION:  A
DATE:               05MAY94
ALERT STATUS:       Yellow
README FOR:         NA

NOVELL PRODUCT and VERSION:
Novell DOS 7

ABSTRACT:

This documents discusses memory and performance issues of DPMS
and applications that use DPMS.

------------------------------------------------------------------
DISCLAIMER
THE ORIGIN OF THIS INFORMATION MAY BE INTERNAL OR EXTERNAL TO
NOVELL.  NOVELL MAKES EVERY EFFORT WITHIN ITS MEANS TO VERIFY
THIS INFORMATION.  HOWEVER, THE INFORMATION PROVIDED IN THIS
DOCUMENT IS FOR YOUR INFORMATION ONLY.  NOVELL MAKES NO EXPLICIT
OR IMPLIED CLAIMS TO THE VALIDITY OF THIS INFORMATION.
------------------------------------------------------------------

ISSUE

     DPMS: What Are the Tradeoffs?

     Novell, to provide the greatest flexibility possible,
     includes a wide range of tools in Novell DOS 7 for
     configuring and using your system.  It is important to note
     that each of these tools, while providing very important and
     advanced features to your system, has a cost associated with
     it.  For example, tools that can enhance the speed of your
     system will typically cost memory, because these programs
     are usually in the form of memory resident software, such as
     TSRs and device drivers.  On the other hand, tools that
     increase the availability of conventional memory can cost in
     system performance.

     Novell introduced DOS Protected Mode Services (DPMS) with
     Novell DOS 7.  DPMS is a memory management technique in
     which memory resident software can be written to load part
     of their code into the extended memory area, above 1 MB. 
     This technique makes it possible for more conventional and
     upper memory to be available to large applications and other
     memory resident software that must be loaded into the first
     megabyte of memory.

     Any program written for DPMS is responsible to request the
     DPMS "server" to provide the protected mode services it
     requires.  DPMS.EXE is the DPMS server.  It handles the
     allocation of extended memory and keeps track of programs
     that use the extended memory.  The program that uses the
     DPMS informs the server which parts of itself can be loaded
     into extended memory.  When the memory resident software is
     loaded, it "interprets" that it was using DPMS, and
     instructs DPMS.EXE to run the code that was put into the
     extended memory area.  To do this, there must still be at
     least a small portion of code in the conventional or upper
     memory area to perform these requests to the DPMS server. 


     This conventional memory "footprint" is controlled by the
     software.  That is, the memory resident program decides
     which parts of itself can and cannot be loaded into extended
     memory.

     Sometimes there is a decrease in the performance of a
     particular device driver or TSR that uses DPMS versus the
     "non-DPMS" version of the software.  This are two reasons
     for this.  First, to access extended memory, the processor
     must run in Protected Mode.  However, DOS typically operates
     in Real Mode.  So the DPMS server must switch the processor
     in and out of protected mode to run the memory resident
     software that makes use of its services.  Second, the
     footprint of the TSR left in conventional memory is quite
     often loaded into upper memory, assuming there is a large
     enough block of upper memory available for it.  It is
     important to note that access to the upper memory area is
     somewhat slower than running in conventional memory.

     Because of these two reasons, that the processor must be
     constantly switched in and out of protected mode and that
     upper memory can be slower than conventional memory, DPMS
     programs can operate slower than non-DPMS programs would. 
     DPMS is one of the tools provided by Novell DOS for the
     greatest configuration flexibility.  It allows the user to
     choose what is of the most importance on their particular
     system, either system performance or memory management.  It
     is important to note the costs of using any of the tools
     provided with any operating system and to use the tools most
     appropriate for your needs.

----------------------------------------------------------------
Any trademarks referenced in this document are the property of
their respective owners.  Consult your product manuals for
complete trademark information.
----------------------------------------------------------------
