This article gives broad information of “Virtual Memory” of operating system. The concept of Virtual Memory is the separation of user logical memory from physical memory and it is commonly implementation by demand paging. In this way a very large virtual memory can be provided for programmers on a smaller physical memory. Because of virtual memory the programming task becomes easy. The large amount physical memory gets available to the user. One case of virtual memory has been virtual disappearance of overlay.
Virtual memory can be implemented in one system called as segmentation system. Demand segmentation system can be used to provide virtual memory. Computer system have used demand segmentation. However, segment replacement concepts are more complex than page replacement algorithm because of the variable size, nature of segments. The major advantages of this system is that programmer can be larger than physical memory. The virtual memory abstracts main memory into in extremely large; uniform array of storage separating logical memory as viewed by the user from the physical memory.
It also allows a process to easily share files and address space and it provide an efficient mechanism for process creation. Though the actual work of swapping was problem in and out was done by the system, then how to split the program into pieces had to done by the programmer. The basic concept behind the virtual memory is that the combined size of the program, data, and stack may exceed memory the amount of physical memory available for it. The system keeps those parts of the program simultaneously in use in main memory or random access memory and the remaining part on disk.
Consider the example a 512 MB program can run on 256 MB machine by cautiously choosing which 256 MB to keep in memory at each instance, with pieces of the program begin changed between disk. That means storage devices and main memory as needed. In case of multiprogramming the Virtual memory is applicable, with bits and pieces of many programs in memory at the same time, In short when a program is waiting for its parts to get in, it is waiting for I/O and cannot run so the CPU can be given to another process the same thing can happen as in any other multiprogramming system.
In short splitting up large program into small modular pieces was time consuming .It did not take long time before someone though of a way to turn the whole job over to the computer. The sample method for this is “ Virtual Memory ”. Most virtual memory system uses a technique and that technique is called as paging, which we will now describe. On any system, there exit a set of memory address that programs can produce. Theses program generated address called virtual address and from the virtual address space. On computer system virtual memory concepts put the virtual address directly onto the memory bus and causes the physical memory word with the same address to be read or written.