Abstract

Memory compaction is a technique for reclaiming cells containing garbage that are scattered over the memory space. More specifically, the memory cells are rearranged, so that all usable cells appear in one compact mass at one end of the area, and the remaining space at the other end can be recycled by the program. During this process, references are updated to point to the new locations. This process happens in place; no extra memory is needed. In addition to this, a sliding compaction algorithm preserves the relative order of the useful memory calls. Morris′s algorithm is such a well known sequential algorithm. In this paper, we present a program scheme that is a generalization of Morris′s algorithm, and that allows for parallel execution. Our scheme can be fine tuned for a particular implementation, taking into account the characteristics of the memory area and the hardware. The algorithm is space efficient, and runs in a time linear to the size of the memory area (the actual parameters are determined by the properties of the data to be compacted). As the algorithm is very fine grained, it has a nearly linear speedup, except in some uncommon cases. The memory area need not be contiguous, but must be globally accessible.

Full Text
Paper version not known

Talk to us

Join us for a 30 min session where you can share your feedback and ask us any queries you have

Schedule a call

Disclaimer: All third-party content on this website/platform is and will remain the property of their respective owners and is provided on "as is" basis without any warranties, express or implied. Use of third-party content does not indicate any affiliation, sponsorship with or endorsement by them. Any references to third-party content is to identify the corresponding services and shall be considered fair use under The CopyrightLaw.