Virtual Memory

Page Files and Memory Technology

What is Virtual Memory?

In computing, virtual memory is a memory management technique that is implemented using both hardware and software.

  • It maps memory addresses used by a program, called virtual addresses, into physical addresses in computer memory.
  • Main storage as seen by a process or task appears as a contiguous address space or collection of contiguous segments.
  • The operating system manages virtual address spaces and the assignment of real memory to virtual memory.
  • Address translation hardware in the CPU, often referred to as a memory management unit or MMU, automatically translates virtual addresses to physical addresses.
  • Software within the operating system may extend these capabilities to provide a virtual address space that can exceed the capacity of real memory and thus reference more memory than is physically present in the computer.

Sometimes it feels like everything on your PC has slowed to a crawl. Your applications take a long time to open, files save slowly, and web pages take ages to load. Then, just as your frustration is reaching its apex, you get an error message: Your system is running low on virtual memory.

If the computer has to make a lot of transfers this will slow down the computer quite significantly. Also, if the computer has a relatively small main memory it means that it is not possible to run more than a limited number of programs at the same time or run programs that require lots of data, for example high definition graphics or moving images.

What is the Page File?`

In computer operating systems, paging is one of the memory-management schemes by which a computer can store and retrieve data from secondary storage for use in main memory.

  • In the paging memory-management scheme, the operating system retrieves data from secondary storage in same-size blocks called pages.
  • The main advantage of paging over memory segmentation is that it allows the physical address space of a process to be noncontiguous.
  • Before paging came into use, systems had to fit whole programs into storage contiguously, which caused various storage and fragmentation problems.
  • Paging is an important part of virtual memory implementation in most contemporary general-purpose operating systems, allowing them to use disk storage for data that does not fit into physical random-access memory (RAM).

What are the Benefits and Drawbacks?

Virtual memory can be stored in RAM, but it can be swapped out to disk when another process needs the physical RAM. This is one of the significant features. Once it is on disk, other processes can use the system RAM to speed their processing.

When needed, the memory swapped to disk can be reloaded and something else moved their in its place.

Many of today's computers have more RAM than they need so swapping is minimized (it can hurt performance), but it is good to have the swap option when needed.

Virtual memory also has its drawbacks. Since the data is stored on the hard disk instead of in physical memory, the time it takes to access this data is slightly longer. As a result, the computer can be a bit slow when much virtual memory is in use. Additionally, when a lot of data is in use at one time, virtual memory files can grow somewhat large, leaving little free space for users with small hard disks.

Memory Technology leads to innovate computer designs?

The past couple of years have brought breakthroughs in these new memory technologies that could lead to boosts in performance and endurance far beyond the current state of the art.

IBM Research, for instance, turned heads over the summer with its announcement that thermal-based PCM might one day enable systems to retrieve data 100 times faster than NAND flash and to endure at least 10 million write cycles, an exponential improvement over the 30,000 write cycles of enterprise multi-level cell (eMLC) flash.