You are on page 1of 3

Memory management is the act of managing computer memory.

In its simpler forms,


this involves providing ways to allocate portions of memory to programs at their
request, and freeing it for reuse when no longer needed. The management of main
memory is critical to the computer system.
Virtual memory systems separate the memory addresses used by a process from actu
al physical addresses, allowing separation of processes and increasing the effec
tively available amount of RAM using disk swapping. The quality of the virtual m
emory manager can have a big impact on overall system performance.
Garbage collection is the automated allocation and deallocation of computer memo
ry resources for a program. This is generally implemented at the programming lan
guage level and is in opposition to manual memory management, the explicit alloc
ation and deallocation of computer memory resources. Region-based memory managem
ent is an efficient variant of explicit memory management that can deallocate la
rge groups of objects simultaneously.
Contents [hide]
1 Requirements
1.1 Relocation
1.2 Protection
1.3 Sharing
1.4 Logical organization
1.5 Physical Organization
2 DOS memory managers
3 See also
4 External links

[edit] Requirements
Memory management systems on multi-tasking operating systems usually deal with t
he following issues.
[edit] Relocation
In systems with virtual memory, programs in memory must be able to reside in dif
ferent parts of the memory at different times. This is because when the program
is swapped back into memory after being swapped out for a while it can not alway
s be placed in the same location. The virtual memory management unit must also d
eal with concurrency. Memory management in the operating system should therefore
be able to relocate programs in memory and handle memory references and address
es in the code of the program so that they always point to the right location in
memory.
[edit] Protection
Main article: Memory protection
Processes should not be able to reference the memory for another process without
permission. This is called memory protection, and prevents malicious or malfunc
tioning code in one program from interfering with the operation of other running
programs.
[edit] Sharing
Main article: Shared memory
Even though the memory for different processes is normally protected from each o
ther, different processes sometimes need to be able to share information and the
refore access the same part of memory. Shared memory is one of the fastest techn
iques for Inter-process communication.
[edit] Logical organization
Programs are often organized in modules. Some of these modules could be shared b
etween different programs, some are read only and some contain data that can be
modified. The memory management is responsible for handling this logical organiz
ation that is different from the physical linear address space. One way to arran
ge this organization is segmentation.
[edit] Physical Organization
Memory is usually divided into fast primary storage and slow secondary storage.
Memory management in the operating system handles moving information between the
se two levels of memory.
[edit] DOS memory managers
Main article: Memory manager
In addition to standard memory management, the 640 KB barrier of MS-DOS and comp
atible systems led to the development of programs known as memory managers when
PC main memories started to be routinely larger than 640 KB in the late 1980s (s
ee conventional memory). These move portions of the operating system outside the
ir normal locations in order to increase the amount of conventional or quasi-con
ventional memory available to other applications. Examples are EMM386, which was
part of the standard installation in DOS's later versions, and QEMM. These allo
wed use of memory above the 640 KB barrier, where memory was normally reserved f
or RAMs, and high and upper memory.
[edit] See also
Demand paging
Dynamic memory allocation
Garbage collection
Handle or reference
Memory management unit (MMU)
Page table
Paging
Pointer
Virtual memory
[edit] External links
The Memory Management Reference
Linux Memory Management
Memory Management For System Programmers
Retrieved from "http://en.wikipedia.org/wiki/Memory_management"
Categories: Memory management
Personal tools
New features Log in / create account Namespaces
Article Discussion VariantsViews
Read Edit View history ActionsSearch
Navigation
Main page
Contents
Featured content
Current events
Random article
Donate
Interaction
About Wikipedia
Community portal
Recent changes
Contact Wikipedia
Help
Toolbox
What links here
Related changes
Upload file
Special pages
Permanent link
Cite this page
Print/export
Create a book
Download as PDF
Printable version
Languages

Català
Česky
Deutsch
Español
Français
Hrvatski
Italiano
Bahasa Melayu
Nederlands
日本語
Português
Türkçe
中文
This page was last modified on 21 October 2010 at 16:17.
Text is available under the Creative Commons Attribution-ShareAlike License; add
itional terms may apply. See Terms of Use for details.
Wikipedia® is a registered trademark of the Wikimedia Foundation, Inc., a non-prof
it organization.
Contact us
Privacy policy About Wikipedia Disclaimers

You might also like