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,...
Gespeichert in:
Hauptverfasser: | , , |
---|---|
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&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 |