| OCR Text |
Show Real Time Enhancement Existing real time garbage collection algorithms [2, 6, 9, 63] present two limitations. First, the latency of the algorithm is limited by the time that it takes to copy the largest object. Second, the mutator is not allowed to store a FromSpace reference in an object. Introspection removes both limitations. The real time checkpoint algorithm can be used to perform the copying of an object and the execution of the mutator concurrently, using two processors on a machine with shared memory. FromSpace references can be detected from the execution stream. They can be recorded and used during recollection. It is easy to see why the copying of an object by the collector can not proceed concurrently with the execution of the mutator. While the object is being copied, the mutator can change its content. In that case, the copy of the object in ToSpace does not contain the correct value. The collector and the mutator can proceed concurrently using the real time checkpoint algorithm described before. The checkpoint is not performed on the entire mutator's state, but is limited only to an object. The history stream contains addresses of modified locations within the object. The collector copies the object until the history stream is empty. An atomic action is needed after the object is copied. The action writes a forwarding pointer to the object and corrects pointers to the object that are held in registers. Since this atomic action might present significant overhead per object, this algorithm is better suited for large objects. The mutator is interrupted for a short constant time, thus the latency of the algorithm does not depend on the size of objects. Since each object is copied independently of other objects, the latency is also independent from the way how objects are connected. In existing algorithms during scavenging, mutators are not allowed to store a FromSpace reference in objects. This may convert black objects into grey objects. The collector assumes that already traversed objects in ToSpace are black. Since the 55 |