A CDE Definition
In a virtual memory system, it is the excessive swapping of pages of data between memory and the hard disk, causing the application to respond more slowly. The virtual memory function tracks page usage and keeps often-used pages in memory as much as possible. However, the more applications that are kept open in computers with limited memory, the more thrashing occurs. For an explanation of the paging operation, see virtual memory.
Poor program design may also contribute to thrashing. Good program design dictates that the code for the core processing routines is kept contiguous. If core components are at all ends of the executable package, more thrashing occurs, but once again, when there is not enough memory.
The term may also be used to refer to any situation in which multiple processes are competing for the same resource, and the excessive swapping back and forth between connections causes a slowdown.
Simulating more random access memory (RAM) than actually exists, allowing the computer to run larger programs and multiple programs concurrently. A common function in most every OS and hardware platform, virtual memory uses storage (hard drive or solid state drive) to temporarily hold what was in RAM.
Virtual memory allows multiple programs to load in RAM at the same time. Each application addresses RAM starting at zero, but virtual memory takes control of the RAM addressing and lets each application function as if it had unlimited RAM.
Note that virtual "memory" and virtual "machine" are not the same. Virtual memory is used all the time, whereas a virtual machine is an optional approach for running applications and pertains mostly to servers (see virtual machine).
Virtual Memory Pages
The computer's real memory (RAM) is broken up into smaller segments, called "pages," typically 4KB in size. When RAM fills up, pages not currently in use by open applications are written to storage in a virtual memory "swap file." When any swapped out page in storage is required again, once again a page in RAM is written to storage to make room, and the required page in storage is retrieved.
RAM is the computer's workspace, and since there is often several hundred times more storage space than RAM space, virtual memory dramatically increases the computer's capacity to do work. However, there is a penalty. When a user has too many open programs, there can be excessive amounts of page swapping, causing applications to slow down. In addition, switching between applications is no longer instantaneous (see thrashing).
Hardware Is Required
Virtual memory can be implemented in software only, but efficient operation requires specialized hardware circuits. All modern, general-purpose CPUs have memory management units (MMUs) that support virtual memory. They provide "page tables" that are used to translate between the program's "virtual" addresses and the "real" addresses in RAM and storage, which may change at any time. Although a program may initially load as a contiguous block of code, it can wind up in pages randomly scattered around RAM.
Virtual memory claims are sometimes made for specific applications that bring additional parts of the program in as needed; however, true virtual memory is built into the operating system and hardware and works with all applications. See Windows swap file.
Memory Is Extended to Storage
Page Out, Page In
Before/After Your Search Term
Terms By Topic
Click any of the following categories for a list of fundamental terms.