Hi!

26-Июл-2006 16:19 [EMAIL PROTECTED] (Michael Devore) wrote to
freedos-devel@lists.sourceforge.net:

MD> Okay, I can get minor XMS free block fragmentation during direct calls to
MD> the VCPI/EMS allocator for large blocks.  Since the VCPI/EMS allocator
MD> directly manipulates the XMS handles, it is possible to confuse the
MD> allocator's merge of free block back to adjacent XMS block if they are done
MD> out of sequence.
MD> The question is: who's responsible for merging them back?  Should EMM386's
MD> VCPI/EMS allocator walk all the available XMS blocks multiple times on a
MD> freed block and sew them back together, or is that the responsible of
MD> HIMEM, which after all is the XMS "manager"?

     Fragmentation shouldn't be seen neither at (1) allocation new memory
(XMS functions 8,9,88h and 89h) nor at (2) getting info about free memory
and handles (INT 2F/4309). As I understand, this may be achieved by
defragmentation at start of entry point of these functions.

     This is in ideal, as I understand. But I suggest, also acceptable, if
INT 2F/4309 will not be affected by defragmentation.

MD> I can make HIMEM's allocator and free memory function force a free block
MD> merge walk every time it's called and that will clear up any remaining
MD> fragmentation, except for programs which directly access the XMS handles
MD> before HIMEM has a chance to do the merge walk.
MD> Or, I can make EMM386's VCPI/EMS allocator do it, clear up any
MD> fragmentation it is personally responsible for, but not cover the
MD> possibility of other programs directly accessing the XMS handles also,
MD> potentially leaving them in a fragmented state.
MD> Or I can make both HIMEM and EMM386 do it.  Which sounds like a bit of
MD> overkill.

     Defragmentation should be done in any XMM, which handles abovementioned
functions. If EMM386 serves these functions over HIMEM _without_ calling
HIMEM - it should duplicate also defragmentation feature.

-------------------------------------------------------------------------
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your
opinions on IT & business topics through brief surveys -- and earn cash
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
_______________________________________________
Freedos-devel mailing list
Freedos-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/freedos-devel

Reply via email to