Software Transactional Memory for .NET

Amrein, Christoph and Markiewicz, Timothy (2015) Software Transactional Memory for .NET. Bachelor thesis, HSR Hochschule für Technik Rapperswil.

[thumbnail of Software Transactional Memory for .NET.pdf]
Software Transactional Memory for .NET.pdf - Supplemental Material

Download (1MB) | Preview


Classical multi-threaded programming requires explicit synchronization of shared resources, being a highly challenging task for many software developers: On the one hand, identifying shared resources is non-trivial, easily leading to race conditions in case of under-synchronization. On the other hand, synchronization naturally bears the risk of deadlocks and starvation.
Transactional memory is an alternative concept, significantly simplifying concurrent programming. It employs a descriptive programming model using the notion of transactions, inspired by database systems. A transaction constitutes an atomic sequential execution that is automatically isolated to other concurrent transactions. The runtime system guarantees the correct transactional execution, typically by using an optimistic concurrency control scheme.
We have developed a practical transactional memory programming model and runtime system for the .NET framework. Our experimental evaluation shows that the solution is superior to existing .NET transaction frameworks in terms of performance, correctness, and ease of use. Moreover, it employs Intel TSX hardware transactional memory to increase performance. Last but not least, a refactoring tool for Visual Studio C# assists programmers on migrating existing code to the transactional model.

Item Type: Thesis (Bachelor)
Subjects: Topics > Software > Refactoring
Area of Application > Development Tools
Technologies > Programming Languages > C#
Technologies > Frameworks and Libraries > .NET
Metatags > IFS (Institute for Software)
Divisions: Bachelor of Science FHO in Informatik > Bachelor Thesis
Depositing User: HSR Deposit User
Thesis advisor
Bläser, Luc
Date Deposited: 17 Mar 2016 08:49
Last Modified: 17 Mar 2016 08:49

Actions (login required)

View Item
View Item