Subventions et des contributions :
Subvention ou bourse octroyée s'appliquant à plus d'un exercice financier (2017-2018 à 2020-2021).
Memory management is an essential part of any software system. Programming languages offer different degrees of support. Objects allocated in memory have varying life times. Objects that are accessible from the rootset or from another live object are said to be alive. In contrast, objects that can no longer be accessed are said to be dead. In some languages, for example C, the programmer is responsible to free the memory of dead objects before they become unreachable. In other languages, for example Java, a garbage collector is responsible for collecting dead objects. Some objects persist for a long time but they are seldom accessed; these objects are said to be cold. It has been shown that it is advantageous to move cold object to regions that are not touched by the garbage collector. Since these regions are infrequently accessed, they can be paged out to disk. Sequestering cold objects into special areas will help both the real memory footprint as well as cache coherence.x000D
With the proliferation of persistent memory it is possible to store regions with cold objects in such memory. The term used for persistent storage is NVRAM (Non-Volatile Random Access Memory). NVRAM is less costly than dynamic RAM with slightly higher access time. The main application for NVRAM has been in the area of database transactions. Here, we plan to use it to sequester cold objects in NVRAM. The main objective of the proposed research is to increase the effectiveness of garbage collection by making use of persistent memory. Some properties of cold objects will be investigated. How are cold objects detected? When should they be moved to a cold area? When should they move back from the cold area? When shouldx000D
they be garbage collected? The answer to these questions will guide the development, implementation, and testing of software generated for inclusion in the garbage collection strategies of the IBM J9 product as well as the OMR Eclipse project.