[WEBINAR] Application Acceleration: Faster Performance for End Users

Virtual Memory (VM)

Definition - What does Virtual Memory (VM) mean?

Virtual memory (VM) is a feature developed for the kernel of an operating system (OS) that simulates additional main memory such as RAM (random access memory) or disc storage. This technique involves the manipulation and management of memory by allowing the loading and execution of larger programs or multiple programs simultaneously. It also allows each program to operate as if it had infinite memory, and is often considered more cost effective than purchasing additional RAM.

Virtual memory permits software to use additional memory by utilizing the hard disc drive (HDD) as temporary storage. Most central processing units (CPUs) provide memory management units (MMUs) that support virtual memory. The MMU supports the “page tables” that are used to transform the “real” and “virtual” addresses located in memory and on the HDD.

An OS that uses virtual memory frees up space by transferring data from the HDD which is not immediately required. When the data is needed, it is copied back to the HDD. When all RAM is being used, VM swaps data to the HDD and then back again. Thus, VM allows a larger total system memory; however, complicated code writing is required.

Techopedia explains Virtual Memory (VM)

In the 1940’s and 1950’s, prior to VM, large programs implemented logic to manage primary and secondary storage. The process was called overlaying. When a program was bigger than memory storage, the procedure allowed parts of the program that were not continuously used to be treated as an overlay. Each individual overlay would overwrite current overlay in memory. The programming for overlaying was extensive. One of the main reasons for creating VM was not for additional primary memory but for ease of programming. By 1969 the effectiveness of virtual memory was realized; and it became widely implemented.

VM literally attempts to use more RAM, or disc storage memory, than actually exists. This process allows the CPU to handle larger and multiple programs simultaneously. VM is an ordinary operating system (OS) and hardware program that utilizes an HDD by temporally storing and controlling memory. The process of manipulating and managing memory allows each application to function as if it had nearly infinite memory. The temporary memory storage is managed by a memory management unit (MMU), also known as a “paged memory management unit” (PMMU).

“Real” memory is divided into small sections called “pages.” The pages are generally 4 kilobytes in size. When all RAM or disc memory is used, any page not used is written to virtual memory in what is called a swap file. When the swap file is needed, it is then translated back to “real” memory, a process called page swapping.

One of the few drawbacks of using VM is that there can be excessive page swapping, especially if a user has numerous open applications. This can cause programs to drastically slow down as the CPU spends much time writing to the HDD. The significant reduction in performance is called thrashing.

Techopedia Deals

Connect with us

Techopedia on Linkedin
Techopedia on Linkedin
"Techopedia" on Twitter

Sign up for Techopedia's Free Newsletter!

Email Newsletter

Join thousands of others with our weekly newsletter

Free Whitepaper: The Path to Hybrid Cloud
Free Whitepaper: The Path to Hybrid Cloud:
The Path to Hybrid Cloud: Intelligent Bursting To Amazon Web Services & Microsoft Azure
Free E-Book: Public Cloud Guide
Free E-Book: Public Cloud Guide:
This white paper is for leaders of Operations, Engineering, or Infrastructure teams who are creating or executing an IT roadmap.
Free Tool: Virtual Health Monitor
Free Tool: Virtual Health Monitor:
Virtual Health Monitor is a free virtualization monitoring and reporting tool for VMware, Hyper-V, RHEV, and XenServer environments.
Free 30 Day Trial – Turbonomic
Free 30 Day Trial – Turbonomic:
Turbonomic delivers an autonomic platform where virtual and cloud environments self-manage in real-time to assure application performance.