Rok Lenarčič (2009) Software Transactional Memory. EngD thesis.
This thesis presents technology overview of software transactional memory and related technologies. Concurrent programming is one of the hardest tasks a programmer can face. The classic solution is the use of locking, which limits concurrent accesses to shared data structures. Unfortunately, locking suffers from a multitude of problems. Incorrect use of locking or programmer error can cause programs to deadlock or malfunction in unexpected ways. Locking also limits the degree of concurrency in a program. The concept of transactional memory is an attempt, to create a concurrency control mechanism, that is less affected by programmer errors and is easier to use. It allows transactions, a popular concept, when making memory accesses. Transactions guarantee atomicity of whole blocks of instructions making memory accesses. Transactional memory can be implemented in software or hardware. This thesis presents reasons for development of an alternative to locking and the advantages of transactional memory. It describes other mechanisms for concurrency control, software transactional memory general structure and its components. Design problems of software transactional memory, testing methodology and optimizations of software transactional memory are discussed. The thesis wraps up with future outlooks of this technology.
Actions (login required)