Mahmoud Naghshineh, Radha Ratnaparkhi, et al.
IBM J. Res. Dev
Replication-based incremental garbage collection is one of the more appealing concurrent garbage collection algorithms known today. It allows continuous operation of the application (the mutator) with very short pauses for garbage collection. There is a growing need for such garbage collectors suitable for a multithreaded environments such as the Java Virtual Machine. Furthermore, it is desirable to construct collectors that also work on multiprocessor computers. We begin by pointing out an important, yet subtle point, which arises when implementing the replication-based garbage collector for a multithreaded environment. We first show that a simple and natural implementation of the algorithm may lead to an incorrect behavior of multithreaded applications. We then show that another simple and natural implementation eliminates the problem completely. Thus, the contribution of this part is in stressing this warning to future implementors. Next, we address the effects of the memory coherence model on this algorithm. We show that even when the algorithm is properly implemented with respect to our first observation, a problem might still arise when a multiprocessor system is used. Adopting a naive solution to this problem results in very frequent (and expensive) synchronization. We offer a slight modification to the algorithm which eliminates the problem and requires little synchronization. World Scientific Publishing Company.
Mahmoud Naghshineh, Radha Ratnaparkhi, et al.
IBM J. Res. Dev
Benny Mandler, Naama Kraus, et al.
SMSST 2005
Alain Azagury, Michael E. Factor, et al.
Journal of the American Society for Information Science and Technology
Alain Azagury, Elliot K. Kolodner, et al.
SIGPLAN Notices (ACM Special Interest Group on Programming Languages)