Parameterized Verification of Synchronized Concurrent Programs

· Linköping Studies in Science and Technology. Dissertations · Linköping University Electronic Press
Sách điện tử
192
Trang
Điểm xếp hạng và bài đánh giá chưa được xác minh  Tìm hiểu thêm

Giới thiệu về sách điện tử này

There is currently an increasing demand for concurrent programs. Checking the correctness of concurrent programs is a complex task due to the interleavings of processes. Sometimes, violation of the correctness properties in such systems causes human or resource losses; therefore, it is crucial to check the correctness of such systems. Two main approaches to software analysis are testing and formal verification. Testing can help discover many bugs at a low cost. However, it cannot prove the correctness of a program. Formal verification, on the other hand, is the approach for proving program correctness. Model checking is a formal verification technique that is suitable for concurrent programs. It aims to automatically establish the correctness (expressed in terms of temporal properties) of a program through an exhaustive search of the behavior of the system. Model checking was initially introduced for the purpose of verifying finite‐state concurrent programs, and extending it to infinite‐state systems is an active research area.

In this thesis, we focus on the formal verification of parameterized systems. That is, systems in which the number of executing processes is not bounded a priori. We provide fully-automatic and parameterized model checking techniques for establishing the correctness of safety properties for certain classes of concurrent programs. We provide an open‐source prototype for every technique and present our experimental results on several benchmarks.

First, we address the problem of automatically checking safety properties for bounded as well as parameterized phaser programs. Phaser programs are concurrent programs that make use of the complex synchronization construct of Habanero Java phasers. For the bounded case, we establish the decidability of checking the violation of program assertions and the undecidability of checking deadlock‐freedom. For the parameterized case, we study different formulations of the verification problem and propose an exact procedure that is guaranteed to terminate for some reachability problems even in the presence of unbounded phases and arbitrarily many spawned processes. Second, we propose an approach for automatic verification of parameterized concurrent programs in which shared variables are manipulated by atomic transitions to count and synchronize the spawned processes. For this purpose, we introduce counting predicates that related counters that refer to the number of processes satisfying some given properties to the variables that are directly manipulated by the concurrent processes. We then combine existing works on the counter, predicate, and constrained monotonic abstraction and build a nested counterexample‐based refinement scheme to establish correctness. Third, we introduce Lazy Constrained Monotonic Abstraction for more efficient exploration of well‐structured abstractions of infinite‐state non‐monotonic systems. We propose several heuristics and assess the efficiency of the proposed technique by extensive experiments using our open‐source prototype. Lastly, we propose a sound but (in general) incomplete procedure for automatic verification of safety properties for a class of fault‐tolerant distributed protocols described in the Heard‐Of (HO for short) model. The HO model is a popular model for describing distributed protocols. We propose a verification procedure that is guaranteed to terminate even for unbounded number of the processes that execute the distributed protocol.

Xếp hạng sách điện tử này

Cho chúng tôi biết suy nghĩ của bạn.

Đọc thông tin

Điện thoại thông minh và máy tính bảng
Cài đặt ứng dụng Google Play Sách cho AndroidiPad/iPhone. Ứng dụng sẽ tự động đồng bộ hóa với tài khoản của bạn và cho phép bạn đọc trực tuyến hoặc ngoại tuyến dù cho bạn ở đâu.
Máy tính xách tay và máy tính
Bạn có thể nghe các sách nói đã mua trên Google Play thông qua trình duyệt web trên máy tính.
Thiết bị đọc sách điện tử và các thiết bị khác
Để đọc trên thiết bị e-ink như máy đọc sách điện tử Kobo, bạn sẽ cần tải tệp xuống và chuyển tệp đó sang thiết bị của mình. Hãy làm theo hướng dẫn chi tiết trong Trung tâm trợ giúp để chuyển tệp sang máy đọc sách điện tử được hỗ trợ.