Hallo, ein bekanntes Problem bei Betriebssystemen ist ja die Fragmentierung des Hauptspeichers, wenn es lange genug läuft. Bei dem Speicher, der von den User-Prozessen belegt wird ist das ganze ja weniger schlimm, da dieser vom System ja oft nur als 4kB Pages betrachtet wird, aber was ist mit dem Heap des Kernels? Wenn das System mehrere Tage läuft und einige tausend malloc und free Operationen ausgeführt hat dürfte es schon recht schwierig werden einen größeren zusammenhängenden Block zu allocieren. Nun habe ich mal irgendwo gelesen, dass zB Linux die Möglichkeit hat den Speicher zu "defragmentieren". Ist so etwas eigentlich bei einem in C geschriebenen Kernel möglich, oder ist damit womöglich nur das Defragmentieren der Page-Tabelle gemeint?

Übersicht
Wiki
Hilfe
Suche
Einloggen
Registrieren
Drucken


Gespeichert


