• No results found

Concurrency Bugs: Characterization, Debugging and Runtime Verification

N/A
N/A
Protected

Academic year: 2021

Share "Concurrency Bugs: Characterization, Debugging and Runtime Verification"

Copied!
80
0
0

Loading.... (view fulltext now)

Full text

(1)Mälardalen University Doctoral Dissertation 278. Our work focuses on improving concurrent software reliability via three contributions: 1) An investigation of concurrent software challenges with the aim to help developers (and testers) to better understand concurrency bugs. We propose a classification of concurrency bugs and discuss observable properties of each type of bug. In addition, we identify a number of gaps in the body of knowledge on concurrent software bugs and their debugging. 2) Exploring con-currency related bugs in real-world software with respect to the reproducibility of bugs, severity of their consequence and effort required to fix them. Our findings here is that concurrency bugs are different from other bugs in terms of their fixing time and severity, while they are similar in terms of reproducibility. 3) A model for monitoring concurrency bugs and the implementation and evaluation of a related runtime verification tool to detect the bugs. In general, runtime verification techniques are used to (a) dynamically verify that the observed behaviour matches specified properties and (b) explicitly recognize understandable behaviors in the considered software. Our implemented tool is used to detect concurrency bugs in embedded software and is in its current form tailored for the FreeRTOS operating system. It helps developers and testers to automatically identify concurrency bugs and subsequently helps to reduce their finding and fixing time.. Sara Abbaspour Asadollah CONCURRENCY BUGS. Concurrent software has been increasingly adopted in recent years, mainly due to the introduction of multicore platforms. However, concurrency bugs are still difficult to test and debug due to their complex interactions involving multiple threads (or tasks). Typically, real world concurrent software has huge state spaces. Thus, testing techniques and handling of concurrency bugs need to focus on exposing the bugs in this large space. However, existing solutions typically do not provide debugging information to developers (and testers) for understanding the bugs.. Sara Abbaspour Asadollah has been a Ph.D. student in software testing group at Mälardalen University, Sweden since 2013. In 2016 she defended her Licentiate thesis entitled “Bugs and Debugging of Concurrent and Multicore Software”. She received her Master’s degree in Software Engineering at Faculty of Computer Science and Information, University of Malaya, Malaysia in 2012. Her main research interests include debugging, testing and runtime verification of concurrent, parallel and multicore software with a focus on concurrency bugs. She also has work experience in various aspects of industrial environment such as mobile development systems, multimedia technologies and E-Learning application, RFID and smart cards technologies.. ISBN 978-91-7485-412-1 ISSN 1651-4238. 2018. Address: P.O. Box 883, SE-721 23 Västerås. Sweden Address: P.O. Box 325, SE-631 05 Eskilstuna. Sweden E-mail: info@mdh.se Web: www.mdh.se. Concurrency Bugs Characterization, Debugging and Runtime Verification Sara Abbaspour Asadollah.

(2)  

(3) 

(4)  

(5)  

(6)   .   

(7)     .

(8)  !"#$. .  

(9)   

(10)    

(11) 

(12) .

(13) !"

(14) #$%%"&$'( )**(+,+(( (-,(+. 

(15)  %(3ULQW$%6WRFNKROP2 .

(16)  

(17) 

(18)  

(19)  

(20)   .    !""#$%"#$& $" #$'$($"#$. "))*+",. "- .

(21) - , 

(22) / .01 //    - /

(23) - 2. 

(24)   -*

(25)  "- .

(26) 01

(27).  

(28)  & 

(29) / 3, -

(30) --.. 00 

(31) / 01  

(32) /  4 3 .) 56&6775

(33) 8**& ,1/-&' 9 (-+ **. :"3

(34)  0 #+ &

(35) 

(36) 0. "- .

(37) 01

(38).  

(39)  & 

(40) / 3, -

(41) -.

(42) ")3  3+ 0; ,) 

(43) 3 

