From Wikipedia, the free encyclopedia
Virtual memory is a computer system technique which gives an application program the impression that it has contiguous working memory, while in fact may be physically fragmented and may even overflow on to disk storage. Systems that use this technique make programming of large applications easier and use real physical memory (e.g. RAM) more efficiently than those without virtual memory.
Note that "virtual memory" is not just "using disk space to extend physical memory size". Extending memory is a normal consequence of using virtual memory techniques, but can be done by other means such as overlays or swapping programs and their data completely out to disk while they are inactive. The definition of "virtual memory" is based on tricking programs into thinking they are using large blocks of contiguous addresses.
All modern general-purpose computer operating systems use virtual memory techniques for ordinary applications, such as word processors, spreadsheets, multimedia players, accounting, etc. Few older operating systems, such as DOS of the 1980s, or those for the mainframes of the 1960s, had virtual memory functionality – notable exceptions being the Atlas and B5000.
Embedded systems and other special-purpose computer systems which require very fast, very consistent response time do not generally use virtual memory.
more details pls see http://en.wikipedia.org/wiki/Virtual_memory
 See also
- Physical memory and its physical address
- Memory address
- CPU design
- Page (computing)
- Segmentation (memory)
- Memory management
- Memory allocation
- Protected mode, a x86‘s name of virtual memory addressing
- ^ z/OS Basic Skills Information Center: z/OS Concepts.
- ^ The Operational Characteristics of the Processors for the Burroughs B5000. Retrieved on 2007–11-13.
- ^ (January 1968) GE-645 System Manual, pp21-30. Retrieved on 2007–11-13.
- ^ F. J. Corbató, V. A. Vyssotsky. Introduction and Overview of the Multics System. Retrieved on 2007–11-13.
- ^ E. L. Glaser, J. F. Couleur, G. A. Oliver. System Design of a Computer for Time Sharing Applications.
- ^ Bensoussan, A. & Clingen, C. T. (May 1972), "The Multics Virtual Memory: Concepts and Design", Communications of the ACM 15 (5): 308-318, <http://www.multicians.org/multics-vm.html>
- ^ a b c d Denning, Peter (1997). "Before Memory Was Virtual". In the Beginning: Recollections of Software Pioneers.
- ^ Organick, E.I. (1972), The Multics System: An Examination of Its Structure, MIT Press
- ^ http://www.computer50.org/kgill/atlas/atlas.html Atlas design includes virtual memory
- ^ http://web.mac.com/joynerian/iWeb/Ian%20Joyner/Burroughs.html Ian Joyner on Burroughs B5000
- ^ Cragon, Harvey G. (1996), Memory Systems and Pipelined Processors, Jones and Bartlett Publishers, pp. 113, ISBN 0867204745, <http://books.google.com/books?id=q2w3JSFD7l4C>
- John L. Hennessy, David A. Patterson, Computer Architecture, A Quantitative Approach (ISBN 1-55860-724-2)
- Virtual Memory Secrets by Murali
 External links
- Linux Memory Management
- Linux Kernel Mailing List Discussion
- Pointers to virtual memory visualizations
- The Virtual-Memory Manager in Windows NT