Software Model Checking for Memory Consistency Verification
Optimization transformations performed by a compiler may violate memory consistency requirements for a multithreaded program. This leads to errors, when the program behavior will differ from expected. The memory consistency requirements for a particular programming language are called the memory mod...
Saved in:
| Published in: | Programming and computer software Vol. 51; no. 5; pp. 305 - 313 |
|---|---|
| Main Authors: | , , , |
| Format: | Journal Article |
| Language: | English |
| Published: |
Moscow
Pleiades Publishing
01.10.2025
Springer Nature B.V |
| Subjects: | |
| ISSN: | 0361-7688, 1608-3261 |
| Online Access: | Get full text |
| Tags: |
Add Tag
No Tags, Be the first to tag this record!
|
| Abstract | Optimization transformations performed by a compiler may violate memory consistency requirements for a multithreaded program. This leads to errors, when the program behavior will differ from expected. The memory consistency requirements for a particular programming language are called the memory model. An example of an error of this class may be an incorrect change in the order of execution of instructions, which does not affect the behavior of a single-threaded program, but leads to unpredictable results in the multithreaded case. Such errors are often difficult to detect, as they occur rarely and depend significantly on the hardware and the state of the computer system.
Although there are formal methods for verifying the consistency of shared memory usage, their scalability for industrial software remains a major challenge. To verify multithreaded programs, the MCC tool was previously proposed, which used a simple type of static analysis. In this article, we present a modification of the MCC tool, which implements a model verification method to verify the correctness of memory access consistency.
The proposed method combines the methods of generating test programs and the method of static program analysis. The OTK tool is used to generate test programs. For static analysis, a modified version of the MCC tool is used, which checks all possible execution options for the generated test program, regardless of the specifics of a particular hardware. The tool was tested on an ARK industrial virtual machine and successfully identified two real errors in compiler optimizations. |
|---|---|
| AbstractList | Optimization transformations performed by a compiler may violate memory consistency requirements for a multithreaded program. This leads to errors, when the program behavior will differ from expected. The memory consistency requirements for a particular programming language are called the memory model. An example of an error of this class may be an incorrect change in the order of execution of instructions, which does not affect the behavior of a single-threaded program, but leads to unpredictable results in the multithreaded case. Such errors are often difficult to detect, as they occur rarely and depend significantly on the hardware and the state of the computer system.
Although there are formal methods for verifying the consistency of shared memory usage, their scalability for industrial software remains a major challenge. To verify multithreaded programs, the MCC tool was previously proposed, which used a simple type of static analysis. In this article, we present a modification of the MCC tool, which implements a model verification method to verify the correctness of memory access consistency.
The proposed method combines the methods of generating test programs and the method of static program analysis. The OTK tool is used to generate test programs. For static analysis, a modified version of the MCC tool is used, which checks all possible execution options for the generated test program, regardless of the specifics of a particular hardware. The tool was tested on an ARK industrial virtual machine and successfully identified two real errors in compiler optimizations. Optimization transformations performed by a compiler may violate memory consistency requirements for a multithreaded program. This leads to errors, when the program behavior will differ from expected. The memory consistency requirements for a particular programming language are called the memory model. An example of an error of this class may be an incorrect change in the order of execution of instructions, which does not affect the behavior of a single-threaded program, but leads to unpredictable results in the multithreaded case. Such errors are often difficult to detect, as they occur rarely and depend significantly on the hardware and the state of the computer system.Although there are formal methods for verifying the consistency of shared memory usage, their scalability for industrial software remains a major challenge. To verify multithreaded programs, the MCC tool was previously proposed, which used a simple type of static analysis. In this article, we present a modification of the MCC tool, which implements a model verification method to verify the correctness of memory access consistency.The proposed method combines the methods of generating test programs and the method of static program analysis. The OTK tool is used to generate test programs. For static analysis, a modified version of the MCC tool is used, which checks all possible execution options for the generated test program, regardless of the specifics of a particular hardware. The tool was tested on an ARK industrial virtual machine and successfully identified two real errors in compiler optimizations. |
| Author | Zelenov, S. V. Petrenko, A. K. Mutilin, V. S. Andrianov, P. S. |
| Author_xml | – sequence: 1 givenname: P. S. orcidid: 0000-0002-6855-7919 surname: Andrianov fullname: Andrianov, P. S. email: andrianov@ispras.ru organization: Ivannikov Institute for System Programming, Russian Academy of Sciences – sequence: 2 givenname: S. V. orcidid: 0000-0003-0446-0541 surname: Zelenov fullname: Zelenov, S. V. email: zelenov@ispras.ru organization: Ivannikov Institute for System Programming, Russian Academy of Sciences – sequence: 3 givenname: V. S. orcidid: 0000-0003-3097-8512 surname: Mutilin fullname: Mutilin, V. S. email: mutilin@ispras.ru organization: Ivannikov Institute for System Programming, Russian Academy of Sciences, Moscow Institute of Physics and Technology (National Research University) – sequence: 4 givenname: A. K. orcidid: 0000-0001-7411-3831 surname: Petrenko fullname: Petrenko, A. K. email: petrenko@ispras.ru organization: Ivannikov Institute for System Programming, Russian Academy of Sciences, Lomonosov Moscow State University, HSE University |
| BookMark | eNp1kE9LAzEUxINUsK1-AG8Lnlfz8m-zeJJFq9Dioep1yaYvdWub1GSL9Nu7pYIH8fCYw_xmHsyIDHzwSMgl0GsALm7mlCsolNZMFpSClidkCIrqnDMFAzI82PnBPyOjlFY9QqkQQ3I7D677MhGzWVjgOqve0X60fpm5ELMZbkLcZ1XwqU0dervP3jC2rrWma4M_J6fOrBNe_OiYvD7cv1SP-fR58lTdTXPLgXc5SKo0a3Qpm0L0Z6WjYBgFaRVaaaxZcFjIwphCKSWwNI1jGsrGMnBOUD4mV8febQyfO0xdvQq76PuXNWeSQ6FLLnoKjpSNIaWIrt7GdmPivgZaHzaq_2zUZ9gxk3rWLzH-Nv8f-gZ4wWkN |
| Cites_doi | 10.1007/978-3-642-22110-1_16 10.1007/978-3-540-73066-8_25 10.1007/978-3-540-73368-3_51 10.1007/978-3-642-14295-6_25 10.1145/3009837.3009838 |
| ContentType | Journal Article |
| Copyright | Pleiades Publishing, Ltd. 2025 ISSN 0361-7688, Programming and Computer Software, 2025, Vol. 51, No. 5, pp. 305–313. © Pleiades Publishing, Ltd., 2025.Russian Text © The Author(s), 2025, published in Programmirovanie, 2025, Vol. 51, No. 5. Pleiades Publishing, Ltd. 2025. |
| Copyright_xml | – notice: Pleiades Publishing, Ltd. 2025 ISSN 0361-7688, Programming and Computer Software, 2025, Vol. 51, No. 5, pp. 305–313. © Pleiades Publishing, Ltd., 2025.Russian Text © The Author(s), 2025, published in Programmirovanie, 2025, Vol. 51, No. 5. – notice: Pleiades Publishing, Ltd. 2025. |
| DBID | AAYXX CITATION JQ2 |
| DOI | 10.1134/S0361768825700185 |
| DatabaseName | CrossRef ProQuest Computer Science Collection |
| DatabaseTitle | CrossRef ProQuest Computer Science Collection |
| DatabaseTitleList | ProQuest Computer Science Collection |
| DeliveryMethod | fulltext_linktorsrc |
| Discipline | Computer Science |
| EISSN | 1608-3261 |
| EndPage | 313 |
| ExternalDocumentID | 10_1134_S0361768825700185 |
| GroupedDBID | -Y2 .86 .DC .VR 06D 0R~ 0VY 123 1N0 29P 2J2 2JN 2JY 2KG 2KM 2LR 2P1 2VQ 2~H 30V 4.4 408 409 40D 40E 5VS 67Z 6NX 8TC 95- 95. 95~ 96X AAAVM AABHQ AACDK AAHNG AAIAL AAJBT AAJKR AANZL AAPKM AARHV AARTL AASML AATNV AATVU AAUYE AAWCG AAYIU AAYQN AAYTO AAYZH ABAKF ABBBX ABBXA ABDBE ABDZT ABECU ABFSG ABFTD ABFTV ABHQN ABJNI ABJOX ABKCH ABKTR ABMNI ABMQK ABNWP ABQBU ABQSL ABRTQ ABSXP ABTEG ABTHY ABTKH ABTMW ABULA ABWNU ABXPI ACAOD ACBXY ACDTI ACGFS ACHSB ACHXU ACKNC ACMDZ ACMLO ACOKC ACOMO ACPIV ACSNA ACSTC ACZOJ ADHHG ADHIR ADHKG ADKNI ADKPE ADRFC ADTPH ADURQ ADYFF ADZKW AEBTG AEFQL AEGAL AEGNC AEJHL AEJRE AEMSY AENEX AEOHA AEPYU AETLH AEVLU AEXYK AEZWR AFBBN AFDZB AFGCZ AFHIU AFKRA AFLOW AFOHR AFQWF AFWTZ AFZKB AGAYW AGDGC AGJBK AGMZJ AGQMX AGQPQ AGRTI AGWIL AGWZB AGYKE AHAVH AHBYD AHKAY AHPBZ AHSBF AHWEU AHYZX AIAKS AIGIU AIIXL AILAN AITGF AIXLP AJBLW AJRNO ALMA_UNASSIGNED_HOLDINGS ALWAN AMKLP AMXSW AMYLF AMYQR AOCGG ARAPS ARMRJ ASPBG ATHPR AVWKF AXYYD AZFZN B-. BA0 BDATZ BENPR BGLVJ BGNMA BSONS CAG CCPQU COF CS3 CSCUP DDRTE DL5 DNIVK DPUIP DU5 EBLON EBS EIOEI EJD ESBYG FEDTE FERAY FFXSO FIGPU FINBP FNLPD FRRFC FSGXE FWDCC GGCAI GGRSB GJIRD GNWQR GQ7 GQ8 GXS H13 HCIFZ HF~ HG6 HMJXF HQYDN HRMNR HVGLF HZ~ IHE IJ- IKXTQ IWAJR IXC IXD IXE IZIGR IZQ I~X I~Z J-C JBSCW JCJTX JZLTJ K7- KDC KOV LAK LLZTM M4Y MA- N2Q NB0 NPVJJ NQJWS NU0 O9- O93 O9J OAM OVD P2P P9O PF0 PHGZM PHGZT PQGLB PT4 PUEGO QOS R89 R9I RNI RNS ROL RPX RSV RZC RZE S16 S1Z S27 S3B SAP SCO SDH SHX SISQX SJYHP SNE SNPRN SNX SOHCF SOJ SPISZ SRMVM SSLCW STPWE SZN T13 TEORI TN5 TSG TSK TSV TUC U2A UG4 UOJIU UTJUX UZXMN VC2 VFIZW W23 W48 WK8 YLTOR ZMTXR ~A9 AAYXX AFFHD CITATION JQ2 |
| ID | FETCH-LOGICAL-c313t-150682b895b745b7c5f01a2015c6ec5acad31d57aa76664e9abf2819bc21ff403 |
| IEDL.DBID | RSV |
| ISICitedReferencesCount | 0 |
| ISICitedReferencesURI | http://www.webofscience.com/api/gateway?GWVersion=2&SrcApp=Summon&SrcAuth=ProQuest&DestLinkType=CitingArticles&DestApp=WOS_CPL&KeyUT=001577357400004&url=https%3A%2F%2Fcvtisr.summon.serialssolutions.com%2F%23%21%2Fsearch%3Fho%3Df%26include.ft.matches%3Dt%26l%3Dnull%26q%3D |
| ISSN | 0361-7688 |
| IngestDate | Fri Nov 07 23:28:51 EST 2025 Sat Nov 29 07:28:30 EST 2025 Tue Sep 23 01:10:37 EDT 2025 |
| IsDoiOpenAccess | false |
| IsOpenAccess | true |
| IsPeerReviewed | true |
| IsScholarly | true |
| Issue | 5 |
| Keywords | multithreading memory model memory consistency compiler optimizations multithreading errors |
| Language | English |
| LinkModel | DirectLink |
| MergedId | FETCHMERGED-LOGICAL-c313t-150682b895b745b7c5f01a2015c6ec5acad31d57aa76664e9abf2819bc21ff403 |
| Notes | ObjectType-Article-1 SourceType-Scholarly Journals-1 ObjectType-Feature-2 content type line 14 |
| ORCID | 0000-0002-6855-7919 0000-0003-0446-0541 0000-0001-7411-3831 0000-0003-3097-8512 |
| OpenAccessLink | https://link.springer.com/content/pdf/10.1134/S0361768825700185.pdf |
| PQID | 3253178934 |
| PQPubID | 2043762 |
| PageCount | 9 |
| ParticipantIDs | proquest_journals_3253178934 crossref_primary_10_1134_S0361768825700185 springer_journals_10_1134_S0361768825700185 |
| PublicationCentury | 2000 |
| PublicationDate | 20251000 2025-10-00 20251001 |
| PublicationDateYYYYMMDD | 2025-10-01 |
| PublicationDate_xml | – month: 10 year: 2025 text: 20251000 |
| PublicationDecade | 2020 |
| PublicationPlace | Moscow |
| PublicationPlace_xml | – name: Moscow – name: New York |
| PublicationTitle | Programming and computer software |
| PublicationTitleAbbrev | Program Comput Soft |
| PublicationYear | 2025 |
| Publisher | Pleiades Publishing Springer Nature B.V |
| Publisher_xml | – name: Pleiades Publishing – name: Springer Nature B.V |
| References | D. Beyer (3949_CR3) 2007 3949_CR5 3949_CR1 D. Beyer (3949_CR4) 2011 S. Zelenov (3949_CR2) 2007 J. Alglave (3949_CR6) 2010 |
| References_xml | – volume-title: CPAchecker: A tool for configurable software verification, Computer Aided Verification year: 2011 ident: 3949_CR4 doi: 10.1007/978-3-642-22110-1_16 – volume-title: Model-based testing of optimizing compilers, Testing of Software and Communicating Systems year: 2007 ident: 3949_CR2 doi: 10.1007/978-3-540-73066-8_25 – volume-title: Configurable software verification: Concretizing the convergence of model checking and program analysis, Computer Aided Verification year: 2007 ident: 3949_CR3 doi: 10.1007/978-3-540-73368-3_51 – volume-title: Fences in weak memory models, Computer Aided Verification year: 2010 ident: 3949_CR6 doi: 10.1007/978-3-642-14295-6_25 – ident: 3949_CR1 – ident: 3949_CR5 doi: 10.1145/3009837.3009838 |
| SSID | ssj0010044 |
| Score | 2.3318152 |
| Snippet | Optimization transformations performed by a compiler may violate memory consistency requirements for a multithreaded program. This leads to errors, when the... |
| SourceID | proquest crossref springer |
| SourceType | Aggregation Database Index Database Publisher |
| StartPage | 305 |
| SubjectTerms | Artificial Intelligence Compilers Computer Science Errors Formal method Hardware Java Language Operating Systems Optimization Programming languages Software Software Engineering Software Engineering/Programming and Operating Systems Software upgrading Variables Verification Virtual environments |
| Title | Software Model Checking for Memory Consistency Verification |
| URI | https://link.springer.com/article/10.1134/S0361768825700185 https://www.proquest.com/docview/3253178934 |
| Volume | 51 |
| WOSCitedRecordID | wos001577357400004&url=https%3A%2F%2Fcvtisr.summon.serialssolutions.com%2F%23%21%2Fsearch%3Fho%3Df%26include.ft.matches%3Dt%26l%3Dnull%26q%3D |
| hasFullText | 1 |
| inHoldings | 1 |
| isFullTextHit | |
| isPrint | |
| journalDatabaseRights | – providerCode: PRVAVX databaseName: SpringerLINK Contemporary 1997-Present customDbUrl: eissn: 1608-3261 dateEnd: 99991231 omitProxy: false ssIdentifier: ssj0010044 issn: 0361-7688 databaseCode: RSV dateStart: 20000101 isFulltext: true titleUrlDefault: https://link.springer.com/search?facet-content-type=%22Journal%22 providerName: Springer Nature |
| link | http://cvtisr.summon.serialssolutions.com/2.0.0/link/0/eLvHCXMwnV1LSwMxEB60evBifWK1Sg6elOBmk93N4kmKxYMWsVp6W5JsgoJUaavSf-9kHxZfBz3saUMIw2S-mXyTfACHCjGbORFSjZUaFbFMqeRaUc6NsiqI85AXF4Uvk15PDofpdXWPe1J3u9eUZBGpS90RcdLHWMswOZZedy1AmFmEJUQ76fUabvqDD-rAU5QlQcmoH15RmT9O8RmM5hnmF1K0wJpu81-rXIPVKrUkZ6UvrMOCHW1As5ZtINUu3oTTPobeNzW2xAuhPZLOvTX-wJxg_kqufOftjBQ6nhOfT8_IAJ3UVUd7W3DXPb_tXNBKQ4EazviU-gcEZahlGulE4GciFzCFqB-Z2JpIGZVzlkeJUgkWMsKmSjvPrWkTMudEwLehMXoa2R0ggU5zFocq11gSJiqRsc1N6nQeG4eQF7XgqDZm9lw-lZEVJQYX2TeztKBdmzurds0k4yFGhAQzKNGC49q889-_Trb7p9F7sBJ6Ed-iI68Njen4xe7DsnmdPkzGB4UzvQMpmcGc |
| linkProvider | Springer Nature |
| linkToHtml | http://cvtisr.summon.serialssolutions.com/2.0.0/link/0/eLvHCXMwnV1LSwMxEB60CnqxPrFaNQdPSnCzyb7wJMVSsS1ia-ltSbJZFKRKtyr99062uxZfBz3saUMIQzLfTL7JfADHEjGbpcKlCjM1KvwwoiFXknKupZGOn7g8fyjcDrrdcDiMbop33FlZ7V5SkrmnnumOiLMe-lqGwXFoddcchJlFWBIIWLZh_m1v8EEdWIpyRlAyaocXVOaPU3wGo3mE-YUUzbGmWf3XKtdhrQgtycVsL2zAghltQrWUbSDFKd6C8x663jc5NsQKoT2Sxr3R9sKcYPxKOrbydkpyHc_MxtNTMsBNmhZXe9tw17zsN1q00FCgmjM-obaBYOiqMPJUIPDTXuowiajvad9oT2qZcJZ4gZQBJjLCRFKllltT2mVpKhy-A5XR08jsAnFUlDDflYnClDCQQeibREepSnydIuR5NTgpjRk_z1plxHmKwUX8zSw1qJfmjotTk8XcRY8QYAQlanBamnf--9fJ9v40-ghWWv1OO25fda_3YdW1gr55dV4dKpPxizmAZf06ecjGh_nGegdHk8SA |
| linkToPdf | http://cvtisr.summon.serialssolutions.com/2.0.0/link/0/eLvHCXMwpV1LSwMxEB60inixPrFaNQdPSuhmk33hSapFsZZCtfS2JNkEBVlLd1X67022uxZfB_Gwpw0hDMnMN_km8wEccxOziWYuFiZTw8wPIxxSwTGlkivu-IlLi4fC3aDXC0ejqF_qnGZVtXtFSc7eNNguTWneGie61CBhrYHxu8QA5dBqsDkm5CzCErN19DZdHww_aARLV87ISoLt8JLW_HGKz4Fpjja_EKRF3OnU_73idVgrISc6n-2RDVhQ6SbUKzkHVJ7uLTgbGJf8xicKWYG0J9R-UNJepCODa9GtrcidokLfM7M4e4qGZvPq8spvG-47l3ftK1xqK2BJCc2xbSwYuiKMPBEw80lPO4QbNOBJX0mPS55QkngB54FJcJiKuNCWcxPSJVozh-5ALX1O1S4gR0QJ8V2eCJMqBjwIfZXISIvEl9qEQq8BJ5Vh4_GshUZcpB6Uxd_M0oBmZfq4PE1ZTF3jKQKDrFgDTitTz3__Otnen0YfwUr_ohN3r3s3-7DqWp3fomivCbV88qIOYFm-5o_Z5LDYY-_5dM1k |
| openUrl | ctx_ver=Z39.88-2004&ctx_enc=info%3Aofi%2Fenc%3AUTF-8&rfr_id=info%3Asid%2Fsummon.serialssolutions.com&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=article&rft.atitle=Software+Model+Checking+for+Memory+Consistency+Verification&rft.jtitle=Programming+and+computer+software&rft.au=Andrianov%2C+P.+S.&rft.au=Zelenov%2C+S.+V.&rft.au=Mutilin%2C+V.+S.&rft.au=Petrenko%2C+A.+K.&rft.date=2025-10-01&rft.issn=0361-7688&rft.eissn=1608-3261&rft.volume=51&rft.issue=5&rft.spage=305&rft.epage=313&rft_id=info:doi/10.1134%2FS0361768825700185&rft.externalDBID=n%2Fa&rft.externalDocID=10_1134_S0361768825700185 |
| thumbnail_l | http://covers-cdn.summon.serialssolutions.com/index.aspx?isbn=/lc.gif&issn=0361-7688&client=summon |
| thumbnail_m | http://covers-cdn.summon.serialssolutions.com/index.aspx?isbn=/mc.gif&issn=0361-7688&client=summon |
| thumbnail_s | http://covers-cdn.summon.serialssolutions.com/index.aspx?isbn=/sc.gif&issn=0361-7688&client=summon |