Getting more memory - details
Memory problems
Speed
Amount
Adressability (cpu) and availability (ammount).
Limited address range
Early cpu/system design of 8088 (20bit) or IBM360 (24bit).
Overlays
Strictly handled by software.
Program divided into functional modules (functions)
Swaps functional modules in and out of allocated memory as needed.
Different modules stored in same memory address range.
Extended delay during module switching but happens a small percentage
of the time during use of program.
(Similar to Windows DLLs)
Expanded memory (LIM)
Added card with extra memory.
Paged in "pages" into slots in addressable memory.
Slower than directly addressable but faster than hard drive.
Application, OS, and Hardware all had to cooperate.
Early versions available only for data, later allowed programs.
Extended memory - cpu adressable > 1MB.
Newer software uses extended memory - directly addressed memory > 1 Meg.
On systems with enough real memory (> 8088 cpu) and larger address ranges,
virtual 'expanded memory card' using EMM386, QEMM, etc.
However, just because cpu could adress > 1MiB, it did not mean the system
actually had that physical memory installed.
Modern systems capable of address a large address space > 4Gig.
Most systems either do not have the bus support
or
Cost prohibitive to fully populate.
Virtual memory - a way of using secondary storage (hard drive) to act
as the additional memory needed to populate the full address range.