Teaching Software Transactional Memory in Concurrency Courses with Clojure and Java']Java

被引:0
作者
Tomeu, Antonio J. [1 ]
Salguero, Alberto G. [1 ]
Capel, Manuel, I [2 ]
机构
[1] Univ Cadiz, Dept Ingn Informat, Puerto Real 11519, Spain
[2] Univ Granada, Coll Informat & Telecommun, Granada 18071, Spain
来源
EURO-PAR 2017: PARALLEL PROCESSING WORKSHOPS | 2018年 / 10659卷
关键词
Clojure; Concurrency; !text type='Java']Java[!/text; Locks; Mutual exclusion; Threads; Transactions; Software Transactional Memory; Performance;
D O I
10.1007/978-3-319-75178-8_22
中图分类号
TP301 [理论、方法];
学科分类号
081202 ;
摘要
In the field of concurrency and parallelism, it is known that the use of lock-based synchronization mechanisms limits the programming efficiency of concurrent applications and reveals problems in thread synchronization. Software Transactional Memory (STM) is a consolidated concurrency control mechanism that may be considered as an alternative to lock-based constructs for programming critical software, although STM is still not fully accepted as a programming model for the industry. It is our opinion that STM programming must be more emphasized in undergraduate courses on concurrency and parallelism. In this paper we propose an academic experience regarding the introduction of STM programming in concurrency courses by using the Clojure language as the common vehicle for teaching Concurrent Programming Java, the most popular and extended programming language for teaching concurrency, becomes a second language in our course, and thus our students can take advantage of Clojure API which is defined in Java in order to simplify the development of programming, lectures and assignments.
引用
收藏
页码:266 / 277
页数:12
相关论文
共 20 条
[1]   Practical Experiences with Java']Java Software Transactional Memory [J].
Brevnov, Evgueni ;
Dolgov, Yuri ;
Kuznetsov, Boris ;
Yershov, Dmitry ;
Shakin, Vyacheslav ;
Chen, Dong-Yuan ;
Menon, Vijay ;
Srinivas, Suresh .
PPOPP'08: PROCEEDINGS OF THE 2008 ACM SIGPLAN SYMPOSIUM ON PRINCIPLES AND PRACTICE OF PARALLEL PROGRAMMING, 2008, :287-288
[2]   Executing Java']Java programs with transactional memory [J].
Carlstrom, Brian D. ;
Chung, JaeWoong ;
Chafi, Hassan ;
McDonald, Austen ;
Minh, Chi Cao ;
Hammond, Lance ;
Kozyrakis, Christos ;
Olukotun, Kunle .
SCIENCE OF COMPUTER PROGRAMMING, 2006, 63 (02) :111-129
[3]   Software Transactional Memory: Why is it Only a Research Toy? [J].
Cascaval, Calin ;
Blundell, Colin ;
Michael, Maged ;
Cain, Harold W. ;
Wu, Peng ;
Chiras, Stefanie ;
Chatterjee, Siddhartha .
COMMUNICATIONS OF THE ACM, 2008, 51 (11) :40-46
[4]   Efficient support for in-place metadata in Java']Java software transactional memory [J].
Dias, Ricardo J. ;
Vale, Tiago M. ;
Lourenco, Joao M. .
CONCURRENCY AND COMPUTATION-PRACTICE & EXPERIENCE, 2013, 25 (17) :2394-2411
[5]  
Diegues N., 2012, RT22012
[6]  
Fernandez J., 2012, JAVA 7 CONCURRENCY C
[7]  
Gosling J., 2015, JAVA SE, V8
[8]   A flexible framework for implementing software transactional memory [J].
Herlihy, Maurice ;
Luchangco, Victor ;
Moir, Mark .
ACM SIGPLAN NOTICES, 2006, 41 (10) :253-261
[9]  
ISO, 2016, WORK DRAFT STAND PRO
[10]  
Malde K, CAN SOFTWARE T MEMOR