

Virtual memory is a memory management technique used by operating systems to provide an application with more logical memory than what is physically available in the system. It gives headway for logical memory and allows for efficient and safe use of memory, enabling multitasking and the execution of large programs. It also prevents you from hitting bottlenecks with the main memory(RAM) of your system. Because processes vary
in size, if the processor switches among a number of processes it is difficult to pack them compactly into main memory. Here’s a detailed explanation of virtual memory:
Virtual Address Space: Each process is given its own virtual address space, which is a contiguous range of addresses. This space is divided into chunks called pages. Whereas physical address space refers to the actual RAM installed in the system.
Pages: The virtual address space is divided into fixed-size blocks called pages. The physical memory is divided into blocks of the same size as pages, called page frames. A program references a word by means of a virtual address consisting of a page number and an offset within the page.
Each page of a process may be located anywhere in main memory. The paging system provides for a dynamic mapping between the virtual address used in the program and a real address, or a physical address, in the main memory. Each process has a page table that maps virtual addresses to physical addresses. This table keeps track of which virtual page is stored in the hard drive.
All the pages of a process are maintained on the hard drive. When a process is executing, some of its pages are in main memory. If reference is made to a page that is not in main memory, the memory management hardware detects this and arranges for the missing page to be loaded. An example of this would be that when you are in a game, the game will obviously not load in every single asset or map in the game, it will only load the maps you are playing on and the assets which are either in your immediate vicinity or assets that are visible on screen.
A designated area on a storage device (like a hard drive or SSD) is used to extend physical memory via virtual memory. Pages that are not actively used can be moved to swap space to free up RAM. Typically virtual memory should only be 3 times the size of the main memory at its maximum.