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...

Celý popis

Uložené v:
Podrobná bibliografia
Vydané v:Programming and computer software Ročník 51; číslo 5; s. 305 - 313
Hlavní autori: Andrianov, P. S., Zelenov, S. V., Mutilin, V. S., Petrenko, A. K.
Médium: Journal Article
Jazyk:English
Vydavateľské údaje: Moscow Pleiades Publishing 01.10.2025
Springer Nature B.V
Predmet:
ISSN:0361-7688, 1608-3261
On-line prístup:Získať plný text
Tagy: Pridať tag
Žiadne tagy, Buďte prvý, kto otaguje tento záznam!
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/eLvHCXMwnV1LSwMxEB60evBifWK1Sg6elOBuHt0snqRYvFjEaultyeaBgrTSrUr_vUl21-LroIecEsIyTGa-5JudD-DYRtpqm0ucGpZgpgXDaU40Ds3AiaHcKB3EJpJ-X4xG6U31H3dRV7vXlGSI1KXuCDsbuFgbO3AsvO5a5NLMMqy4bCe8XsPtYPhBHXiKsiQoY-yXV1Tmj1t8TkYLhPmFFA25ptf811duwHoFLdFF6QubsGTGW9CsZRtQdYq34XzgQu-bnBrkhdCeUPfBKP9gjhx-Rde-8naOgo5n4fH0HA2dk9rqaW8H7nuXd90rXGkoYEVjOsO-gaAguUh5njA3FLdRLF3W56pjFJdKahprnkiZuIsMM6nMrefWckVia1lEd6ExnozNHiARpUq6EKB9z_m8k0qupRFWSGp0ZBlpwUltzOy5bJWRhSsGZdk3s7SgXZs7q05NkVHiIkLiEBRrwWlt3sX0r5vt_2n1AawRL-IbKvLa0JhNX8whrKrX2WMxPQrO9A5k8MHj
linkProvider Springer Nature
linkToHtml http://cvtisr.summon.serialssolutions.com/2.0.0/link/0/eLvHCXMwnV1LSwMxEB60CnqxPrFaNQdPSnB3k-1m8STFUrEtYmvpbcnmgYJU6Val_94ku2vxddBDTglhGSYzX_LNzgdwrD2ppU45jhWNMJWM4jgNJHbNwANFQiWkE5uIej02GsU3xX_cWVntXlKSLlLnuiP0rG9irW_AMbO6a55JM4uwRE3Csg3zb_vDD-rAUpQ5Qelju7ygMn_c4nMymiPML6SoyzWt6r--ch3WCmiJLnJf2IAFNd6EainbgIpTvAXnfRN63_hEISuE9oia90rYB3Nk8Cvq2srbGXI6npnF0zM0NE6qi6e9bbhrXQ6abVxoKGBBfDLFtoEgC1IWh2lEzRCh9nxusn4oGkqEXHBJfBlGnEfmIkNVzFNtubVUBL7W1CM7UBk_jdUuIObFgpsQIG3P-bQR81ByxTTjRElP06AGJ6Uxk-e8VUbirhiEJt_MUoN6ae6kODVZQgITESKDoGgNTkvzzqd_3WzvT6uPYKU96HaSzlXveh9WAyvo66rz6lCZTl7UASyL1-lDNjl0jvUOhj7Exw
linkToPdf http://cvtisr.summon.serialssolutions.com/2.0.0/link/0/eLvHCXMwpV1LS8NAEB60inixPrFadQ-elMUku2k2eJJqUdRSqJbewmYfKEgtTVT6791NNhZfB_GQU5YlDLMz3-w3mQ_gUHtSS51yHCsaYSoZxXEaSFwMAw8UCZWQhdhE1O2y4TDuOZ3TrOp2ryjJ8p8GO6VplJ-MpXYaJPSkb-Kub4Aysxpsnkk587BAbR-9Ldf7gw8awdKVJVnpY7vc0Zo_bvE5Mc3Q5heCtMg7nfq_v3gVVhzkRGelj6zBnBqtQ72Sc0DudG_Aad-E5Dc-UcgKpD2h9oMS9iIdGVyLbm1H7hQV-p6ZxdlTNDDOq92V3ybcdy7u2pfYaStgQXySYztYkAUpi8M0ouYRofZ8btBAKFpKhFxwSXwZRpxHpsChKuaptpxbKgJfa-qRLaiNnkdqGxDzYsFNaJB2Fn3ainkouWKacaKkp2nQgKPKsMm4HKGRFKUHock3szSgWZk-cacpS0hgIkVkkBVtwHFl6tnrXzfb-dPqA1jqnXeSm6vu9S4sB1bnt2jaa0Itn7yoPVgUr_ljNtkvfOwdRHfNqw
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