Einzelnen Beitrag anzeigen

Benutzerbild von negaH
negaH

Registriert seit: 25. Jun 2003
Ort: Thüringen
2.950 Beiträge
 
#23

Re: Macht es Sinn ? Multithreaded Server in Delphi ?

  Alt 3. Nov 2006, 17:52
@Elivis:

Ich habe mal das Wort " Relokalisierung" nachgeschlagen, und es hat immer mit Lokalisierung zu tun, also mit "Ort".

Zitat:
Der Flickenteppich von verwendeten und wieder freigegebenen Bereichen wird also in 2 homogene Blöcke zusammengeschoben. Da Speicher in beiden System allokiert wird, indem einfach die Grenzlinie von benutztem und freiem Speicher um die gewünschte Anzahl an Bytes verschoben wird, ist Relokalisierung sogar zwingend notwendig.
Ok ich versuche das mal mit meinen Worten zu erklären, eventuell verstehe ich dich ja falsch.

Wir haben einen Speicher den wir in 2 Teile splitten. Der 1. Block enthält allozierte gültige Objekte der 2. Block enthält freien Speicher. Die Grenze zwischen diesen Blöcken stellt unsere Heapgrenze dar, also der Ort an dem ein neues Objekt seinen Speicher bekommmt. Wenn das so richtig ist dann ist dies ein stinknormales Verhalten eines jeden Speichermanagers. Ich sehe da jetzt keinen Unterschied der mit "Relokalsierung" -> "örtlichen Verschiebungen" zu tuen haben soll.

Denn eine dynamische Defragmentierung kann immer nur freie Speicherblöcke zusammenfassen wenn der Speichermanager die allozierten Blöcke ebenfalls zur Laufzeit verschieben kann. Dies bedeutet aber das alle Refernezen auf diese Speicherblöcke als indirekte Zeiger verwaltet werden müssen, da ansonsten bei direkten Zeigern diese ja nach der Defragmentierung ins Nirwana zeigen.

Bei JAVA als "interpretierende" Plattform ist das noch vorstellbar.


Gruß Hagen
  Mit Zitat antworten Zitat