Page Frame Allocation: Difference between revisions

Jump to navigation Jump to search
m
Make the wiki easier to understand, fix some spelling and grammar mistakes.
[unchecked revision][unchecked revision]
m (No period is required at the start of the section name)
m (Make the wiki easier to understand, fix some spelling and grammar mistakes.)
Line 1:
==Physical Memory Allocators==
 
These are the algorithms that will provide you with a new page frame when you'll need it. The client of this algorithm is usually indifferent to which frame is returned, and especially, a request for n frames needndoesn't need to return contiguous frames (unless you are allocating memory for DMA operations like network packet buffers).
 
N will be the size of the memory in pages in the following text.
Line 34:
buddy[3]---> # # # # # 0 free 32K, 5-bits map
 
A buddy for N pages is about twice the size of a bitmap for the same area, but it allows a faster location of collections of pages. FigureThe figure above shows a 4-buddy with free pages/blocks denoted as . and used pages/blocks denoted as #. When a block contains at least one used sub-block, it is itself marked as used and sub-blocks that are part of a larger block are also marked as used (x onin the figure). Say we want to allocate a 12-K region on this buddy, we'll lookuplook up the bitmap of free 16K blocks (which says we have one such starting at page #12 and another starting at page #36). buddy[2]->bit[4] is then set to 'used'. Now we only want 3 pages out of the 4 we got, so the remaining page is returned to the appropriated buddy bitmap (e.g. the single pages map). The resulting buddy is
 
0 4 8 12 16 20 24 28 32 36
Anonymous user
Cookies help us deliver our services. By using our services, you agree to our use of cookies.

Navigation menu