The computer system technique that provides application programs the effect of contiguous working memory uses virtual memory.
But this effect actually can be either fragmented or may result in overflowing in the disk storage. Hence, systems that utilize virtual provide programmers an easy technique in programming large application systems wherein the use of physical memory like RAM bring about more efficient use of memory compared to a computer system that doesn’t use memory virtualization.
Virtual memory techniques like extending memory offers method like overlays or swapping programs making the data completely out of the disk while they are not being used. To simplify things, virtual memory is derived from the idea of deceiving the programs to show them that contiguous addresses are being used as large blocks.
Word processors, spreadsheets, multimedia players, accounting, and other ordinary applications utilize operating systems which also use virtual memory. As an addition, this technique is used by all modern general-purpose computer operating systems and there are a number of virtual memory implementation techniques like paged virtual memory and segmented virtual memory.
On the other hand, memory virtualization of virtualization of memory is the idea that will make operating system manage and handle the graphics processing unit or GPU in the same way that the operating system directs the main memory and the CPU. The task of the OS is being in charge in context switching, paging in or out texture memory and others.
Memory virtualization is theoretically a very nice idea because OS contains more processes of information and the activities of these processes wherein the CPU and GPU can have time together. However application developers seem to be quiet with this matter yet.