Thread-Modular Verification for Shared-Memory Programs

Ensuring the reliability of multithreaded software systems is difficult due to the interaction between threads. This paper describes the design and implementation of a static checker for such systems. To avoid considering all possible thread interleavings, the checker uses assumeguarantee reasoning,...

Ausführliche Beschreibung

Gespeichert in:
Bibliographische Detailangaben
Hauptverfasser: Flanagan, Cormac, Freund, Stephen N., Qadeer, Shaz
Format: Buchkapitel
Sprache:eng
Schlagworte:
Online-Zugang:Volltext
Tags: Tag hinzufügen
Keine Tags, Fügen Sie den ersten Tag hinzu!
container_end_page 277
container_issue
container_start_page 262
container_title
container_volume 2305
creator Flanagan, Cormac
Freund, Stephen N.
Qadeer, Shaz
description Ensuring the reliability of multithreaded software systems is difficult due to the interaction between threads. This paper describes the design and implementation of a static checker for such systems. To avoid considering all possible thread interleavings, the checker uses assumeguarantee reasoning, and relies on the programmer to specify an environment assumption that constrains the interaction between threads. Using this environment assumption, the checker reduces the verification of the original multithreaded program to the verification of several sequential programs, one for each thread. These sequential programs are subsequently analyzed using extended static checking techniques (based on verification conditions and automatic theorem proving). Experience indicates that the checker is capable of handling a range of synchronization disciplines. In addition, the required environment assumptions are simple and intuitive for common synchronization idioms.
doi_str_mv 10.1007/3-540-45927-8_19
format Book Chapter
fullrecord <record><control><sourceid>proquest_pasca</sourceid><recordid>TN_cdi_pascalfrancis_primary_14054604</recordid><sourceformat>XML</sourceformat><sourcesystem>PC</sourcesystem><sourcerecordid>EBC3072694_26_273</sourcerecordid><originalsourceid>FETCH-LOGICAL-p310t-d201c39040129b5fd0e112a41b3b0c7115f676b0f57117be7116b5a44e1d5eb73</originalsourceid><addsrcrecordid>eNotUE1PAjEQrZ8RkbtHLh6LM51-0KMxfiUYTUSvTXe3C6vAYrsc-PcWcA4zk_fmvWQeY9cIIwQwt8SVBC6VFYaPHdojNrBmTBncY_aY9VAjciJpT9jlniDSpE5ZDwgEt0bSOetZNVYCEeQFG6T0DblIZAfoMT2dx-Ar_tpWm4WPw68Qm7opfde0q2HdxuHH3MeQ-bBs43b4HttZ9Mt0xc5qv0hh8D_77PPxYXr_zCdvTy_3dxO-JoSOVwKwJAsSUNhC1RUEROElFlRAaRBVrY0uoFZ5N0XIXRfKSxmwUqEw1Gc3B9-1T6Vf1NGvyia5dWyWPm4dSlBS56f7bHS4S5lazUJ0Rdv-JIfgdkk6cjkbt0_N7ZLMAvo3ju3vJqTOhZ2iDKsu-kU59-suxOQIjNBWOqGdMER_Jwpu3A</addsrcrecordid><sourcetype>Index Database</sourcetype><iscdi>true</iscdi><recordtype>book_chapter</recordtype><pqid>EBC3072694_26_273</pqid></control><display><type>book_chapter</type><title>Thread-Modular Verification for Shared-Memory Programs</title><source>Springer Books</source><creator>Flanagan, Cormac ; Freund, Stephen N. ; Qadeer, Shaz</creator><contributor>Le Metayer, Daniel ; Le Métayer, Daniel</contributor><creatorcontrib>Flanagan, Cormac ; Freund, Stephen N. ; Qadeer, Shaz ; Le Metayer, Daniel ; Le Métayer, Daniel</creatorcontrib><description>Ensuring the reliability of multithreaded software systems is difficult due to the interaction between threads. This paper describes the design and implementation of a static checker for such systems. To avoid considering all possible thread interleavings, the checker uses assumeguarantee reasoning, and relies on the programmer to specify an environment assumption that constrains the interaction between threads. Using this environment assumption, the checker reduces the verification of the original multithreaded program to the verification of several sequential programs, one for each thread. These sequential programs are subsequently analyzed using extended static checking techniques (based on verification conditions and automatic theorem proving). Experience indicates that the checker is capable of handling a range of synchronization disciplines. In addition, the required environment assumptions are simple and intuitive for common synchronization idioms.</description><identifier>ISSN: 0302-9743</identifier><identifier>ISBN: 3540433635</identifier><identifier>ISBN: 9783540433637</identifier><identifier>EISSN: 1611-3349</identifier><identifier>EISBN: 9783540459279</identifier><identifier>EISBN: 3540459278</identifier><identifier>DOI: 10.1007/3-540-45927-8_19</identifier><identifier>OCLC: 958521104</identifier><identifier>LCCallNum: QA76.758</identifier><language>eng</language><publisher>Germany: Springer Berlin / Heidelberg</publisher><subject>Applied sciences ; Computer science; control theory; systems ; Exact sciences and technology ; Java Program ; Language theory and syntactical analysis ; Model Check ; Mutual Exclusion ; Parallel Program ; Sequential Program ; Software ; Software engineering ; Theoretical computing</subject><ispartof>Lecture notes in computer science, 2002, Vol.2305, p.262-277</ispartof><rights>Springer-Verlag Berlin Heidelberg 2002</rights><rights>2002 INIST-CNRS</rights><lds50>peer_reviewed</lds50><oa>free_for_read</oa><woscitedreferencessubscribed>false</woscitedreferencessubscribed><relation>Lecture Notes in Computer Science</relation></display><links><openurl>$$Topenurl_article</openurl><openurlfulltext>$$Topenurlfull_article</openurlfulltext><thumbnail>$$Uhttps://ebookcentral.proquest.com/covers/3072694-l.jpg</thumbnail><linktopdf>$$Uhttps://link.springer.com/content/pdf/10.1007/3-540-45927-8_19$$EPDF$$P50$$Gspringer$$H</linktopdf><linktohtml>$$Uhttps://link.springer.com/10.1007/3-540-45927-8_19$$EHTML$$P50$$Gspringer$$H</linktohtml><link.rule.ids>309,310,779,780,784,789,790,793,4050,4051,27925,38255,41442,42511</link.rule.ids><backlink>$$Uhttp://pascal-francis.inist.fr/vibad/index.php?action=getRecordDetail&amp;idt=14054604$$DView record in Pascal Francis$$Hfree_for_read</backlink></links><search><contributor>Le Metayer, Daniel</contributor><contributor>Le Métayer, Daniel</contributor><creatorcontrib>Flanagan, Cormac</creatorcontrib><creatorcontrib>Freund, Stephen N.</creatorcontrib><creatorcontrib>Qadeer, Shaz</creatorcontrib><title>Thread-Modular Verification for Shared-Memory Programs</title><title>Lecture notes in computer science</title><description>Ensuring the reliability of multithreaded software systems is difficult due to the interaction between threads. This paper describes the design and implementation of a static checker for such systems. To avoid considering all possible thread interleavings, the checker uses assumeguarantee reasoning, and relies on the programmer to specify an environment assumption that constrains the interaction between threads. Using this environment assumption, the checker reduces the verification of the original multithreaded program to the verification of several sequential programs, one for each thread. These sequential programs are subsequently analyzed using extended static checking techniques (based on verification conditions and automatic theorem proving). Experience indicates that the checker is capable of handling a range of synchronization disciplines. In addition, the required environment assumptions are simple and intuitive for common synchronization idioms.</description><subject>Applied sciences</subject><subject>Computer science; control theory; systems</subject><subject>Exact sciences and technology</subject><subject>Java Program</subject><subject>Language theory and syntactical analysis</subject><subject>Model Check</subject><subject>Mutual Exclusion</subject><subject>Parallel Program</subject><subject>Sequential Program</subject><subject>Software</subject><subject>Software engineering</subject><subject>Theoretical computing</subject><issn>0302-9743</issn><issn>1611-3349</issn><isbn>3540433635</isbn><isbn>9783540433637</isbn><isbn>9783540459279</isbn><isbn>3540459278</isbn><fulltext>true</fulltext><rsrctype>book_chapter</rsrctype><creationdate>2002</creationdate><recordtype>book_chapter</recordtype><recordid>eNotUE1PAjEQrZ8RkbtHLh6LM51-0KMxfiUYTUSvTXe3C6vAYrsc-PcWcA4zk_fmvWQeY9cIIwQwt8SVBC6VFYaPHdojNrBmTBncY_aY9VAjciJpT9jlniDSpE5ZDwgEt0bSOetZNVYCEeQFG6T0DblIZAfoMT2dx-Ar_tpWm4WPw68Qm7opfde0q2HdxuHH3MeQ-bBs43b4HttZ9Mt0xc5qv0hh8D_77PPxYXr_zCdvTy_3dxO-JoSOVwKwJAsSUNhC1RUEROElFlRAaRBVrY0uoFZ5N0XIXRfKSxmwUqEw1Gc3B9-1T6Vf1NGvyia5dWyWPm4dSlBS56f7bHS4S5lazUJ0Rdv-JIfgdkk6cjkbt0_N7ZLMAvo3ju3vJqTOhZ2iDKsu-kU59-suxOQIjNBWOqGdMER_Jwpu3A</recordid><startdate>2002</startdate><enddate>2002</enddate><creator>Flanagan, Cormac</creator><creator>Freund, Stephen N.</creator><creator>Qadeer, Shaz</creator><general>Springer Berlin / Heidelberg</general><general>Springer Berlin Heidelberg</general><general>Springer</general><scope>FFUUA</scope><scope>IQODW</scope></search><sort><creationdate>2002</creationdate><title>Thread-Modular Verification for Shared-Memory Programs</title><author>Flanagan, Cormac ; Freund, Stephen N. ; Qadeer, Shaz</author></sort><facets><frbrtype>5</frbrtype><frbrgroupid>cdi_FETCH-LOGICAL-p310t-d201c39040129b5fd0e112a41b3b0c7115f676b0f57117be7116b5a44e1d5eb73</frbrgroupid><rsrctype>book_chapters</rsrctype><prefilter>book_chapters</prefilter><language>eng</language><creationdate>2002</creationdate><topic>Applied sciences</topic><topic>Computer science; control theory; systems</topic><topic>Exact sciences and technology</topic><topic>Java Program</topic><topic>Language theory and syntactical analysis</topic><topic>Model Check</topic><topic>Mutual Exclusion</topic><topic>Parallel Program</topic><topic>Sequential Program</topic><topic>Software</topic><topic>Software engineering</topic><topic>Theoretical computing</topic><toplevel>peer_reviewed</toplevel><toplevel>online_resources</toplevel><creatorcontrib>Flanagan, Cormac</creatorcontrib><creatorcontrib>Freund, Stephen N.</creatorcontrib><creatorcontrib>Qadeer, Shaz</creatorcontrib><collection>ProQuest Ebook Central - Book Chapters - Demo use only</collection><collection>Pascal-Francis</collection></facets><delivery><delcategory>Remote Search Resource</delcategory><fulltext>fulltext</fulltext></delivery><addata><au>Flanagan, Cormac</au><au>Freund, Stephen N.</au><au>Qadeer, Shaz</au><au>Le Metayer, Daniel</au><au>Le Métayer, Daniel</au><format>book</format><genre>bookitem</genre><ristype>CHAP</ristype><atitle>Thread-Modular Verification for Shared-Memory Programs</atitle><btitle>Lecture notes in computer science</btitle><seriestitle>Lecture Notes in Computer Science</seriestitle><date>2002</date><risdate>2002</risdate><volume>2305</volume><spage>262</spage><epage>277</epage><pages>262-277</pages><issn>0302-9743</issn><eissn>1611-3349</eissn><isbn>3540433635</isbn><isbn>9783540433637</isbn><eisbn>9783540459279</eisbn><eisbn>3540459278</eisbn><abstract>Ensuring the reliability of multithreaded software systems is difficult due to the interaction between threads. This paper describes the design and implementation of a static checker for such systems. To avoid considering all possible thread interleavings, the checker uses assumeguarantee reasoning, and relies on the programmer to specify an environment assumption that constrains the interaction between threads. Using this environment assumption, the checker reduces the verification of the original multithreaded program to the verification of several sequential programs, one for each thread. These sequential programs are subsequently analyzed using extended static checking techniques (based on verification conditions and automatic theorem proving). Experience indicates that the checker is capable of handling a range of synchronization disciplines. In addition, the required environment assumptions are simple and intuitive for common synchronization idioms.</abstract><cop>Germany</cop><pub>Springer Berlin / Heidelberg</pub><doi>10.1007/3-540-45927-8_19</doi><oclcid>958521104</oclcid><tpages>16</tpages><oa>free_for_read</oa></addata></record>
fulltext fulltext
identifier ISSN: 0302-9743
ispartof Lecture notes in computer science, 2002, Vol.2305, p.262-277
issn 0302-9743
1611-3349
language eng
recordid cdi_pascalfrancis_primary_14054604
source Springer Books
subjects Applied sciences
Computer science
control theory
systems
Exact sciences and technology
Java Program
Language theory and syntactical analysis
Model Check
Mutual Exclusion
Parallel Program
Sequential Program
Software
Software engineering
Theoretical computing
title Thread-Modular Verification for Shared-Memory Programs
url https://sfx.bib-bvb.de/sfx_tum?ctx_ver=Z39.88-2004&ctx_enc=info:ofi/enc:UTF-8&ctx_tim=2024-12-20T20%3A57%3A53IST&url_ver=Z39.88-2004&url_ctx_fmt=infofi/fmt:kev:mtx:ctx&rfr_id=info:sid/primo.exlibrisgroup.com:primo3-Article-proquest_pasca&rft_val_fmt=info:ofi/fmt:kev:mtx:book&rft.genre=bookitem&rft.atitle=Thread-Modular%20Verification%20for%20Shared-Memory%20Programs&rft.btitle=Lecture%20notes%20in%20computer%20science&rft.au=Flanagan,%20Cormac&rft.date=2002&rft.volume=2305&rft.spage=262&rft.epage=277&rft.pages=262-277&rft.issn=0302-9743&rft.eissn=1611-3349&rft.isbn=3540433635&rft.isbn_list=9783540433637&rft_id=info:doi/10.1007/3-540-45927-8_19&rft_dat=%3Cproquest_pasca%3EEBC3072694_26_273%3C/proquest_pasca%3E%3Curl%3E%3C/url%3E&rft.eisbn=9783540459279&rft.eisbn_list=3540459278&disable_directlink=true&sfx.directlink=off&sfx.report_link=0&rft_id=info:oai/&rft_pqid=EBC3072694_26_273&rft_id=info:pmid/&rfr_iscdi=true