Older generations of computers measured random access memory in kilobytes instead of megabytes or gigabytes. This limited availability of memory made it difficult to run multiple programs simultaneously. A computer overlay allowed a computer to run multiple applications using more RAM than a computer had available. However, these overlays also limited options for programmers.
What is Computer Overlay
An overlay replaces a block of stored instructions on a computer with another set of data. Using an overlay system, a program or segments of a program can load in the same location or space in a computer’s memory. This process divides the program into self-contained object code blocks called overlays. Once the overlay segment completes, another segment can access the same space within the computer’s memory. The overlay handler swaps the old program and replaces it with the next program segment. Since early operating systems used batched systems, only one program could run at the same time as the operating system. A computer overlay allowed multiple programs to run at the same time on these early operating systems.
Some computer systems cannot use virtual memory or may not have sufficient RAM available. In these circumstances, a computer overlay system can facilitate the use of multiple, memory intensive applications on a computer system. A computer overlay also predictably deals with delays relating to loading applications. Virtual memory response time, on the other hand, can cause delays resulting in real-time computer systems missing deadlines.
A primary disadvantage of computer overlay systems is that overlays make it necessary for programmers to consider the size of the entire program. To overcome this obstacle, the programmer must use assemblers to control the size of the program and the overlay. If the programmer is not limited by the amount of memory, he or she will not experience these types of problems. The majority of applications today run on virtual memory platforms enabling programmers to create applications not subject to memory restrictions.
Early generations of computers required overlays because systems did not have enough virtual memory. In virtual memory, the operating system controls the physical memory. When a program requires memory, the operating system must find a physical location. The amount of RAM in early generations of computers rarely exceeded 640 kilobytes because of the cost associated with memory and processors. Today, however, the reduced cost of memory has resulted in the less frequent use of computer overlay systems.