Path: utzoo!attcan!uunet!samsung!zaphod.mps.ohio-state.edu!wuarchive!udel!rochester!pt.cs.cmu.edu!b.gp.cs.cmu.edu!Ralf.Brown@B.GP.CS.CMU.EDU From: Ralf.Brown@B.GP.CS.CMU.EDU Newsgroups: comp.os.msdos.programmer Subject: Re: Coalescing memory for DOS Message-ID: <27677be5@ralf> Date: 13 Dec 90 12:02:29 GMT Sender: ralf@b.gp.cs.cmu.edu Organization: Carnegie Mellon University School of Computer Science Lines: 17 In-Reply-To: <90346.130938DLV101@psuvm.psu.edu> In article <90346.130938DLV101@psuvm.psu.edu>, DLV101@psuvm.psu.edu (Dwaine VanBibber) wrote: }A while back there was some discussion about DOS's inability to coalesce }freed memory and several people posted solutions. I have a couple of questions }regarding this. First, what is "coalescing"? Why is it needed? When is it }need (ie, when freeing objects from dynamic data structures?)? Lastly, how }is it done? Examples in C and/or assembly would be appreciated. Thank you. Coalescing is the process of combining adjacent free blocks into a single, larger free block. If you didn't do that, a sequence of allocations and frees would eventually fragment the memory to the point where even a small allocation would fail even though there are hundreds of K available--but none of the free blocks large enough for the request. -- UUCP: {ucbvax,harvard}!cs.cmu.edu!ralf -=- 412-268-3053 (school) -=- FAX: ask ARPA: ralf@cs.cmu.edu BIT: ralf%cs.cmu.edu@CMUCCVMA FIDO: 1:129/3.1 Disclaimer? | I was gratified to be able to answer promptly, and I did. What's that? | I said I didn't know. --Mark Twain