DOS memory, sometimes referred to as conventional memory, refers to the memory -addressing scheme used in the original IBM and compatible PCs. These came with only one operating system , Disk Operating System , and this operating system had to be designed to work with the PC's microprocessor , the Intel 8088. Because of 8088 engineering limitations, storage or memory addresses were limited to a maximum of one megabyte . (Later, of course, PC's came with 2, 4, 8, and today's common 16 and 32 megabytes of RAM.) At the time, however, one megabyte was considered a rather large amount of memory to be able to access.
A certain amount of the random access memory was reserved as a place to load in the basic input/output system or initializing program, another space was reserved for buffer areas for display data, and another space for interrupt data, and so forth. The remaining 640 kilobyte s of memory could be used by the DOS operating system (which was relatively small) and application programs.
The reason that all of this is not academic is that, as new microprocessors and operating systems have been developed, many older programs written with the original memory addressing limitations need to continue running in the newer systems. This means that the newer systems have had to accommodate the older programs so that they can run in the original limited 640 kilobyte contiguous address range. A program that is run with this constraint is described as running in protected mode . (Programs running without this constraint are described as running in protected mode .)
With the successors to the 8088, the 80286 and 80386 microprocessors, available memory increased considerably, with up to 15 megabytes possible in a 286 and up to almost 4 gigabyte of RAM possible in a 386. This extra memory above the original one megabyte that DOS was designed to address is called extended memory . Being able to address extended memory means running in protected mode.
In general, DOS applications can only run in real mode since DOS itself requires the memory constraint. However, some programs have been developed called DOS extenders that can be compiled with the application and provide a built-in memory management capability. In order for multiple DOS programs with memory extenders to run concurrently, some common approach was required so that programs could share the extended memory effectively. Several standards developed to manage this sharing: XMS (Extended Memory Specification), VCPI (Virtual Control Program Interface), and DOS Protected Mode Interface (DOS protected mode interface).