Computing Reviews
Today's Issue Hot Topics Search Browse Recommended My Account Log In
Review Help
Search
JThread, a deadlock-free mutex library
Grande J., Boudol G., Serrano M.  PPDP 2015 (Proceedings of the 17th International Symposium on Principles and Practice of Declarative Programming, Siena, Italy,  Jul 14-16, 2015) 149-160. 2015. Type: Proceedings
Date Reviewed: Aug 12 2015

Toilers in the orchards of multi-threaded programming can only reap the fruits of concurrent execution through the hard work of access synchronization. This paper describes the jThread library, designed to simplify correct synchronization and enhance concurrency. The library extracts modest execution costs that would most likely be covered by reliable and improved concurrent performance.

The library’s basic mechanism is the mutex, and its basic policy is to prevent and avoid deadlocks. Group locking provides prevention: all necessary mutexes are acquired at the same time, or none are. Because determining necessary mutexes may be difficult or impossible in dynamic or modular environments, the library provides regions as an abstraction of necessary mutex groups. A variant of Lamport’s bakery algorithm manages competition among regions. The appendices provide a formal definition of jThread mechanisms and a proof of non-starvation. The library has been implemented in a shared-store, multi-threaded scheme variant, and is applicable to host languages--Java, for example--without gotos and with block-structured critical sections.

Acquisition micro-benchmarks show jThread operations are from three to 50 times more expensive than basic mutex operations, which is not surprising given jThread operation complexity. Slightly more involved micro-benchmarks show essentially identical performance between jThread and basic mutexes. Comparisons between production code (web servers and MP3 players) show similar results.

Readers should have some familiarity with concurrency control in programming languages and operating systems. The bibliography is necessarily selective and surprisingly eclectic, but nevertheless relevant. The paper is well written and reads smoothly, for the most part.

Reviewer:  R. Clayton Review #: CR143686 (1511-0959)
Bookmark and Share
 
Concurrent Programming (D.1.3 )
 
 
Concurrent Programming Structures (D.3.3 ... )
 
 
Mutual Exclusion (D.4.1 ... )
 
 
Threads (D.4.1 ... )
 
Would you recommend this review?
yes
no
Other reviews under "Concurrent Programming": Date
Java threads and the concurrency utilities
Friesen J.,  Apress, Berkeley, CA, 2015. 200 pp. Type: Book (978-1-484216-99-6)
Oct 7 2016
Protocol-based verification of message-passing parallel programs
López H., Marques E., Martins F., Ng N., Santos C., Vasconcelos V., Yoshida N.  OOPSLA 2015 (Proceedings of the 2015 ACM SIGPLAN International Conference on Object-Oriented Programming, Systems, Languages, and Applications, Pittsburgh, PA,  Oct 25-30, 2015) 280-298, 2015. Type: Proceedings
Jun 21 2016
Parallel optimal pairwise biological sequence comparison: algorithms, platforms, and classification
Sandes E., Boukerche A., de Melo A.  ACM Computing Surveys 48(4): 1-36, 2016. Type: Article
Apr 26 2016
more...

E-Mail This Printer-Friendly
Send Your Comments
Contact Us
Reproduction in whole or in part without permission is prohibited.   Copyright © 2000-2018 ThinkLoud, Inc.
Terms of Use
| Privacy Policy