Abstract: A garbage collection system that needs to meet real-time requirements uses an eager read barrier that performs a forwarding operation as soon as a quantity is loaded. The barrier maintains a to-space invariant by including a forwarding pointer in the header of objects to be moved or accessed that normally points to the object itself. However, if the object has been moved, the forwarding pointer points to the new object location. The eager read barrier maintains the registers and stack cells such that the registers and stack cells always point into to-space. Barrier-sinking and common sub-expression elimination are used to minimize the overhead associated with the read barrier.
Type:
Grant
Filed:
January 5, 2004
Date of Patent:
June 29, 2010
Assignee:
International Business Machines Corporation
Inventors:
David Francis Bacon, Perry Cheng, Vadakkedathu Thomas Rajan
Abstract: A system and method is provided for reducing memory leaks in virtual machine programs, such as those encountered in programs running in the Java Virtual Machine (JVM) environment. A compiler, such as a Java Just-In-Time (JIT) compiler, is used to identify the last use of an variable and, subsequent to the program statement where the last use occurs, insert a nullification statement. The nullification statement nullifies the variable so that it no longer references an object stored in a garbage collected heap. Variables in a program are identified in the activation records of the program. The nullification statement, when executed, severs the link between the program and the objects stored in the garbage-collected heap so that the program is no longer seen as a “root” for the object, often enabling the garbage collector to reclaim memory occupied by the object sooner.
Type:
Grant
Filed:
November 12, 2007
Date of Patent:
June 8, 2010
Assignee:
International Business Machines Corporation
Abstract: Described is a technology by which a real-time data relocating mechanism is provided for multiprocessing environments, including supporting lock-free programs that run in parallel. The relocating mechanism moves an object by using a status field related to the data field, possibly in an interim (wide) object space, which is then copied to a to-space object. The status information for each data field of the original object contains information indicating where a current version of the data for each field is present, that is, in the original, wide or to-space object. In one example, a handshake mechanism of a garbage collector establishes preparation and copy phases between the mechanism and other threads that determine where memory accesses occur. Also described is support for program thread compare-and-swap (CAS) operations and/or multi-word atomic operations.
Type:
Grant
Filed:
May 8, 2007
Date of Patent:
May 11, 2010
Assignee:
Microsoft Corporation
Inventors:
Erez Petrank, Filip Jerzy Pizlo, Bjarne Steensgaard
Abstract: Communications systems and methods for minimizing file corruption when communicating between a device and a host are provided. To initiate a file transfer section, a host can transfer data to a device on a primary communications channel. The device can then temporarily store the received data in a memory circuit until a command is received indicating that the file has been completely transferred. In order to avoid interfering with the data transfer, the host can provide such a command to the device on a sideband communications channel. Upon receiving the command, the device can integrate the received data into its file system by transferring the data from the memory circuit to a more permanent storage component. If the communications interface is disconnected before such a command is received, the temporarily stored data can be considered incomplete and can be deleted.
Type:
Application
Filed:
September 26, 2008
Publication date:
April 1, 2010
Inventors:
Kenneth Herman, Daniel Fletcher, Matthew Rogers
Abstract: A map information processing apparatus includes: a vehicle position calculation unit 12 for calculating a vehicle position; a traveling locus data generation unit 21 for generating traveling locus data on the basis of the calculated vehicle position when the vehicle position deviates from a road indicated by road data that are included in map data read from a map data storage unit 1; a temporary registration unit 23 for registering the traveling locus data generated by the traveling locus data generation unit in a temporarily registered road list as a temporarily registered road; an operation unit 11 for selecting one of temporarily registered roads registered in the temporarily registered road list; and an official registration unit 24 for registering the temporarily registered road selected by the operation unit in an officially registered road list as an officially registered road in accordance with an instruction from the operation unit, generating road data on the basis of traveling locus data relating t