A+ Certification / Beginners

Managing Memory

If you are lucky enough never to have created a boot disk for your computer, then you have never had to get into the down-and-dirty world of memory management. When you are attempting to load device drivers and applications in the MS-DOS environment, you have a very limited amount of the memory to work with - 640KB - and if you are not careful, you can quickly run out of space; so you need to manage what and how device drivers and applications get loaded into memory. If you have to support MS-DOS-based applications within the Windows environment, or if you need to create custom boot disks that will load your network drivers, you need to pay attention to this section. Memory management skills are becoming a lost art in the world of Windows.

Conventional memory

When MS-DOS was first developed, the world was just starting to imagine that computers would actually have 1MB of memory. The first IBM PC released in 1981 shipped with only 320K of memory. Within 18 months of its release, the IBM PC was followed up by a new version of MS-DOS and an unheard of 1MB of memory. It was seriously believed (shortsightedly) that computers would not progress beyond the 1MB mark in the near future. A decision was made early on to slice this 1MB pie into a couple of pieces. This slice cut out the first 640K of memory and called it conventional memory.

Conventional memory was "conventional" because it was the place where normal applications would run. All applications run in the conventional memory space. Many TSRs and drivers also load into this space, each taking a piece of the space away from other applications. Because a finite amount of memory is available in this 640K area, care has to be taken to load the required drivers while leaving space for applications to run. Even with Windows 9x, conventional memory will still have an effect on you, until you launch the win.com and vmm32 changes the memory model that is being used. The rest of the memory below the 1MB mark was to be used for loading device drivers and supporting different levels of video displays.

[Previous] [Contents] [Next]