Open main menu
Home
Random
Recent changes
Special pages
Community portal
Preferences
About Wikipedia
Disclaimers
Incubator escapee wiki
Search
User menu
Talk
Dark mode
Contributions
Create account
Log in
Editing
Memory management
(section)
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
{{short description|Computer memory management methodology}} {{Redirect|Memory allocation|memory allocation in the brain|Neuronal memory allocation}} {{about|memory management in an [[Virtual address space|address space]]|management of physical memory|Memory management (operating systems)}} {{More footnotes|date=April 2014}} {{OS}} '''Memory management''' (also '''dynamic memory management''', '''dynamic storage allocation''', or '''dynamic memory allocation''') is a form of [[Resource management (computing)|resource management]] applied to [[computer memory]]. The essential requirement of memory management is to provide ways to dynamically allocate portions of memory to programs at their request, and free it for reuse when no longer needed. This is critical to any advanced computer system where more than a single [[Process (computing)|process]] might be underway at any time.<ref name=":0" /> Several methods have been devised that increase the effectiveness of memory management. [[Virtual memory]] systems separate the [[memory address]]es used by a process from actual physical addresses, allowing separation of processes and increasing the size of the [[virtual address space]] beyond the available amount of [[Random-access memory|RAM]] using [[paging]] or swapping to [[secondary storage]]. The quality of the virtual memory manager can have an extensive effect on overall system [[Computer performance|performance]]. The system allows a computer to appear as if it may have more memory available than physically present, thereby allowing multiple processes to share it. In some [[operating system]]s, e.g. [[Burroughs MCP|Burroughs/Unisys MCP]],<ref name=Unisys-MCP-Memory>{{cite book |chapter=Unisys MCP Managing Memory |chapter-url=https://public.support.unisys.com/aseries/docs/ClearPath-MCP-20.0/86000387-514/chapter-000002004.html |title=System Operations Guid |publisher=[[Unisys]]}}</ref> and [[OS/360 and successors]],<ref>{{cite book | publisher = IBM Corporation | title = IBM Operating System/360 Concepts and Facilities | date = 1965 | edition = First | section = Main Storage Allocation | section-url = http://bitsavers.org/pdf/ibm/360/os/R01-08/C28-6535-0_OS360_Concepts_and_Facilities_1965.pdf#page=72 | page = 74 | series = IBM Systems Reference Library | url = http://bitsavers.org/pdf/ibm/360/os/R01-08/C28-6535-0_OS360_Concepts_and_Facilities_1965.pdf | access-date = Apr 3, 2019 }} </ref> memory is managed by the operating system.{{NoteTag|However, the run-time environment for a language processor may subdivide the memory dynamically acquired from the operating system, e.g., to implement a stack.}} In other operating systems, e.g. [[Unix-like]] operating systems, memory is managed at the application level. Memory management within an address space is generally categorized as either [[manual memory management]] or automatic memory management.
Edit summary
(Briefly describe your changes)
By publishing changes, you agree to the
Terms of Use
, and you irrevocably agree to release your contribution under the
CC BY-SA 4.0 License
and the
GFDL
. You agree that a hyperlink or URL is sufficient attribution under the Creative Commons license.
Cancel
Editing help
(opens in new window)