Application of Java-based Pointcuts in Aspect Oriented Programming (AOP) for Data Race Detection
Wide applicability of concurrent programming
practices in developing various software applications leads to
different concurrency errors amongst which data race is the most
important. Java provides greatest support for concurrent
programming by introducing various concurrency packages. Aspect
oriented programming (AOP) is modern programming paradigm
facilitating the runtime interception of events of interest and can be
effectively used to handle the concurrency problems. AspectJ being
an aspect oriented extension to java facilitates the application of
concepts of AOP for data race detection. Volatile variables are
usually considered thread safe, but they can become the possible
candidates of data races if non-atomic operations are performed
concurrently upon them. Various data race detection algorithms have
been proposed in the past but this issue of volatility and atomicity is
still unaddressed. The aim of this research is to propose some
suggestions for incorporating certain conditions for data race
detection in java programs at the volatile fields by taking into account
support for atomicity in java concurrency packages and making use
of pointcuts. Two simple test programs will demonstrate the results
of research. The results are verified on two different Java
Development Kits (JDKs) for the purpose of comparison.
[1] "Oracle Solaris Studio 12.2 Thread Analyzer User-s Guide," Internet:
download.oracle.com/docs/cd/E18659_01/pdf/821-2124.pdf [6 Sep.
2010].
[2] S.Savage, M.Burrows, G.Nelson, P.Sobalvarro and T.Anderson,
"Eraser: A Dynamic Data Race Detector for Multithreaded Programs,"
ACM Trans. Computer Systems, Vol.15, No.4, pp. 391-411, 1997.
[3] Eric Bodden and Klaus Havelund, "Aspect-Oriented Race Detection in
Java", IEEE Trans. on Software Engineering, Vol.36, N0.4, July/August
2010.
[4] Eric Bodden and Klaus Havelund, "Racer: Effective Race Detection
Using AspectJ", Proc. Int-l Symp. Software Testing and Analysis, pp.
155-165, July 2008.
[5] J.Harrow, "Runtime Checking of Multithreaded Application with Visual
Threads", SPIN Model Checking and Software Verification, Springer,
pp. 331-342, 2000.
[6] R. O-Callahan and J-D. Choi, "Hybrid Dynamic Data Race Detection",
Proc. ACM SIGPLAN Symp. Principles and Practice of Parallel
Programming, pp. 167-178, 2003.
[7] Pouria Shaker and Dennis K. Peters, "An Introduction to Aspect-
Oriented Software Development", Proc. Newfoundland Electrical and
Computer Engineering Conference, October 2005.
[8] Gregor Kiczales, Erik Hilsdale, Jim Hugunin, Mik Kersten, Jeffrey Palm
and William G. Griswold, "An Overview of AspectJ", ECOOP-01 Proc.
of 15th European Conference on Object Oriented Programming, 2001.
[9] Mayur Hiru Naik, "Effective Static Race Detection for Java", Ph.D
Dissertation, March 2008.
[10] Mayur Naik and Alex Aiken, "Conditional Must Not Aliasing for Static
Race Detection", Proc. of the 34th annual ACM SIGPLAN, 2007.
[1] "Oracle Solaris Studio 12.2 Thread Analyzer User-s Guide," Internet:
download.oracle.com/docs/cd/E18659_01/pdf/821-2124.pdf [6 Sep.
2010].
[2] S.Savage, M.Burrows, G.Nelson, P.Sobalvarro and T.Anderson,
"Eraser: A Dynamic Data Race Detector for Multithreaded Programs,"
ACM Trans. Computer Systems, Vol.15, No.4, pp. 391-411, 1997.
[3] Eric Bodden and Klaus Havelund, "Aspect-Oriented Race Detection in
Java", IEEE Trans. on Software Engineering, Vol.36, N0.4, July/August
2010.
[4] Eric Bodden and Klaus Havelund, "Racer: Effective Race Detection
Using AspectJ", Proc. Int-l Symp. Software Testing and Analysis, pp.
155-165, July 2008.
[5] J.Harrow, "Runtime Checking of Multithreaded Application with Visual
Threads", SPIN Model Checking and Software Verification, Springer,
pp. 331-342, 2000.
[6] R. O-Callahan and J-D. Choi, "Hybrid Dynamic Data Race Detection",
Proc. ACM SIGPLAN Symp. Principles and Practice of Parallel
Programming, pp. 167-178, 2003.
[7] Pouria Shaker and Dennis K. Peters, "An Introduction to Aspect-
Oriented Software Development", Proc. Newfoundland Electrical and
Computer Engineering Conference, October 2005.
[8] Gregor Kiczales, Erik Hilsdale, Jim Hugunin, Mik Kersten, Jeffrey Palm
and William G. Griswold, "An Overview of AspectJ", ECOOP-01 Proc.
of 15th European Conference on Object Oriented Programming, 2001.
[9] Mayur Hiru Naik, "Effective Static Race Detection for Java", Ph.D
Dissertation, March 2008.
[10] Mayur Naik and Alex Aiken, "Conditional Must Not Aliasing for Static
Race Detection", Proc. of the 34th annual ACM SIGPLAN, 2007.
@article{"International Journal of Information, Control and Computer Sciences:57169", author = "Sadaf Khalid and Fahim Arif", title = "Application of Java-based Pointcuts in Aspect Oriented Programming (AOP) for Data Race Detection", abstract = "Wide applicability of concurrent programming
practices in developing various software applications leads to
different concurrency errors amongst which data race is the most
important. Java provides greatest support for concurrent
programming by introducing various concurrency packages. Aspect
oriented programming (AOP) is modern programming paradigm
facilitating the runtime interception of events of interest and can be
effectively used to handle the concurrency problems. AspectJ being
an aspect oriented extension to java facilitates the application of
concepts of AOP for data race detection. Volatile variables are
usually considered thread safe, but they can become the possible
candidates of data races if non-atomic operations are performed
concurrently upon them. Various data race detection algorithms have
been proposed in the past but this issue of volatility and atomicity is
still unaddressed. The aim of this research is to propose some
suggestions for incorporating certain conditions for data race
detection in java programs at the volatile fields by taking into account
support for atomicity in java concurrency packages and making use
of pointcuts. Two simple test programs will demonstrate the results
of research. The results are verified on two different Java
Development Kits (JDKs) for the purpose of comparison.", keywords = "Aspect Bench Compiler (abc), Aspect OrientedProgramming (AOP), AspectJ, Aspects, Concurrency packages,Concurrent programming, Cross-cutting Concerns, Data race,Eclipse, Java, Java Development Kits (JDKs), Pointcuts", volume = "6", number = "1", pages = "61-6", }