| Zeile 22: | Zeile 22: | ||
== Buddy-Speicherverwaltung == | == Buddy-Speicherverwaltung == | ||
| − | + | Die Buddy-Speicherverwaltung ist sehr einfach zu implementieren: der freie Speicher wird zu Beginn in Blöcke der größe 2<sup>n</sup> aufgeteilt.<br> | |
| + | Bei einer Anfrage nach Speicher wird die angeforderte Größe auf die nächste Zweierpotenz 2<sup>n</sup>aufgerundet. Ist kein Block dieser Größe vorhanden, wird nach einem Block der Größe 2<sup>n+1</sup> gesucht, der dann halbiert wird, wenn kein Block der Größe 2<sup>n+1</sup> vorhanden ist, wird nach 2<sup>n+2</sup> gesucht, usw.<br> | ||
| + | Bei freigabe eines Blocks wird geprüft ob er direkt mit einem freien Block gleicher größe benachbart ist, die dann zu einem Block von 2<sup>n+1</sup> Bytes zusammen gefügt werden.<br> | ||
| + | Nachteile sind u.U. ein große Platzverschwendung, bspw. wenn die angeforderte Größe 2<sup>n+1</sup>+1 beträgt, und eine mögliche starke Fragmentierung des Speichers. | ||
== Andere Implementierung portieren == | == Andere Implementierung portieren == | ||