Virtual memory allows programs to exceed physical memory limits by treating secondary storage as additional "virtual" memory. When a program accesses a memory page not in RAM, a page fault occurs and the OS loads the required page from disk. This demand paging loads only pages used, improving CPU and memory utilization over loading the entire program at once. Hardware support for virtual memory includes page tables to track valid/invalid pages and secondary storage to hold pages not currently in memory.