摘要:
Systems and methods for utilizing memory version instructions and techniques in conjunction with garbage collection in a processor. A hardware-assisted garbage collection algorithm may be executed by a computing system to move live objects between memory regions. Special store instructions may be utilized to mark the live objects of each memory region that is about to be migrated. Mutators performing useful work may be configured to trap on a memory region which is marked for migration.
摘要:
A method may be performed by a device of a group of devices in a distributed data replication system. The method may include storing objects in a data store, at least one or more of the objects being replicated with the distributed data replication system, and conducting a scan of the objects in the data store. The method may further include identifying one of the objects as not having a reference pointing to the object, storing a delete negotiation message as metadata associated with the one of the objects, and replicating the metadata with the delete negotiation message to one or more other devices of the group of devices.
摘要:
A computer system which includes a plurality of threads and a garbage collector that traces memory objects and identifies memory objects according to a three-color abstraction. The computer system also includes two methods of deleting compiled code in a self-modifying multi-threaded computer system. The computer system also utilizes a method of handling links between fragments of code in a self-modifying multi-threaded computer system. The computer system also handles patches between two pieces of code.
摘要:
The updating of only some memory locations in a multiple computer environment in which at least one applications program (50) executes simultaneously on a plurality of computers M1, M2 .... Mn each of which has a local memory, is disclosed. Memory locations (A, B, D, E, X) in said local memory are categorized into two groups. The first group of memory locations (X1, X2, ... Xn, A1, A2, ... An) are each accessible by other computers. The second group of memory locations (B, E) are each accessible only by the computer having the local memory including the memory location. Changes to the contents of memory locations in the first group only are transmitted to all other computers. A demotion mechanism is disclosed to demote memory locations in the first group into the second group in the event that application program execution means that a memory location in said first group is no longer referenced by another memory location in another computer.
摘要:
A partially relocated object identifier store including "copy from" identifier and "copy to" identifier storage accessible to write barrier logic allows the write barrier logic to maintain consistency between FromSpace and ToSpace instances of a partially relocated memory object without software trap handler overhead. Optional "How far" indication storage facilitates differentiation by the write barrier logic between a copied portion and an uncopied portion of the partially relocated memory object. An optional "mode" indication facilitates differentiation by the write barrier logic between a copy phase and a pointer update phase of relocation by the garbage collector implementation. In some embodiments, pointer update and copying phases may overlap. "Copy to" identifier storage facilitates broadcast of a store-oriented memory access to the FromSpace instance to both FromSpace and ToSpace instances. Similarly, during pointer update, "Copy to" and "Copy from" identifier storage facilitate broadcast on a store-oriented memory access to either the FromSpace instance or the ToSpace instance to both FromSpace and ToSpace instances.
摘要:
One embodiment of the present invention provides a system for type tagging values in a compiled activation frame in a lazy manner to facilitate garbage collection. This system operates in a mixed-mode environment that supports both interpretation of byte codes and execution of compiled native code. Upon receiving an invocation of a method, the system creates an activation frame for the method on the execution stack. If the method is executing in interpreted mode, the interpreter maintains a tag for each value in the activation frame during execution. The tag indicates whether the value is a reference type or a primitive type. However, if the method is executing in compiled mode, the system allocates space for tags for each value in the activation frame, but does not fill in the tags during execution. This allows the tags to be filled in at a future time when needed.
摘要:
A garbage collector 100 is composed of a generation heap creator 20, an inter-generation object relocator 80, and a generation heap deallocator 40. The generation heap creator 20 creates a generation heap at a start of execution of a method. The inter-generation object relocator 80 relocates, upon detecting a reference from an object in an older generation heap to another object in a younger generation heap, the referenced object in the younger generation heap to the older generation heap. The generation heap deallocator 40 deallocates, at a completion of a method, a generation heap corresponding to the method.
摘要:
A method and apparatus is described for establishing a global binary assertion in a multiprocessor environment. The local objects have a three-value status variable: -active, disquiet-, -passive. quiet-, and -passive. disquiet-being the three values. First all local objects are made active. During execution. locally the assertion may hold. and thereupon a transition from active to -passive, quiet-is signalled to a global synchronizer process. Thereafter. cross- requests from a non-local object may reactivate a quiet object to the state -passive. disquiet-. The synchronizer process counts the transitions from active to -passive, quiet-and thus can detect when all objects are quiet. The local operations may represent a garbage collection system. wherein originally root items are colored greay and all other items white. In a marking phase. all grey items are successively accessed. After verifying any other item referred to by such grey item. and if white, discoloring it to grey, the original item is discolored to black. If locally no grey items are left, the local collector process goes to the state -passive. quiet-. Cross-processor references may awake it to either verifying a locally correct black color, or discoloring a white item to grey and restarting the color verification when no grey items are left globally, the synchronizer has reached the ultimate count, and vice versa. Thereafter, white objects are treated as garbage.