<?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">uprinmatus</journal-id><journal-title-group><journal-title xml:lang="ru">Известия Юго-Западного государственного университета. Серия: Управление, вычислительная техника, информатика. Медицинское приборостроение</journal-title><trans-title-group xml:lang="en"><trans-title>Proceedings of the Southwest State University. Series: IT Management, Computer Science, Computer Engineering. Medical Equipment Engineering</trans-title></trans-title-group></journal-title-group><issn pub-type="ppub">2223-1536</issn><publisher><publisher-name>Юго-Западный государственный университет</publisher-name></publisher></journal-meta><article-meta><article-id pub-id-type="doi">10.21869/2223-1536-2022-12-1-160-171</article-id><article-id custom-type="elpub" pub-id-type="custom">uprinmatus-56</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>MODELING IN MEDICAL AND TECHNICAL SYSTEMS</subject></subj-group></article-categories><title-group><article-title>Программная система виртуальной машины с поддержкой передачи сообщений между потоками</article-title><trans-title-group xml:lang="en"><trans-title>Virtual Machine Software System with Support for Message Transfer Between Threads</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>Chaplygin</surname><given-names>A. А.</given-names></name></name-alternatives><bio xml:lang="ru"><p>Чаплыгин Александр Александрович,канд. технических наук, доцент каф. программной инженерии</p><p>ул. 50 лет Октября 94, г. Курск 305040</p></bio><bio xml:lang="en"><p>Aleksandr А. Chaplygin, Cand. of Sci. (Engineering), Associate Professor of the Department of Software Engeneering</p><p>50 Let Oktyabrya str. 94, Kursk 305040</p></bio><email xlink:type="simple">alex_chaplygin@mail.ru</email><xref ref-type="aff" rid="aff-1"/></contrib></contrib-group><aff-alternatives id="aff-1"><aff xml:lang="ru"><institution>Юго-Западный государственный университет</institution><country>Россия</country></aff><aff xml:lang="en"><institution>Southwest State University</institution><country>Russian Federation</country></aff></aff-alternatives><pub-date pub-type="collection"><year>2022</year></pub-date><pub-date pub-type="epub"><day>07</day><month>05</month><year>2023</year></pub-date><volume>12</volume><issue>1</issue><fpage>160</fpage><lpage>171</lpage><permissions><copyright-statement>Copyright &amp;#x00A9; Чаплыгин А.А., 2023</copyright-statement><copyright-year>2023</copyright-year><copyright-holder xml:lang="ru">Чаплыгин А.А.</copyright-holder><copyright-holder xml:lang="en">Chaplygin A.А.</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://uprinmatus.elpub.ru/jour/article/view/56">https://uprinmatus.elpub.ru/jour/article/view/56</self-uri><abstract><p>Цель исследования заключается в анализе и моделировании программной системы в виде виртуальной машины с поддержкой многопоточности. Приводятся современные представления о потоках и многопоточности, рассматриваются виды многопоточности, варианты взаимодействия между потоками. Предложена концептуальная модель программной системы в виде виртуальной машины с поддержкой передачи сообщений между потоками.</p><sec><title>Методы</title><p>Методы. Потоки представляют собой модели вычислительных процессов с общей и раздельной памятью. Существуют два способа передачи управления потокам - кооперативный и с вытеснением. В случае кооперативной многопоточности планирование передачи управления возлагается на программиста.</p></sec><sec><title>Результаты</title><p>Результаты. В результате компьютерного моделирования была разработана программная система, реализующая виртуальную машину. Общий вычислительный процесс разбивается на необходимое число потоков. Главный поток может создавать дочерние потоки и завершать их при необходимости. Виртуальная машина позволяет потоками обмениваться сообщениями.</p></sec><sec><title>Заключение</title><p>Заключение. Полученная программная система может быть использована для решения различных задач, требующих разделения вычислительного процесса на подзадачи. Виртуальная машина обеспечивает переносимость и кросс-платформенность системы. Обмен сообщений между потоками позволяет решить проблемы состояний гонок, тупиковых ситуаций и синхронизации.</p></sec></abstract><trans-abstract xml:lang="en"><p>The purpose of research is to analyze and simulate a software system in the form of a virtual machine with multithreading support. Modern ideas about threads and multithreading are given, types of multithreading, options for interaction between threads are considered. A conceptual model of a software system in the form of a virtual machine with support for message transfer between threads is proposed.</p><sec><title>Methods</title><p>Methods. Threads are models of computing processes with shared and separate memory. There are two ways of thread switching: cooperative and preemptive. In the case of cooperative multithreading, control transfer planning is assigned to the programmer.</p></sec><sec><title>Results</title><p>Results. As a result of computer modeling, a software system was developed that implements a virtual machine. The overall computing process is divided into the required number of threads. The main thread can create child threads and terminate them if necessary. A virtual machine allows you to exchange messages in threads.</p></sec><sec><title>Conclusion</title><p>Conclusion. The resulting software system can be used to solve various tasks that require the division of the computational process into subtasks. The virtual machine provides portability and cross-platform compatibility of the system. The exchange of messages between threads allows you to solve the problems of race states, deadlocks and synchronization.</p></sec></trans-abstract><kwd-group xml:lang="ru"><kwd>защита организма</kwd><kwd>воздействие внешних факторов</kwd><kwd>прогнозирование заболеваний</kwd><kwd>диагностика заболеваний</kwd></kwd-group><kwd-group xml:lang="en"><kwd>virtual machine</kwd><kwd>simulation</kwd><kwd>system analysis</kwd><kwd>flow</kwd><kwd>message transmission</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">Таненбаум Э., Бос Х. Современные операционные системы. 4-е изд. СПб.: Питер, 2015. 1120 с.</mixed-citation><mixed-citation xml:lang="en">Tanenbaum E., Bos H. Sovremennye operatsionnye sistemy [Sovremennye operacionnye sistemy]. 4th ed. St. Petersburg, Piter Publ., 2015. 1120 p.</mixed-citation></citation-alternatives></ref><ref id="cit2"><label>2</label><citation-alternatives><mixed-citation xml:lang="ru">Andrews G. R., Schneider F. B. Concepts and Notations for Concurrent Programming // ACM Computing Surveys. 1983. Vol. 15, N. 1.</mixed-citation><mixed-citation xml:lang="en">Andrews G. R., Schneider F. B. Concepts and Notations for Concurrent Programming. ACM Computing Surveys, 1983, vol. 15, no. 1.</mixed-citation></citation-alternatives></ref><ref id="cit3"><label>3</label><citation-alternatives><mixed-citation xml:lang="ru">Ben-Ari M. Principles of Concurrent Programming. Addison-Wesley, 2006.</mixed-citation><mixed-citation xml:lang="en">Ben-Ari M. Principles of Concurrent Programming. Addison-Wesley, 2006.</mixed-citation></citation-alternatives></ref><ref id="cit4"><label>4</label><citation-alternatives><mixed-citation xml:lang="ru">Synchronization, Coherence, and Event Ordering in Multiprocessors / M. Dubois [et al.]. URL: http://www.semanticscholar.org&gt;...coherence...event...in-Dibois... (дата обращения: 11.12.2021).</mixed-citation><mixed-citation xml:lang="en">Dubois M., eds. Synchronization, Coherence, and Event Ordering in Multiprocessors. Available at: http://www.semanticscholar.org&gt;...coherence...event...in-Dibois... (accessed 11.12.2021)</mixed-citation></citation-alternatives></ref><ref id="cit5"><label>5</label><citation-alternatives><mixed-citation xml:lang="ru">Dubois M., Scheurich C., Briggs F. A. Memory Access Buffering in Multiprocessors, Proc. 13th Ann. Int’l. Symp. on Computer Arch., ACM, 1986. P. 434-442.</mixed-citation><mixed-citation xml:lang="en">Dubois M., Scheurich C., Briggs F. A. Memory Access Buffering in Multiprocessors. Proc. 13th Ann. Int’l. Symp. on Computer Arch., ACM, 1986, pp. 434-442.</mixed-citation></citation-alternatives></ref><ref id="cit6"><label>6</label><citation-alternatives><mixed-citation xml:lang="ru">Bal H. E., Tanenbaum A. S. Distributed Programming with Shared Data // Proc. 1988 Int’l. Conf. on Computer Languages, IEEE, 1988. P. 82-91.</mixed-citation><mixed-citation xml:lang="en">Bal H. E., Tanenbaum A. S. Distributed Programming with Shared Data. Proc. 1988 Int’l. Conf. on Computer Languages, IEEE, 1988, pp. 82-91.</mixed-citation></citation-alternatives></ref><ref id="cit7"><label>7</label><citation-alternatives><mixed-citation xml:lang="ru">Легков К. Е., Буренин А. Н. Проблемы математического описания потоков управляющей информации в процессе управления современной инфокоммуникационной сетью специального назначения // T-COMM: Телекоммуникации и транспорт. 2014. № 10. С. 43-46.</mixed-citation><mixed-citation xml:lang="en">Legkov K. E., Burenin A. N. Problemy matematicheskogo opisaniya potokov upravlyayushchei informatsii v protsesse upravleniya sovremennoi infokommunikatsionnoi set'yu spetsial'nogo naznacheniya [Problems of mathematical description of control information flows in the process of managing a modern infocommunication network for special purposes]. T-COMM: Telekommunikatsii i transport = T-COMM: Telecommunications and Transport, 2014, no. 10, pp. 43-46.</mixed-citation></citation-alternatives></ref><ref id="cit8"><label>8</label><citation-alternatives><mixed-citation xml:lang="ru">Буренин А. Н., Легков К. Е. К вопросу математического описания потоков управляющей информации в процессе управления современной инфокоммуникационной сетью специального назначения // Наукоемкие технологии в космических исследованиях земли. 2013. № 5. С. 8-12.</mixed-citation><mixed-citation xml:lang="en">Burenin A. N., Legkov K. E. K voprosu matematicheskogo opisaniya potokov upravlyayushchei informatsii v protsesse upravleniya sovremennoi infokommunika-tsionnoi set'yu spetsial'nogo naznacheniya [On the issue of mathematical description of control information flows in the process of managing a modern special-purpose infocommunication network]. Naukoemkie tekhnologii v kosmicheskikh issledovaniyakh zemli = High-Tech Technologies in Earth Space Research, 2013, no. 5, pp. 8-12.</mixed-citation></citation-alternatives></ref><ref id="cit9"><label>9</label><citation-alternatives><mixed-citation xml:lang="ru">Coffman E. System Deadlocks // ACM Computing Surveys. 1971. Vol. 3, N 2.</mixed-citation><mixed-citation xml:lang="en">Coffman E. System Deadlocks. ACM Computing Surveys, 1971, vol. 3, no. 2.</mixed-citation></citation-alternatives></ref><ref id="cit10"><label>10</label><citation-alternatives><mixed-citation xml:lang="ru">Сироткина Е. И. Применение механизмов синхронизации потоков ОС Windows в процессе создания больших систем массового обслуживания // Сборник научных трудов по материалам Международной научно-практической конференции. М.: Научный мир, 2010. Т. 2, № 1. С. 91-94.</mixed-citation><mixed-citation xml:lang="en">Sirotkina E. I. [Application of Windows OS thread synchronization mechanisms in the process of creating large queuing systems]. Sbornik nauchnykh trudov po materialam Mezhdunarodnoi nauchno-prakticheskoi konferentsii [Collection of scientific papers based on the materials of the international scientific and practical conference]. Moscow, Scientific world Publ., 2010, vol. 2, no. 1, pp. 91-94.</mixed-citation></citation-alternatives></ref><ref id="cit11"><label>11</label><citation-alternatives><mixed-citation xml:lang="ru">Zhuravlev S. Survey of Scheduling Techniques for Addressing Shared Resources in Multicore Processors // ACM Computing Surveys. 2012. Vol. 45, N. 1.</mixed-citation><mixed-citation xml:lang="en">Zhuravlev S. Survey of Scheduling Techniques for Addressing Shared Resources in Multicore Processors. ACM Computing Surveys, 2012, vol. 45, no. 1.</mixed-citation></citation-alternatives></ref><ref id="cit12"><label>12</label><citation-alternatives><mixed-citation xml:lang="ru">Hoare C. A. R. Monitors, An Operating System Structuring Concept // Commun. of the ACM. 1974. Vol. 17. P. 549-557.</mixed-citation><mixed-citation xml:lang="en">Hoare C. A. R. Monitors, An Operating System Structuring Concept. Commun. of the ACM,, 1974, vol. 17, pp. 549-557.</mixed-citation></citation-alternatives></ref><ref id="cit13"><label>13</label><citation-alternatives><mixed-citation xml:lang="ru">A Hardware Scheduler for Real Time Multiprocessor System on Chip / N. Gupta, S. Mandal, J. Malave, A. Mandal, R. N. Mahapatra // Proc. 23rd Int’l Conf. on VLSI Design, IEEE, 2010.</mixed-citation><mixed-citation xml:lang="en">Gupta N., Mandal S., Malave J., Mandal A., Mahapatra R. N. A Hardware Scheduler for Real Time Multiprocessor System on Chip. Proc. 23rd Int’l Conf. on VLSI Design, IEEE, 2010.</mixed-citation></citation-alternatives></ref><ref id="cit14"><label>14</label><citation-alternatives><mixed-citation xml:lang="ru">Dijkstra E. W. Co-operating Sequential Processes // Programming Languages / ed. by F. Genuys. New York: Academic Press, 1968b.</mixed-citation><mixed-citation xml:lang="en">Dijkstra E. W. Co-operating Sequential Processes. Programming Languages; ed. by F. Genuys. New York, Academic Press, 1968b.</mixed-citation></citation-alternatives></ref><ref id="cit15"><label>15</label><citation-alternatives><mixed-citation xml:lang="ru">Energy-Efficient Mechanisms For Managing Thread Context In Throughput Processors / M. Gebhart, D. R. Johnson, D. Tarjan, S. W. Keckler, W. I. Dally, E. Lindholm, K. Skadron // Proc. 38th Int’l Symp. On Computer Arch. ACM, 2011.</mixed-citation><mixed-citation xml:lang="en">Gebhart M., Johnson D. R., Tarjan D., Keckler S. W., Dally W. J., Lindholm E., Skadron K. Energy-Efficient Mechanisms For Managing Thread Context In Throughput Processors. Proc. 38th Int’l Symp. On Computer Arch. ACM, 2011.</mixed-citation></citation-alternatives></ref><ref id="cit16"><label>16</label><citation-alternatives><mixed-citation xml:lang="ru">Gerber R., Binstock A. Programming with Hyper-Threading Technology. Santa Clara, CA: Intel Press, 2004.</mixed-citation><mixed-citation xml:lang="en">Gerber R., Binstock A. Programming with Hyper-Threading Technology. Santa Clara, CA, Intel Press, 2004.</mixed-citation></citation-alternatives></ref><ref id="cit17"><label>17</label><citation-alternatives><mixed-citation xml:lang="ru">PVM: Parallel Virtual Machine - A User’s Guide and Tutorial for Networked Parallel Computing / A Geist., A. Beguelin, J. Dongarra, W. Jiang, R. Mancheck, V. Sunderram. Cambridge, MA: M. I. T. Press, 1994.</mixed-citation><mixed-citation xml:lang="en">Geist A., Beguelin A., Dongarra J., Jiang W., Mancheck R., Sunderram V. PVM: Parallel Virtual Machine - A User’s Guide and Tutorial for Networked Parallel Computing. Cambridge, MA, M. I. T. Press, 1994.</mixed-citation></citation-alternatives></ref><ref id="cit18"><label>18</label><citation-alternatives><mixed-citation xml:lang="ru">Чаплыгин А. А., Малышев А. В. Операционная система с ядром на основе виртуальной машины с уменьшенным набором команд // Известия Юго-Западного государственного университета. Серия: Управление, вычислительная техника, информатика. Медицинское приборостроение. 2020. № 1. С. 8-20.</mixed-citation><mixed-citation xml:lang="en">Chaplygin A. A., Malyshev A. V. Operatsionnaya sistema s yadrom na osnove virtual'noi mashiny s umen'shennym naborom komand [The operating system with the virtual machine based kernel with reduced instruction set]. Izvestiya Yugo-Zapadnogo gosudarstvennogo universiteta. Seriya: Upravlenie, vychislitel'naya tekhnika, informatika. Meditsinskoe priborostroenie = Proceedings of the Southwest State University. Series: Control, Computer Engineering, Information Science. Medical Instruments Engineering, 2020, vol. 1, рр. 8-20.</mixed-citation></citation-alternatives></ref><ref id="cit19"><label>19</label><citation-alternatives><mixed-citation xml:lang="ru">Gropp W., Lusk E., Skjellum A. Using MPI: Portable Parallel Programming with the Message Passing Interface. Cambridge, MA: M. I. T. Press, 1994.</mixed-citation><mixed-citation xml:lang="en">Gropp W., Lusk E., Skjellum A. Using MPI: Portable Parallel Programming with the Message Passing Interface. Cambridge, MA, M. I. T. Press, 1994.</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>
