• No results found

Hiding Backtracking Operations in Software Model Checking from the Environment

N/A
N/A
Protected

Academic year: 2021

Share "Hiding Backtracking Operations in Software Model Checking from the Environment"

Copied!
2
0
0

Loading.... (view fulltext now)

Full text

(1)

http://www.diva-portal.org

Postprint

This is the accepted version of a paper published in Third DIKU-IST workshop, Roskilde, Denmark.

This paper has been peer-reviewed but does not include the final publisher proof-corrections or journal

pagination.

Citation for the original published paper (version of record):

Artho, C., Leungwattanakit, W., Hagiya, M., Tanabe, Y., Shibayama, E. (2007)

Hiding Backtracking Operations in Software Model Checking from the Environment.

Third DIKU-IST workshop, Roskilde, Denmark

Access to the published version may require subscription.

N.B. When citing this work, cite the original published paper.

Permanent link to this version:

(2)

Hiding Backtracking Operations in Software Model Checking from the

Environment

Cyrille Artho, Yoshinori Tanabe, Etsuya Shibayama

National Institute of Advanced Industrial Science and Technology (AIST), Tokyo, Japan

Watcharin Leungwattanakit, Masami Hagiya

University of Tokyo, Tokyo, Japan

Most non-trivial applications use some form of input/output (I/O), such as network communication. When model checking such an application, a simple state space exploration scheme is not applicable: Back-tracking during the state space search causes states to be revisited, and I/O operations to be repeated. Be-cause I/O operations are visible by the environment, software model checking needs to encapsulate such op-erations in a caching layer that hides such actions. In order to mediate between the model checker and the environment, the cache layer has to pair request and response messages correctly. It also has to distinguish between complete and partial messages. Finally, oper-ations that open or close communication channels re-quire special treatment as well. —

Software model checkers [3] cannot handle net-worked programs, which limits their applicability. Program transformations allow networked applica-tions to be model checked on a single-process model checker [1]. However, the large number of thread inter-leavings limits scalability. A different approach con-sists of mediating between backtracking state space ex-ploration of the model checker, and the linear time line of its environment [2]. This approach caches any oper-ations that have an externally visible impact, in partic-ular, network communication.

Previous work has assigned a mapping of each com-munication state to a previously seen comcom-munication trace. Each operation is mapped to a history of known operations, extending that history (“cache”) if new states are explored. Whenever a mismatch between states is encountered after backtracking, network com-munication inside the program depends on its thread schedule. Such programs cannot be verified with our approach; they are also often faulty.

Our approach is applicable to any program where the result of a client request does not depend on ac-tions of other client processes. This includes most In-ternet services, such as time servers, echo servers, FTP, and HTTP servers. Compared to other approaches [1], our caching approach is orders of magnitudes faster, because communication serialization inherently com-prises an efficient partial-order reduction.

Recent work has shown that mapping states to traces is not sufficient. For more complex interactive protocols, requests also have to be mapped to their re-sponse. Our implementation achieves this, and also al-lows for requests and responses to span several mes-sages. Furthermore, we also cache actions that manip-ulate communication channels themselves (opening or closing them). This hides backtracking of externally visible actions effectively from programs running out-side the model checker, and makes model checking of programs that interact with their environment feasible in a scalable way.

References

[1] C. Artho and P. Garoche. Accurate centralization for applying model checking on networked appli-cations. In Proc. ASE 2006, Tokyo, Japan, 2006. [2] C. Artho, B. Zweimüller, A. Biere, E. Shibayama,

and S. Honiden. Efficient model checking of ap-plications with input/output. Post-proceedings of

Eurocast 2007, 2007. To be published.

[3] W. Visser, K. Havelund, G. Brat, S. Park, and F. Lerda. Model checking programs. Auto-mated Software Engineering Journal, 10(2):203–

References

Related documents

This thesis examines the effect of procedure summaries on the running time of a single model checker, Java PathFinder, on a selected suite of experiment programs used in

In the framework of regular model checking, we represent a global state. of this system using a word over the alphabet  = fN;

När resultatet av enkäten studeras så visar det att många av orden har blivit graderade med negativt samtidigt som en stor del av eleverna uppger att de ibland eller ofta brukar

Detta stödjer den uppfattning vi hade sedan innan  om att målgruppen sällan interagerar med filmer på sociala medier, vilket gör det viktigt att skapa ett  koncept som inte

Improved accessibility with public transport has a positive effect on real estate prices, and the effect is larger for both apartments and single-family houses close to the

Another way of explaining their resistance could be that the search features have a higher interaction cost than navigation (Budiu, 2014). This is acknowledged by one of

teknologiska utvecklingen bidragit till att nya företag etablerats på marknaden, samt hur Bzzt som substitut påverkar traditionella taxiföretag.. Vi har genomfört en

F¨or externa axlar anv¨ands normalt inte f¨orfilter, och vi tar d¨arf¨or inte h¨ansyn till dessa i denna rapport.. Den inre hastighetsloopen regleras av en PI-regulator med