(44) /* 

(45)  3  &.

(46) + , 

(47) +3

(48)  0 .+

(49) 3 *0.!; &3 3+ 3)+/ 

(50) 

(51) 00

(52) 3+   )+/+ ,

(53) 3.* 2

(54)  3

(55)  

(56) 

(57) /.+

(58) * , <-=#*

(59) 3& ;3 3+ 0; ,,+/   *3 #,+& 

(60) / 3,

(61) >+  , 

(62) /03 3+ 3)+/ 03+  2*

(63) /,  )+/

(64) ,

(65) / *3 !; & 2

(66) 

(67) /+

(68)  *

(69) 3 *

(70)   )+//

(71) /

(72) 0.

(73)    * <   =0+   

(74) /, )+/ + ;- 03+   

(75) .*

(76) / 3 3+  0;   

(77) )

(78) 

(79) 

(80)  ,  3 

(81) )+

(82)  : 6= " 

(83) 

(84) /

(85)  03 3+ 0; 3, / ;

(86) ,, 

(87) ., * * <   =)   +   3 3+ 3)+/? ** 3

(88) 0

(89) 3

(90)  03 3+ 3)+/ 

(91) 3+)  )  ** 

(92) 0 3,* 0)+/$ 

(93) 

(94)  &; 

(95)  

(96) 0 +.) 0/*

(97) , )0- ; /   3 3+ 0; )+/ ,

(98)  )+//

(99) /=2*

(100) /3 3+ 3  )+/

(101)  ; 0; ;

(102) , * 3,  *+3

(103) )

(104) 

(105) 0)+/& 

(106) 0,

(107) 3  >+ 3   00 >+

(108)   0

(109) 2, .+0

(110) 

(111) /,  

(112) ,3 3+ 3)+/ 

(113) 00  0., )+/

(114)  .0,

(115)  0

(116) 2

(117) /

(118) .   

(119) &;,

(120)  ,  

(121) .

(122) 

(123)  .0 *+3

(124) )

(125) 

(126) 7=". 0.

(127) 

(128) / 3 3+ 3)+/ , 

(129) .* . 

(130)    +

(131)  0  + 

(132) .  

(133) 0

(134) 3

(135)    3 , )+/$ / &+ 

(136) .  

(137) 0

(138) 3

(139)   3,

(140) >+  + <= .

(141) 3 

(142) 0,, )   ) ,

(143) + .3,  * 3

(144) 0

(145)  ** 

(146)    <)= 2*

(147) 3

(148)   3/

(149) @  +   )  ) ,

(150) 

(151)  ,  3 

(152)   0; +

(153) .* .  

(154) +   33 3+ 3)+/

(155)  .)  0;   

(156) 

(157) 

(158) 3+ 0.

(159)  0, ( # * 

(160) / .$, * *     +.

(161) 3

(162)  

(163) 0 3 3+ 3 )+/   +) >+  , *   +3  ,

(164)  0

(165) 

(166) /   0

(167) 2

(168) / 

(169) . . $ AA64B466 $ 6CB647.

(170)

(171)

(172)

(173)

(174)

(175)

(176)

(177)

(178)

(179)

(180)

(181)

(182)

(183)

(184)

(185)

(186)

(187)

(188)

(189)

(190)

(191)

(192)

(193)

(194)

(195)

(196)

(197)

(198)

(199)

(200)

(201)

(202)

(203)

(204)

(205)

(206)

(207)

(208)

(209)

(210)

(211)

(212)

(213)

(214)

(215)

(216)

(217)

(218)

(219)

(220)

(221)

(222)

(223)

(224)

(225)

(226)

(227)

(228)

(229)

(230)

(231)

(232)

(233)

(234)

(235)

(236)

(237)

(238)

(239)

(240)

(241)

(242)

(243)

(244)

(245)

References

Related documents

The methods chosen for the experiment are technical review, checklist based inspection and perspective based inspection (described in section 2). The reason for choosing

In the future work, empirical research, including experiment results, will be used for calibration and validation of simulation models, with focus on using simulation as a method

BugsCEP consists of a reference database of ecology and distribution data for over 5 800 taxa, and includes temperature tolerance data for 436 species.. It also contains abundance

There was a clear opinion from the scientific presenters that the attention on the presentation and the understanding of the shown material was enhanced by the techniques used in

I det första kapitlet utmärker sig DMarinO genom att ha nio helt unika sidor där framförallt den marina miljön och de marina resursernas rättsliga grunder behandlas. DMarkO och

Kan vilseledande skydd av datorer eller nätverk av datorer, i förhållande till konventionellt skydd, bidra till ökad informationssäkerhet för Försvarsmakten och i sådant fall

‘Entering into Preschool Documentation Traditions’ introduces Swedish traditions and current ways of doing documentation, from child observation to

Det beror bland annat på orsaker som är kopplade till kunden (svårigheter att fylla i ansökan, fördröjning vid komplettering), handläggningsprocessen, kunskap