GGrantIndex
← Search

Reliable Multithread Software

$200,000FY2001CSENSF

University Of Maryland, College Park, College Park MD

Investigators

Abstract

CCR-0098162 Reliable Multithreaded Software William Pugh Multithreading is useful for providing responsive software, particularly in the face of user input and network connections with unpredictable latency. Multithreading allows transparent use of shared memory multiprocessors (SMPs) and multithreaded uniprocessors (e.g., Sun's MAJC, Alpha-EV8). Unfortunately, writing reliable multithreaded programs is difficult. This research defines a formal semantics for multithreaded Java, and works to understand the interaction of that semantics with the compiler and run-time system. The results of this effort should be transferable to other languages and systems that incorporate threads (e.g., C# and C++ with Pthreads). The research effort also performs software archaeology on existing multithreaded systems, documenting data races that have already been fixed and using dynamic and static tools to search for other potential data races. The effort studies both large open source efforts (e.g., Linux kernel, FreeBSD kernel, Apache, Tomcat) and smaller systems. Education, both at universities and for professionals, will form an important component of this research effort. This effort will both illuminate which concepts and forms of instruction are most effective, and also generate material that can be widely disseminated and used by others in instruction.

View original record on NSF Award Search →