DocumentCode :
1566666
Title :
Verifiable concurrent programming using concurrency controllers
Author :
Betin-Can, Aysu ; Bultan, Tevfik
Author_Institution :
Dept. of Comput. Sci., California Univ., Santa Barbara, CA, USA
fYear :
2004
Firstpage :
248
Lastpage :
257
Abstract :
We present a framework for verifiable concurrent programming in Java based on a design pattern for concurrency controllers. Using this pattern, a programmer can write concurrency controller classes defining a synchronization policy by specifying a set of guarded commands and without using any of the error-prone synchronization primitives of Java. We present a modular verification approach that exploits the modularity of the proposed pattern, i.e., decoupling of the controller behavior from the threads that use the controller. To verify the controller behavior (behavior verification) we use symbolic and infinite state model checking techniques, which enable verification of controllers with parameterized constants, unbounded variables and arbitrary number of user threads. To verify that the threads use a controller in the specified manner (interface verification) we use explicit state model checking techniques, which allow verification of arbitrary thread implementations without any restrictions. We show that the correctness of the user threads can be verified using the concurrency controller interfaces as stubs, which improves the efficiency of the interface verification significantly. We also show that the concurrency controllers can be automatically optimized using the specific notification pattern. We demonstrate the effectiveness of our approach on a Concurrent Editor implementation which consists of 2800 lines of Java code with remote procedure calls and complex synchronization constraints.
Keywords :
Java; concurrency control; distributed programming; multi-threading; object-oriented programming; program verification; remote procedure calls; synchronisation; user interfaces; Concurrent Editor implementation; Java code; Java language; arbitrary thread implementation verification; behavior verification; complex synchronization constraints; concurrency controller interfaces; concurrency controllers; controller behavior; controller verification; design pattern; explicit state model checking; infinite state model checking; interface verification; modular verification; notification pattern; parameterized constants; remote procedure calls; symbolic model checking; symbolic state model checking; synchronization policy; unbounded variables; user thread correctness; verifiable concurrent programming; Automatic control; Computer science; Concurrency control; Concurrent computing; Condition monitoring; Error correction; Java; Programming profession; Safety; Yarn;
fLanguage :
English
Publisher :
ieee
Conference_Titel :
Automated Software Engineering, 2004. Proceedings. 19th International Conference on
ISSN :
1938-4300
Print_ISBN :
0-7695-2131-2
Type :
conf
DOI :
10.1109/ASE.2004.1342742
Filename :
1342742
Link To Document :
بازگشت