The first versions of MS-DOS gave all available memory to the resident application
program, but that proved insufficient because the simple contiguous memory allocation
scheme didn’t allow application programs to dynamically allocate and deallocate
memory blocks. With Version 2.0, MS-DOS began supporting dynamic allocation,
modification, and release of main memory blocks by application programs