Font Size: a A A

Research And Implementation Of Memory Management In Software Transactional Memory System

Posted on:2010-11-26Degree:MasterType:Thesis
Country:ChinaCandidate:G R HuangFull Text:PDF
GTID:2178330332478439Subject:Computer software and theory
Abstract/Summary:PDF Full Text Request
Chip multi-processor improves the performance of the processor and the computer system, overcomes the development bottleneck of the traditional uniprocessor, but the difficult of progarmming affects the performance and application of the multi-core processor. Transactional memory is one of the most promising models in parallel programming for multi-core processor system, which introduces transaction mechanism to the design of parallel programs. Programmers do not need to use the traditional synchronization mechanism to coordinate the concurrent accesses of the multi-thread to shared resources. It avoids the problem of deadlocks. The implementation of transactional memory includes software transactional memory, hardware transactional memory and hybrid transactional memory on the implementation. The key techniques of the implementation of software transactional memory include the data structure organization, the detection and solution of conflicts, the concurrency control and memory management. Memory management is an important factor affecting the performance of software transactional memory system and the forward execution of threads.Therefore, this thesis studies deeply memory management technologies. It designs a non-blocking memory management scheme based on some exist memory management schemes. For the multi-threads environment, the new memory manager uses a pure private heap allocation scheme, allocates a private heap for each thread, makes use with a private manager for managing memory locations, and takes a global manager to administrate these private managers. The private manager is composed of memroy allocator, memory nursery and grabage cleaner. They independently deal with memory allocations, memroy reclamation and cleaning memory locations. It contains all memory operations. On the garbage cleaner, we modify the epoch based reclamation scheme for a shared operation and design the epoch for a transaciton. The garbage cleaner compares epochs of objects with current epochs of transactions, when a transaction is about to end. The memory nursery reclaims the memory locations after garbage objects are cleaned. This enables memory locations to reuse. In addition, a detection mechanism of threads is designed to inspect delayed threads or aborted threads, which supports the requirement of non-blocking synchronization of the memroy manager and software transactional memory system.Finally, the performance of the new memory manager is tested with six traditional programs. Results show that this new memory manager has higher performance, especially for several programs that have much more memory management operations. From the above discussion, this memory manager supports the non-blocking synchronization of software transactional memory system, and improves the performance of the system.
Keywords/Search Tags:multi-core processor, software transacitonal memory, non-blocking synchronization, memory manage, memory allocation, garbage collection
PDF Full Text Request
Related items