Memory management: Difference between revisions

no edit summary
[unchecked revision][unchecked revision]
(→‎External Links: Replaced dead osdever link)
No edit summary
 
(3 intermediate revisions by 3 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 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 segment [[RegisterCPU Registers x86#Segment Registers|segment registers]]: '''CS, DS, SS, ES, FS, GS''' (CodeSegment, DataSegment, StackSegment, the rest are ExtraSegments).
 
===Paging===
Line 53:
*[[Page Frame Allocation]]
*[[Writing a memory manager]] - a tutorial
*[[Brendan's Memory Management Guide]]
 
===Threads===
Line 69 ⟶ 70:
 
[[Category:Memory management]]
[[Category:Physical Memory]]
[[Category:Virtual Memory]]
[[de:Speicherverwaltung]]
Anonymous user