4.3 Memory Management
4.3.4 Memory conflicts
Memory conflicts can be caused by two memory managers running at the same time. For instance, a third party memory manager should never be used with one that is supplied with MS-DOS. There are many diagnostic tools that can be used to diagnose such problems including Microsoft Diagnostics (MSD) utility.

Memory conflict can lead to a condition called General Protection Fault (GPF). A GPF is a carryover from the 16-bit Windows 3.X era, where Win 16 applications are run. A GPF will typically occur when an application attempts to violate the system integrity by one of the following ways:

  • Tries to use a memory address or space owned by another application
  • Tries to interact with a failing hardware driver
  • Tries to have direct access to the system hardware

Other conflicting situations arise when at any moment more than one memory-resident routine (such as TSRs) is attempting to access the same upper memory space (address). A GPF is usually manifested by a stalling (not responding) of the system or the specific application(s) that was running. The use of diagnostic utilities, mentioned earlier, is necessary to allow a diagnosis of these conflicts. If the conflicting applications are found, one way of resolving the problem is to reassign different memory areas by using the various memory management and optimization tools described earlier in this chapter.