A Study of Concurrent Path Selection Problem in Concurrent Java Program
碩士 === 國立交通大學 === 資訊工程系所 === 93 === In concurrent Java program, the main() method may create one or more threads to execute the run() methods of active objects. Thus, the run() methods would be executed parallel with the main() method. There are many different combinations of paths that may be execu...
Main Authors: | , |
---|---|
Other Authors: | |
Format: | Others |
Language: | zh-TW |
Published: |
2005
|
Online Access: | http://ndltd.ncl.edu.tw/handle/07989078574054252123 |
id |
ndltd-TW-093NCTU5392070 |
---|---|
record_format |
oai_dc |
spelling |
ndltd-TW-093NCTU53920702016-06-06T04:10:45Z http://ndltd.ncl.edu.tw/handle/07989078574054252123 A Study of Concurrent Path Selection Problem in Concurrent Java Program 並行Java程式測試環境中並行路徑選取方法之研究 Wei-Shiau Suen 孫維孝 碩士 國立交通大學 資訊工程系所 93 In concurrent Java program, the main() method may create one or more threads to execute the run() methods of active objects. Thus, the run() methods would be executed parallel with the main() method. There are many different combinations of paths that may be executed parallel, and a combination is named a concurrent path. In order to ensure the correctness of the main() method, it is necessary to verify the correctness of all different concurrent paths. In concurrent program testing, it is a very important issue how we select the fewest concurrent paths to test. Unfortunately, there is not a systematic measure to solve this problem. So this research is about to propose one systematic measure to solve this problem. If we want to test all execution behaviors of a concurrent program with fewest concurrent paths, we need to ensure every run() path and every inter-thread interaction could be verified during testing. In this research, we propose that there might exist data-flows between two paths belonging to different run() methods when they call the same shared object’s functions. We also notice that a path may call different shared objects’ functions. Thus one directly data-flow may affect another. This is so-called indirectly data-flow. We can find all combinations of paths which have interactions by using data-flows, and all combinations that have been found should to be tested. These combinations and other paths without shared objects should to be tested. The problem of finding the fewest path combinations is equivalent to the graph coloring problem. It is impossible to find the optimal solution in polynomial time. Thus, this research adopts the look-ahead policy of the Gaming Tree mechanism to find the concurrent paths, and it has time complexity of O(N^4). Via various examples, it shows that the proposed mechanism in this research can find the optimal solution for this problem quickly and ensures the practicality and validity. Chyan-Goei Chung 鍾乾癸 2005 學位論文 ; thesis 73 zh-TW |
collection |
NDLTD |
language |
zh-TW |
format |
Others
|
sources |
NDLTD |
description |
碩士 === 國立交通大學 === 資訊工程系所 === 93 === In concurrent Java program, the main() method may create one or more threads to execute the run() methods of active objects. Thus, the run() methods would be executed parallel with the main() method. There are many different combinations of paths that may be executed parallel, and a combination is named a concurrent path. In order to ensure the correctness of the main() method, it is necessary to verify the correctness of all different concurrent paths. In concurrent program testing, it is a very important issue how we select the fewest concurrent paths to test. Unfortunately, there is not a systematic measure to solve this problem. So this research is about to propose one systematic measure to solve this problem.
If we want to test all execution behaviors of a concurrent program with fewest concurrent paths, we need to ensure every run() path and every inter-thread interaction could be verified during testing. In this research, we propose that there might exist data-flows between two paths belonging to different run() methods when they call the same shared object’s functions. We also notice that a path may call different shared objects’ functions. Thus one directly data-flow may affect another. This is so-called indirectly data-flow. We can find all combinations of paths which have interactions by using data-flows, and all combinations that have been found should to be tested. These combinations and other paths without shared objects should to be tested.
The problem of finding the fewest path combinations is equivalent to the graph coloring problem. It is impossible to find the optimal solution in polynomial time. Thus, this research adopts the look-ahead policy of the Gaming Tree mechanism to find the concurrent paths, and it has time complexity of O(N^4).
Via various examples, it shows that the proposed mechanism in this research can find the optimal solution for this problem quickly and ensures the practicality and validity.
|
author2 |
Chyan-Goei Chung |
author_facet |
Chyan-Goei Chung Wei-Shiau Suen 孫維孝 |
author |
Wei-Shiau Suen 孫維孝 |
spellingShingle |
Wei-Shiau Suen 孫維孝 A Study of Concurrent Path Selection Problem in Concurrent Java Program |
author_sort |
Wei-Shiau Suen |
title |
A Study of Concurrent Path Selection Problem in Concurrent Java Program |
title_short |
A Study of Concurrent Path Selection Problem in Concurrent Java Program |
title_full |
A Study of Concurrent Path Selection Problem in Concurrent Java Program |
title_fullStr |
A Study of Concurrent Path Selection Problem in Concurrent Java Program |
title_full_unstemmed |
A Study of Concurrent Path Selection Problem in Concurrent Java Program |
title_sort |
study of concurrent path selection problem in concurrent java program |
publishDate |
2005 |
url |
http://ndltd.ncl.edu.tw/handle/07989078574054252123 |
work_keys_str_mv |
AT weishiausuen astudyofconcurrentpathselectionprobleminconcurrentjavaprogram AT sūnwéixiào astudyofconcurrentpathselectionprobleminconcurrentjavaprogram AT weishiausuen bìngxíngjavachéngshìcèshìhuánjìngzhōngbìngxínglùjìngxuǎnqǔfāngfǎzhīyánjiū AT sūnwéixiào bìngxíngjavachéngshìcèshìhuánjìngzhōngbìngxínglùjìngxuǎnqǔfāngfǎzhīyánjiū AT weishiausuen studyofconcurrentpathselectionprobleminconcurrentjavaprogram AT sūnwéixiào studyofconcurrentpathselectionprobleminconcurrentjavaprogram |
_version_ |
1718294348278267904 |