Verifying Robustness of Event-Driven Asynchronous Programs Against Concurrency

被引:6
作者
Bouajjani, Ahmed [1 ]
Emmi, Michael [2 ]
Enea, Constantin [1 ]
Ozkan, Burcu Kulahcioglu [3 ]
Tasiran, Serdar [3 ]
机构
[1] Univ Paris Diderot, Paris, France
[2] Nokia Bell Labs, Murray Hill, NJ USA
[3] Koc Univ, Istanbul, Turkey
来源
PROGRAMMING LANGUAGES AND SYSTEMS (ESOP 2017): 26TH EUROPEAN SYMPOSIUM ON PROGRAMMING | 2017年 / 10201卷
基金
欧洲研究理事会;
关键词
RACE DETECTION; ATOMICITY; DETERMINISM; CHECKING;
D O I
10.1007/978-3-662-54434-1_7
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
We define a correctness criterion, called robustness against concurrency, for a class of event-driven asynchronous programs that are at the basis of modern UI frameworks in Android, iOS, and Javascript. A program is robust when all possible behaviors admitted by the program under arbitrary procedure and event interleavings are admitted even if asynchronous procedures (respectively, events) are assumed to execute serially, one after the other, accessing shared memory in isolation. We characterize robustness as a conjunction of two correctness criteria: event-serializability (i.e., events can be seen as atomic) and event-determinism (executions within each event are insensitive to the interleavings between concurrent tasks dynamically spawned by the event). Then, we provide efficient algorithms for checking these two criteria based on polynomial reductions to reachability problems in sequential programs. This result is surprising because it allows to avoid explicit handling of all concurrent executions in the analysis, which leads to an important gain in complexity. We demonstrate via case studies on Android apps that the typical mistakes programmers make are captured as robustness violations, and that violations can be detected efficiently using our approach.
引用
收藏
页码:170 / 200
页数:31
相关论文
共 29 条
[1]   Model-checking of correctness conditions for concurrent objects [J].
Alur, R ;
McMillan, K ;
Peled, D .
INFORMATION AND COMPUTATION, 2000, 160 (1-2) :167-188
[2]  
Arzt S, 2013, LECT NOTES COMPUT SC, V8174, P364, DOI 10.1007/978-3-642-40787-1_26
[3]  
Bielik P, 2015, ACM SIGPLAN NOTICES, V50, P332, DOI [10.1145/2858965.2814303, 10.1145/2814270.2814303]
[4]  
Bocchino Robert L, 2009, 1 USENIX C HOT TOP P
[5]  
Bocchino RL, 2009, OOPSLA 2009, CONFERENCE PROCEEDINGS, P97
[6]  
Bouajjani A, 2013, LECT NOTES COMPUT SC, V7792, P290, DOI 10.1007/978-3-642-37036-6_17
[7]   Asserting and Checking Determinism for Multithreaded Programs (Reprinted) [J].
Burnim, Jacob ;
Sen, Koushik .
COMMUNICATIONS OF THE ACM, 2010, 53 (06) :97-105
[8]  
Emmi M., 2012, FDN SOFTWARE ENG
[9]  
Emmi M., 2014, P INT SPIN S MOD CHE, P20
[10]   Delay-Bounded Scheduling [J].
Emmi, Michael ;
Qadeer, Shaz ;
Rakamaric, Zvonimir .
POPL 11: PROCEEDINGS OF THE 38TH ANNUAL ACM SIGPLAN-SIGACT SYMPOSIUM ON PRINCIPLES OF PROGRAMMING LANGUAGES, 2011, :411-422