Page Frame Allocation: Difference between revisions

[unchecked revision][unchecked revision]
No edit summary
Line 66:
Note that with flat linked-lists, both "is memory at address XXX free" or "where can i get a block of size YYY" questions may require a complete traversal of the list to get answered. If virtual memory gets fragmented and the list gets longer, that may become an issue. "Is memory at address XXX free?" is mainly used to merge two free zone into a new (bigger) one when a block is released, and it is easier to deal with if the list is kept ordered by growing addresses.
 
[[Image:Flat_list.png]]
<pre>
address space
_______ ______
Start--------------->| | | (A) |
Size--------------\ | free | -> | free |
Block_before \ | space | |------|
,-Block_after \|_______| |\\\\\\|
| |\used\|
| _______ |\\\\\\|
| Start--------------->| | |------|
| Size--------------\ | free | | (B)|
'-Block_before \ | space | -> | free |
,-Block_after \|_______| | |
| |------|
| _______ |\used\|
| Start--------------->| | |---(C)|
| Size--------------\ | free | -> | free |
'-Block_before \ | space | |------|
,-Block_after \|_______| |\\\\\\|
| |\used\|
| _______ |\\\\\\|
| Start--------------->| | |------|
| Size--------------\ | free | | (D)|
'-Block_before \ | space | -> | free |
Block_after \|_______| |______|
 
</pre>
 
===Tree-based approach.===
Anonymous user