DOS Extenders

written by: Emilian Frankard; article published: year 2010, month 05;

In: Root » Computers and technology » Microsoft OS family

  Share  
|
  PL  |  NL  |  FR  |  ES  |  PT  |  IT  |  DE  |  DK  |  NO  |  SE  |  FI  |  GR  |  JP  |  CN  |  KR  |  RU  |  AE


A few powerful DOS programs broke the normal DOS rules and were able to leap into protected mode and take advantage of its vast addressing range. They are able to stretch into extended memory using DOS extenders, software toolkits comprising pre-coded memory management routines, that become embedded in the application itself. When a program is written using a DOS extender, it gets its own built-in memory manager. (You never see the DOS extender; you can only appreciate its results.)

DOS extenders work by loading a program through DOS in real mode, then switching program control to protected mode. The DOS extender then provides all services normally given by DOS (because DOS can only operate in real mode). When an application in protected mode needs to step back for a function normally provided by DOS in real mode, the extender translates virtual protected-mode addresses into physical addresses, copies necessary data from extended memory into conventional memory, and switches back to real mode to carry out the function. When the real-mode function completes, the extender reverses the process and switches back to protected mode.

DOS extenders proved to be a temporary solution of the last generation of computers. The acceptance of protected mode operating systems has made DOS extenders superfluous if not obsolete. Most applications that use DOS extenders typically have "386" in their names-for example Paradox 386 or AutoCAD 386-indicating they are part of the 386 generation, and they have disappeared from the market-out of place in a world dominated by Intel's Pentium. Moreover, programs specifically written to use OS/2 or Windows have access to extended memory without the need for a built-in DOS extender. (Of course, programs written for OS/2 or Windows are not DOS applications but OS/2 or Windows applications).

The larger expanses of extended memory add greater potential for program problems. With multiple megabytes out there for the taking, you can be tempted to run several extended DOS programs or operating systems, that each have a built-in memory manager, at the same time. Because DOS does not control how programs interact in extended memory, two programs in extended memory could potentially run into conflicts if both try to use the same block of RAM.

To prevent such conflicts, software writers developed several methods for allocating extended memory among programs. The most primitive way is for a program that uses extended memory to reserve the blocks of extended memory it needs. Each extended memory program steals its own chunk of memory and that's that. The big problem is that programs only make this allocation when they load, so it cannot change with the program's needs. Should an application need multiple megabytes for only one little-used task, it would have to reserve all those megabytes when it starts, depriving all other programs of access to that memory.

Three standards have developed for extended memory managers to allow extended memory programs to work together: Extended Memory Specification, Virtual Control Program Interface, and DOS Protected Mode Interface.

Share

Disclaimer

1) E-articles is not responsible for the information contained by this article as well for any and all copyright infringements by authors and writers. E-articles is a free information resource. If you suspect this article for any copyright infringement, please read the terms of service and contact us or use the "Report this article" button on this page to investigate the problem.
2) E-articles is not responsible for inaccuracies, falsehoods, or any other types of misinformation this article may contain and will not be liable for any loss or damage suffered by a user through the user's reliance on the information gained here.