<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Publishing DTD v1.3 20210610//EN" "JATS-journalpublishing1-3.dtd">
<article article-type="research-article" dtd-version="1.3" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xml:lang="ru"><front><journal-meta><journal-id journal-id-type="publisher-id">mais</journal-id><journal-title-group><journal-title xml:lang="ru">Моделирование и анализ информационных систем</journal-title><trans-title-group xml:lang="en"><trans-title>Modeling and Analysis of Information Systems</trans-title></trans-title-group></journal-title-group><issn pub-type="ppub">1818-1015</issn><issn pub-type="epub">2313-5417</issn><publisher><publisher-name>Yaroslavl State University</publisher-name></publisher></journal-meta><article-meta><article-id custom-type="elpub" pub-id-type="custom">mais-1101</article-id><article-categories><subj-group subj-group-type="heading"><subject>Research Article</subject></subj-group><subj-group subj-group-type="section-heading" xml:lang="ru"><subject>Оригинальные статьи</subject></subj-group><subj-group subj-group-type="section-heading" xml:lang="en"><subject>Articles</subject></subj-group></article-categories><title-group><article-title>Автоматическое обнаружение ошибок конкурентной модификации данных в моделях на языке SystemC</article-title><trans-title-group xml:lang="en"><trans-title>Automatic Data Race Error Detection in SystemC Models</trans-title></trans-title-group></title-group><contrib-group><contrib contrib-type="author" corresp="yes"><name-alternatives><name name-style="eastern" xml:lang="ru"><surname>Захаров</surname><given-names>Алексей Владимирович</given-names></name><name name-style="western" xml:lang="en"><surname>Zakharov</surname><given-names>A. V.</given-names></name></name-alternatives><email xlink:type="simple">zakharov@kspt.ftk.spbstu.ru</email><xref ref-type="aff" rid="aff-1"/></contrib><contrib contrib-type="author" corresp="yes"><name-alternatives><name name-style="eastern" xml:lang="ru"><surname>Моисеев</surname><given-names>Михаил Юрьевич</given-names></name><name name-style="western" xml:lang="en"><surname>Moiseev</surname><given-names>M. J.</given-names></name></name-alternatives><email xlink:type="simple">mikhail.moiseev@gmail.com</email><xref ref-type="aff" rid="aff-1"/></contrib></contrib-group><aff xml:lang="ru" id="aff-1"><institution>Санкт-Петербургский государственный политехнический университет</institution><country>Russian Federation</country></aff><pub-date pub-type="collection"><year>2011</year></pub-date><pub-date pub-type="epub"><day>20</day><month>12</month><year>2011</year></pub-date><volume>18</volume><issue>4</issue><fpage>94</fpage><lpage>105</lpage><permissions><copyright-statement>Copyright &amp;#x00A9; Захаров А.В., Моисеев М.Ю., 2011</copyright-statement><copyright-year>2011</copyright-year><copyright-holder xml:lang="ru">Захаров А.В., Моисеев М.Ю.</copyright-holder><copyright-holder xml:lang="en">Zakharov A.V., Moiseev M.J.</copyright-holder><license xml:lang="ru" license-type="creative-commons-attribution" xlink:href="https://creativecommons.org/licenses/by/4.0/" xlink:type="simple"><license-p>Данная работа распространяется под лицензией Creative Commons Attribution 4.0.</license-p></license><license xml:lang="en" license-type="creative-commons-attribution" xlink:href="https://creativecommons.org/licenses/by/4.0/" xlink:type="simple"><license-p>This work is licensed under a Creative Commons Attribution 4.0 License.</license-p></license></permissions><self-uri xlink:href="https://www.mais-journal.ru/jour/article/view/1101">https://www.mais-journal.ru/jour/article/view/1101</self-uri><abstract><p>Модели систем на языке SystemC, как правило, являются параллельными программами и поэтому могут содержать ошибки синхронизации. Одним из типов ошибок синхронизации являются ошибки конкурентной модификации данных.
В данной статье предлагается подход к обнаружению ошибок конкурентной модификации данных в моделях на языке SystemC на основе статического анализа. Разработаны алгоритмы, обеспечивающие анализ программ на языке SystemC без количественного времени. Эти алгоритмы позволяют обнаружить все ошибки конкурентной модификации данных, имеющиеся в программе. Эффективность предложенного подхода подтверждается экспериментальными исследованиями разработанного средства обнаружения ошибок на наборе тестовых программ.</p></abstract><trans-abstract xml:lang="en"><p>Hardware/software systems simulated by using the SystemC language are usually parallel and, therefore, may contain synchronization errors. One widespread type of synchronization errors is data races. In this paper we propose an approach to data race detection in SystemC programs which is based on the source code static analysis. We have developed some static analysis algorithms that can extract information for data race detection in a SystemC program without quantitative time. These algorithms can detect all the errors that exist in the program. The efficiency of our approach is shown by the evaluation results of the developed tool on a set of test SystemC programs.</p></trans-abstract><kwd-group xml:lang="ru"><kwd>статический анализ</kwd><kwd>ошибки конкурентной модификации
данных</kwd></kwd-group><kwd-group xml:lang="en"><kwd>SystemC</kwd><kwd>static analysis</kwd><kwd>data error race detection</kwd></kwd-group></article-meta></front><back><ref-list><title>References</title><ref id="cit1"><label>1</label><citation-alternatives><mixed-citation xml:lang="ru">-2005 IEEE Standard SystemC Language Reference Manual.</mixed-citation><mixed-citation xml:lang="en">-2005 IEEE Standard SystemC Language Reference Manual.</mixed-citation></citation-alternatives></ref><ref id="cit2"><label>2</label><citation-alternatives><mixed-citation xml:lang="ru">Savage S., Burrows M. et al. Eraser: a Dynamic Data Race Detector for Multithreaded Programs //J. ACM Transaction of Computer System. 1997. 15. P. 391-411.</mixed-citation><mixed-citation xml:lang="en">Savage S., Burrows M. et al. Eraser: a Dynamic Data Race Detector for Multithreaded Programs //J. ACM Transaction of Computer System. 1997. 15. P. 391-411.</mixed-citation></citation-alternatives></ref><ref id="cit3"><label>3</label><citation-alternatives><mixed-citation xml:lang="ru">Pierre L., Ferro L. Enhancing the Assertion-based Verification of TLM Designs with Reentrancy // 8th International Conference on Formal Methods and Models for Codesign. 2010. P. 103-112.</mixed-citation><mixed-citation xml:lang="en">Pierre L., Ferro L. Enhancing the Assertion-based Verification of TLM Designs with Reentrancy // 8th International Conference on Formal Methods and Models for Codesign. 2010. P. 103-112.</mixed-citation></citation-alternatives></ref><ref id="cit4"><label>4</label><citation-alternatives><mixed-citation xml:lang="ru">Blanc N., Kroening D. Race Analysis for SystemC using Model Checking // ICCAD. 2008. P. 356-363.</mixed-citation><mixed-citation xml:lang="en">Blanc N., Kroening D. Race Analysis for SystemC using Model Checking // ICCAD. 2008. P. 356-363.</mixed-citation></citation-alternatives></ref><ref id="cit5"><label>5</label><citation-alternatives><mixed-citation xml:lang="ru">Traulsen C., Cornet J., Moy M., Maraninchi F. A SystemC/TLM Semantics in Promela and Its Possible Applications // 14th Workshop on Model Checking Software SPIN. 2007. P. 204-222.</mixed-citation><mixed-citation xml:lang="en">Traulsen C., Cornet J., Moy M., Maraninchi F. A SystemC/TLM Semantics in Promela and Its Possible Applications // 14th Workshop on Model Checking Software SPIN. 2007. P. 204-222.</mixed-citation></citation-alternatives></ref><ref id="cit6"><label>6</label><citation-alternatives><mixed-citation xml:lang="ru">Garavel H., Helmstetter C., Ponsini O., Serwe W. Verification of an Industrial SystemC/TLM Model Using LOTOS and CADP // 7th IEEE/ACM International Conference on Formal Methods and Models for Co-Design. 2009. P. 46-55.</mixed-citation><mixed-citation xml:lang="en">Garavel H., Helmstetter C., Ponsini O., Serwe W. Verification of an Industrial SystemC/TLM Model Using LOTOS and CADP // 7th IEEE/ACM International Conference on Formal Methods and Models for Co-Design. 2009. P. 46-55.</mixed-citation></citation-alternatives></ref><ref id="cit7"><label>7</label><citation-alternatives><mixed-citation xml:lang="ru">Hojjat H., Mousavi M.R., Sirjani M. Process Algebraic Verification of SystemC Codes // 8th International Conference on Application of Concurrency to System Design. 2008. P. 62-67.</mixed-citation><mixed-citation xml:lang="en">Hojjat H., Mousavi M.R., Sirjani M. Process Algebraic Verification of SystemC Codes // 8th International Conference on Application of Concurrency to System Design. 2008. P. 62-67.</mixed-citation></citation-alternatives></ref><ref id="cit8"><label>8</label><citation-alternatives><mixed-citation xml:lang="ru">Zhang Yu, Vedrine F., Monsuez B. SystemC Waiting-State Automata // 1st International Workshop on Verification and Evaluation of Computer and Communication Systems. 2007.</mixed-citation><mixed-citation xml:lang="en">Zhang Yu, Vedrine F., Monsuez B. SystemC Waiting-State Automata // 1st International Workshop on Verification and Evaluation of Computer and Communication Systems. 2007.</mixed-citation></citation-alternatives></ref><ref id="cit9"><label>9</label><citation-alternatives><mixed-citation xml:lang="ru">Pratikakis P., Foster J.S., Hicks M. LOCKSMITH: Practical Static Race Detection for C // J. ACM Transactions on Programming Languages and Systems. 2011.</mixed-citation><mixed-citation xml:lang="en">Pratikakis P., Foster J.S., Hicks M. LOCKSMITH: Practical Static Race Detection for C // J. ACM Transactions on Programming Languages and Systems. 2011.</mixed-citation></citation-alternatives></ref><ref id="cit10"><label>10</label><citation-alternatives><mixed-citation xml:lang="ru">Kahlon V., Sankaranarayanan S., Gupta A. Semantic Reduction of Thread Interleavings in Concurrent Programs // 15th International Conference on Tools and Algorithms for the Construction and Analysis of Systems. 2009.</mixed-citation><mixed-citation xml:lang="en">Kahlon V., Sankaranarayanan S., Gupta A. Semantic Reduction of Thread Interleavings in Concurrent Programs // 15th International Conference on Tools and Algorithms for the Construction and Analysis of Systems. 2009.</mixed-citation></citation-alternatives></ref><ref id="cit11"><label>11</label><citation-alternatives><mixed-citation xml:lang="ru">Kahlon V., Sinha N., Kruus E., Zhang Y. Static Data Race Detection for Concurrent Programs with Asynchronous Calls // 7th joint meeting of the European software engineering conference and the ACM SIGSOFT symposium on The foundations of software engineering. 2009.</mixed-citation><mixed-citation xml:lang="en">Kahlon V., Sinha N., Kruus E., Zhang Y. Static Data Race Detection for Concurrent Programs with Asynchronous Calls // 7th joint meeting of the European software engineering conference and the ACM SIGSOFT symposium on The foundations of software engineering. 2009.</mixed-citation></citation-alternatives></ref><ref id="cit12"><label>12</label><citation-alternatives><mixed-citation xml:lang="ru">Terauchi T. Checking Race Freedom via Linear Programming // ACM SIGPLAN conference on Programming language design and implementation. 2008.</mixed-citation><mixed-citation xml:lang="en">Terauchi T. Checking Race Freedom via Linear Programming // ACM SIGPLAN conference on Programming language design and implementation. 2008.</mixed-citation></citation-alternatives></ref><ref id="cit13"><label>13</label><citation-alternatives><mixed-citation xml:lang="ru">Naik M., Aiken A. Conditional Must Not Aliasing for Static Race Detection // 34th annual ACM SIGPLAN-SIGACT symposium on POPL. 2007.</mixed-citation><mixed-citation xml:lang="en">Naik M., Aiken A. Conditional Must Not Aliasing for Static Race Detection // 34th annual ACM SIGPLAN-SIGACT symposium on POPL. 2007.</mixed-citation></citation-alternatives></ref><ref id="cit14"><label>14</label><citation-alternatives><mixed-citation xml:lang="ru">Itsykson V.M., Moiseev M.Ju., Zakharov A.V. et al. Automatic Defects Detection in Industrial C/C++ Software // 5th Central and Eastern European Software Engineering Conference in Russia. 2009.</mixed-citation><mixed-citation xml:lang="en">Itsykson V.M., Moiseev M.Ju., Zakharov A.V. et al. Automatic Defects Detection in Industrial C/C++ Software // 5th Central and Eastern European Software Engineering Conference in Russia. 2009.</mixed-citation></citation-alternatives></ref><ref id="cit15"><label>15</label><citation-alternatives><mixed-citation xml:lang="ru">Aegis Error Detection Tool. &lt;http://www.digiteklabs.ru/aegis/&gt;</mixed-citation><mixed-citation xml:lang="en">Aegis Error Detection Tool. &lt;http://www.digiteklabs.ru/aegis/&gt;</mixed-citation></citation-alternatives></ref></ref-list><fn-group><fn fn-type="conflict"><p>The authors declare that there are no conflicts of interest present.</p></fn></fn-group></back></article>
