Memory management: Difference between revisions
[unchecked revision] | [unchecked revision] |
Content deleted Content added
→Articles: Add link to 'Detecting Memory' |
No edit summary |
||
(13 intermediate revisions by 9 users not shown) | |||
Line 1:
'''Memory management''' is a critical part of any operating system [[Kernels|kernel]]. Providing a quick way for programs to allocate and free memory on a regular basis is a major responsibility of the kernel. There are many implementations for [[Page_Frame_Allocation|allocating physical memory]] including bitmaps, buddy allocation and using tree structures or queues/stacks.
''For an overview of memory allocation models, and methods of allocating memory, see [[Program Memory Allocation Types]]. If you are looking for heap type memory management, which is the allocation of smaller chunks of memory not on large boundaries then see the [[Heap|Heap]] page. A heap is commonly implemented (in the popular way of thinking) not only in the kernel, but also in applications - in the form of a standard library. For a discussion of automatic memory management methods, see [[Garbage Collection]].''
==Address Spaces==
Line 12 ⟶ 14:
===Virtual Address Space===
The advent of [[MMU]]s (Memory Management Units)
==Memory Translation Systems==
Line 19 ⟶ 21:
===Segmentation===
{{Main|Segmentation}}
Segmentation is not commonly available in mainstream systems except for the x86. In protected mode this method involves separating each area of memory for a process into units. This is handled by the
===Paging===
Line 46 ⟶ 48:
===Articles===
*[[Detecting Memory (x86)]]
*[[Garbage collection]]
*[[Memory Allocation]]
*[[Page Frame Allocation]]
*[[Writing a memory manager]] - a tutorial▼
*[[Brendan's Memory Management Guide]]
▲*[[Writing a memory manager]]
===Threads===
*[[topic:12307|Paging Mechanisms]]
*[[topic:12022|Paging Concepts (by Brendan)]]
*[[topic:22661|Paging Explained (by Creature)]]
===External Links===
*[http://linux-mm.org/ LinuxMM] - A wiki documenting memory management projects and development▼
*[http://www.intel.com/products/processor/manuals/ Intel Systems Programming Documentation] Chapters 3 & 4 of Volume 3A▼
*[http://www.amd.com/us-en/Processors/DevelopWithAMD/0,,30_2252_739_7044,00.html AMD Systems Programming Documentation] Chapters 3 & 4 of Volume 2
▲*[http://www.intel.com/products/processor/manuals/ Intel Systems Programming Documentation] Chapters 3 & 4 of Volume 3A
*[[wikipedia:Memory segment|Memory Segments]] - Wikipedia article on segmentation▼
▲*[http://linux-mm.org/ LinuxMM] - A wiki documenting memory management projects and development
*[
▲*[[wikipedia:Memory
*[http://duartes.org/gustavo/blog/post/motherboard-chipsets-memory-map Jun 2008: Motherboard Chipsets and the Memory Map] by Gustavo Duarte
*[http://duartes.org/gustavo/blog/post/anatomy-of-a-program-in-memory Jan 2009: Anatomy of a Program in Memory] by Gustavo Duarte
[[Category:Memory management]]
[[Category:Physical Memory]]
[[Category:Virtual Memory]]
[[de:Speicherverwaltung]]
|