Date of Award

Spring 2009

Degree Type

Thesis - Restricted

Degree Name

Master of Science (MS)


Mathematics, Statistics and Computer Science

First Advisor

Brylow, Dennis

Second Advisor

Madiraju, Praveen

Third Advisor

Struble, Craig A.


Transactional memory presents a new concurrency control mechanism to handle synchronization between shared data. Dealing with concurrency issues has always been a difficulty when writing operating system software and using transactions aims to simplify matters. This thesis presents a framework for understanding how interrupt-driven device drivers can benefit from using transactional memory. A method for integrating software transactional memory (STM) into an operating system kernel is also developed and applied. This kernel uses STM over hardware transactional memory (HTM) because HTM requires modifications only implemented in simulated systems. By using STM, it is possible to build upon existing kernels and deploy operating systems onto commodity machines with communication peripherals. At the core is a modernized version of the Embedded Xinu operating system that has been ported to the Intel JA-32 architecture and modified to use a publicly available, production quality compiler and STM library available from Intel Corporation. The implementation of the Embedded Xinu kernel required several modifications to make use of the transactions offered by a library designed for use with user-level threads executing in Linux. Integrating the STM library into the kernel presents several challenges when dealing with a system that allows interrupts to enter at any time. By using transactions in device drivers, synchronization can be performed automatically and with greater granularity than traditional synchronizations methods. This may be used to to reduce the jitter-variations in interrupt handling-<>ccurring in interrupt-driven device drivers when sharing data between the upper and lower halves, however this implementation does not show any conclusive results. This thesis discusses and presents the prototype implementation of "Transactional Xinu." The prototype runs on standard hardware that exists today and provides a framework for future experimentation.