摘要:
A method of garbage collection of shared data in a system heap within a data processing system, the method comprising the steps of: (a) determining if the contents of the system heap has reached a predetermined threshold, the system heap storing shared objects which are shared amongst a plurality of processes running in a data processing system; (b) in a table identifying each of the plurality of processes with a status field, setting the status field of a process which has carried out determining step (a) to a mark initiator value; (c) triggering remaining processes to mark all objects in the system heap that each process is currently using; (d) determining that each of the remaining processes has completed the marking, at step (c); (e) releasing any unmarked objects in the system heap to an object pool.
摘要:
A computer system has a heap for storing objects and a card table for tracking updates to objects on the heap, typically for garbage collection purposes. In particular, the heap is divided into segments, each corresponding to a card in the card table, and any update to a segment in the heap triggers a write barrier to mark the corresponding card in the card table. It is important that this write barrier is as efficient as possible to optimize system performance. In some circumstances an object update may be made to an address outside the heap. To ensure that this still properly maps to a card in the card table, the entire memory space is folded cyclically, so that any given memory address corresponds to one, and only one card, in the card table.
摘要:
A voice processing complex has a plurality of host machines, each host machine supporting one or more voice applications, at least one host in the complex including telephony hardware for providing access to a plurality of telephone lines. Such a host provides telephony functions to the complex. This is achieved by maintaining a mapping of voice applications to telephone lines, and creating a call object in response to an incoming call on one of the lines. It is then determined which voice application to associate with the incoming call on the basis of this mapping, and an identifier to the call object is then passed to the determined voice application. Thereafter the call object is responsive to requests from this voice application for providing telephony functions for the call. This includes receiving a media object from the voice processing application which represents desired output over a telephone line. This media object is then processed into a plurality of output components in accordance with one or more presentation criteria, and these components are then output over the telephone line.
摘要:
A computer system is used to run one or more programs. It includes a memory having at least a first heap and a second heap in which objects are stored, with a first object being stored on the first heap. A write barrier is provided for detecting that said the first object has been updated by a program to include a first reference to a memory location in the second heap.
摘要:
A computer system provides an object-based environment. The computer system includes storage. A contiguous linear portion of the storage is logically divided into first and second heaps located at opposite ends of the linear portion of storage. Any gap between the two heaps represents an unallocated region of storage. The system permits references from objects on the first heap to objects on the second heap and vice versa. A garbage collector operates across both heaps to remove objects that are no longer live. Means are provided for expanding the first and second heaps into the unallocated region. The first heap is expanded according to a first expansion policy, and the second heap is expanded according to a second expansion policy.
摘要:
A voice processing system for connection to a telephone line for providing telephony support to voice processing applications having a voice processing application and a media object, the media object having an output element for outputting a set of output components in accordance with one or more presentation criteria such as locale and style; a receiving element for receiving the media object from the voice processing application, the media object representing desired output over a telephone line; and the outputting element outputting the output components over the telephone line.
摘要:
A computer system provides an object-based virtual machine environment for running successive applications. The computer system includes storage, at least a portion of which is logically divided into two or more heaps in which objects can be stored. A first heap is reset between successive applications, and a second heap persists from one application to the next. A card table is provided which comprises multiple cards, each corresponding to a region of said storage. Each card in the card table is set to null when the first heap is reset between successive applications. A card is marked whenever an object in its corresponding storage region is created or updated. It is then possible to detect potential references from the second heap to the first heap at reset by scanning the cards in the card table corresponding to the second heap, and detecting any cards which have been marked.The system further identifies any objects on the first heap which have a finalization method. The finalization methods of any such identified objects are then run on the main thread prior to reset of the first heap.
摘要:
A computer system is used to run one or more programs. It includes a memory having at least a first heap and a second heap in which objects are stored, with a first object being stored on the first heap. A write barrier is provided for detecting that said the first object has been updated by a program to include a first reference to a memory location in the second heap.
摘要:
In a multi-user environment, a method of controlling access to objects is required, such that updates performed by one user are not overwritten by simultaneous updates by another user. There is provided a method of controlling access to objects and containers, each representing a group of objects, in a multi-user environment whereby lock states of the objects and lock states of the containers are stored in a computer system, said method comprising the steps of: accepting a request for access to an object or a container; deciding access based on the lock state for that object or container, the lock state of a container if the request is for an object contained within that container, and the lock state of objects grouped within a container if the request is for a container object; and sending a message to the requester granting or denying access to said object or container object. Updates performed by one user on an object or a container are not overwritten by simultaneous updates by another user. The above supports units of work in a GUI session where a unit of work could be updating a single object, viewing a single object or copying or deleting a container of objects. This extends to manipulating entire voice applications which consist of many containers and other objects.