Answer: A
Correct answer: The operating system handles it automatically, without the programmer designing it
The decisive advantage of virtual memory over overlays is that the operating system does the work. The programmer writes as though memory were unlimited, and paging brings in what is referenced and evicts what is not. Overlays required the programmer to divide the program by hand into parts never needed simultaneously, arrange the loading explicitly, and keep the resident driver correct. That demanded detailed knowledge of the program’s structure and was a fertile source of bugs, particularly as programs were modified. The other options are wrong in specific ways. Virtual memory requires disk space for the backing store; it does not eliminate page faults but depends on them as its ordinary mechanism; and it does not change the size of a program on disk at all. It does have costs - translation overhead, memory for page tables, and the risk of thrashing - but the removal of a manual burden from the programmer is what made it universal. Overlays survive only in small embedded systems without memory management hardware.