TITLE: DPMS: What are the Tradeoffs? DOCUMENT ID: TID14947 DOCUMENT REVISION: 1 DATE: 05MAY94 ALERT STATUS: Yellow README FOR: NA NOVELL PRODUCT and VERSION: Novell DOS 7 ABSTRACT: NA --------------------------------------------------------------------- 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. ---------------------------------------------------------------------