<?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">cheb</journal-id><journal-title-group><journal-title xml:lang="ru">Чебышевский сборник</journal-title><trans-title-group xml:lang="en"><trans-title>Chebyshevskii Sbornik</trans-title></trans-title-group></journal-title-group><issn pub-type="ppub">2226-8383</issn><publisher><publisher-name>Tula State Lev Tolstoy  Pedagogical University</publisher-name></publisher></journal-meta><article-meta><article-id pub-id-type="doi">10.22405/2226-8383-2018-19-2-</article-id><article-id custom-type="elpub" pub-id-type="custom">cheb-402</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>Article</subject></subj-group></article-categories><title-group><article-title>О некоторых комбинаторных свойствах деревьев процессов LINUX</article-title><trans-title-group xml:lang="en"><trans-title>On some combinatorial properties of LINUX process trees</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>Efanov</surname><given-names>Nikolai Nikolayevich</given-names></name></name-alternatives><bio xml:lang="ru"><p>Аспирант кафедры информатики и вычислительной ма-тематики МФТИ, преподаватель, программист ЛЦССН МФТИ.</p></bio><bio xml:lang="en"><p>graduate student of the department of informatics and computational mathematics, teacher, programmer</p></bio><email xlink:type="simple">nefanov90@gmail.com</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>MIPT, LLSSN MIPT</institution><country>Russian Federation</country></aff></aff-alternatives><pub-date pub-type="collection"><year>2018</year></pub-date><pub-date pub-type="epub"><day>17</day><month>08</month><year>2018</year></pub-date><volume>19</volume><issue>2</issue><issue-title>Том 19, № 2, 2018</issue-title><fpage>151</fpage><lpage>162</lpage><permissions><copyright-statement>Copyright &amp;#x00A9; Ефанов Н.Н., 2019</copyright-statement><copyright-year>2019</copyright-year><copyright-holder xml:lang="ru">Ефанов Н.Н.</copyright-holder><copyright-holder xml:lang="en">Efanov N.N.</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.chebsbornik.ru/jour/article/view/402">https://www.chebsbornik.ru/jour/article/view/402</self-uri><abstract><p>В работе рассматривается структура данных - дерево процессов Linux, возникающая вследствие иерархической схемы порождения процессов в Unix-подобных операционных системах. Целью исследования является выделение свойств деревьев процессов Linux, позволяющие заключить о применимых методах анализа таких деревьев, с целью решения задачи сохранения и восстановления состояний исполняемых сред операционной системы Unix-подобных операционных систем. Формулируется обратная дискретная задача восстановления цепочек системных вызовов, порождающих некоторое дерево процессов, а такжеряд ограничений на вид системного вызова и утверждение о существовании решения, заключающее корректность ввода. Приводятся комбинаторные оценки общего количества деревьев при порождении системным вызовом fork, вводится поправка на различимость идентификаторов. Осуществляется обоснование возможности индексирования деревьев по узлам, благодаря образованию некорневыми идентификаторами симметрической группы.Таким образом, доказывается функциональная эквивалентность автоморфных деревьевс перестановками некорневых идентификаторов. Демонстрируется комбинаторный взрыв числа функционально различных деревьев при добавлении нового системного вызова. Ввиду приведённых оценок, проводится заключение о неэффективности восстановления деревьев процессов перебором или прямым поиском, предлагается идея построения некоторых восстанавливающих математических формализмов, учитывающих структуру задачи.Далее рассматривается свойство наследования атрибутов в дереве процессов, позволяющее локализовать область поиска нужного атрибута при проверке применимости правила системного вызова, таким образом снизив количество проверок. Заключается свойство сегментации дерева процессов Linux. На базе приведённых свойств формулируется заключение о целесообразности построения решения задачи восстановления цепочек системных вызовов, восстанавливающих дерево процессов, на базе теории формальных языков и грамматик, используя формализмы класса мягко-контекстно-зависимых. Приводятся обзорно альтернативные способы решения задачи.</p><p>Ключевые слова: математическое моделирование, перечислительная комбинаторика, группы, деревья, Unix-подобные операционные системы, системные вызовы, дерево процессов, восстановление по контрольным точкам, формальные грамматики.</p></abstract><trans-abstract xml:lang="en"><p>The paper examines the Linux process tree data structure, which arises from the hierarchical scheme of processes generation in Unix-like operating systems. The purpose of study is to highlight the properties of the Linux process trees, which allow to conclude the applicable methods for analyzing such trees, in aim to solve the checkpoint-restore problem of executable environments in Unix-like operating systems.</p><p>The inverse discrete problem of restoring chains of system calls that generate a certain tree of processes is formulated, as well as a number of restrictions on the form of the system call and an assertion about the existence of a solution that concludes the correctness of the input.</p><p>Combinatorial estimation of total trees number, which are provided by fork system call, is presented, and correction is noted for the discernibility of identifiers. The feasibility of indexing by nodes is substantiated, due to the formation of non-root identifiers of the symmetric group. Thus, the functional equivalence of automorphic trees with permutations of non-root identifiers is proved. A combinatorial explosion of the functionally different trees number is shown by the procedure of adding a new system call. In view of the above estimations, a conclusion about the ineffectiveness of process trees restoring by bruteforce or direct search is drawn. The idea of constructing restoring mathematical formalisms that take into account the structure of the problem is proposed.</p><p>Next, the inheritance property of attributes in the process trees is examined, which allows to localize a required attribute when checking the applicability of a system call rule, thus reducing the number of checks. The segmentation property of the Linux process trees is provided. On the basis of the above properties, the conclusion is formulated on the goal of constructing a solution of restoring the syscall chains, which constructing a certain process tree, on the basis of the theory of formal languages and grammars, using formalisms of the class of mildly-context-sensitive. The alternative methods of solution are reviewed too.</p></trans-abstract><kwd-group xml:lang="ru"><kwd>математическое моделирование</kwd><kwd>перечислительная комбинаторика</kwd><kwd>группы</kwd><kwd>деревья</kwd><kwd>Unix-подобные операционные системы</kwd><kwd>системные вызовы</kwd><kwd>дерево процессов</kwd><kwd>восстановление по контрольным точкам</kwd><kwd>формальные грамматики</kwd></kwd-group><kwd-group xml:lang="en"><kwd>mathematical modeling</kwd><kwd>enumeration combinatorics</kwd><kwd>groups</kwd><kwd>trees</kwd><kwd>Unix-like operating systems</kwd><kwd>system calls</kwd><kwd>process tree</kwd><kwd>checkpoint restore</kwd><kwd>formal grammars.</kwd></kwd-group><funding-group><funding-statement xml:lang="ru">МФТИ(ГУ)</funding-statement></funding-group></article-meta></front><back><ref-list><title>References</title><ref id="cit1"><label>1</label><citation-alternatives><mixed-citation xml:lang="ru">Mirkin A., Kuznetsov A., Kolyshkin K. Containers checkpointing and live migration // Proceedings of the In Ottawa Linux Symposium, vol. 2, pp. 85-90 (2008).</mixed-citation><mixed-citation xml:lang="en">Mirkin A., Kuznetsov A., Kolyshkin K, 2008, “Containers checkpointing and live migration”, Proceedings of the In Ottawa Linux Symposium. Ottawa, Ontario, Canada, vol.2, pp. 85-90.</mixed-citation></citation-alternatives></ref><ref id="cit2"><label>2</label><citation-alternatives><mixed-citation xml:lang="ru">Ефанов Н.Н., Емельянов П. В. Построение формальной грамматики системных вызовов // М. Информационное обеспечение математических моделей, 2017, 83-91 cc.</mixed-citation><mixed-citation xml:lang="en">Efanov N.N., Emelyanov P.V. 2017, “Postroenie formal’noj grammatiki sistemnyh vyzovov” , Informacionnoe obespechenie matematicheskih modelej, Moscow, Russia, pp. 83-91.</mixed-citation></citation-alternatives></ref><ref id="cit3"><label>3</label><citation-alternatives><mixed-citation xml:lang="ru">Efanov N. N., Emelyanov P. V. Constructing the formal grammar of system calls // In Proceedings of the 13th Central &amp; Eastern European Software Engineering Conference in Russia (CEE-SECR '17). ACM, New York, NY, USA, 2017, Article 12, 5 pages. doi: 10.1145/3166094.3166106</mixed-citation><mixed-citation xml:lang="en">Efanov N. N., Emelyanov P. V. “Constructing the formal grammar of system calls”, In Proceedings of the 13th Central \&amp; Eastern European Software Engineering Conference in Russia (CEE-SECR '17), ACM, New York, NY, USA, Article 12, 5 pages. doi: 10.1145/ 3166094.3166106</mixed-citation></citation-alternatives></ref><ref id="cit4"><label>4</label><citation-alternatives><mixed-citation xml:lang="ru">Bozyigit M., Wasiq M. User-level process checkpoint and restore for migration // ACM SIGOPS Operating Systems Review, 2017, vol. 35 no. 2, pp. 86-96. doi: 10.1145/377069.377091</mixed-citation><mixed-citation xml:lang="en">Bozyigit M., Wasiq M., 2001, “User-level process checkpoint and restore for migration”, ACM SIGOPS Operating Systems Review, vol. 35, no. 2, p.86-96. doi: 10.1145/377069.377091</mixed-citation></citation-alternatives></ref><ref id="cit5"><label>5</label><citation-alternatives><mixed-citation xml:lang="ru">Cayley A. A theorem on trees. // Collected Mathematical Papers, 1897, vol. 13. pp. 26-28.</mixed-citation><mixed-citation xml:lang="en">Cayley A. 1897, “A theorem on trees”, Collected Mathematical Papers, Cambridge University Press, vol. 13, pp. 26-28.</mixed-citation></citation-alternatives></ref><ref id="cit6"><label>6</label><citation-alternatives><mixed-citation xml:lang="ru">Clemente Izurieta, James Bieman. The evolution of FreeBSD and linux. // In Proceedings of the 2006 ACM/IEEE international symposium on Empirical software engineering (ISESE '06). ACM, New York, NY, USA, 2006, pp. 204-211. doi: 10.1145/1159733.1159765</mixed-citation><mixed-citation xml:lang="en">Clemente Izurieta and James Bieman. 2006, “The evolution of FreeBSD and linux”, In Pro\-cee\-dings of the 2006 ACM/IEEE international symposium on Empirical software engi\-nee\-ring (ISESE '06), ACM, New York, NY, USA, 204-211. doi: 10.1145/1159733.1159765</mixed-citation></citation-alternatives></ref><ref id="cit7"><label>7</label><citation-alternatives><mixed-citation xml:lang="ru">Leonardo Passos, Jianmei Guo, Leopoldo Teixeira, Krzysztof Czarnecki, Andrzej Wąsowski, and Paulo Borba. Coevolution of variability models and related artifacts: a case study from the Linux kernel // In Proceedings of the 17th International Software Product Line Conference (SPLC '13). ACM, New York, NY, USA, 2013, pp. 91-100. doi: 10.1145/2491627.2491628</mixed-citation><mixed-citation xml:lang="en">Leonardo Passos, Jianmei Guo, Leopoldo Teixeira, Krzysztof Czarnecki, Andrzej Wąsowski, and Paulo Borba 2013, “Coevolution of variability models and related artifacts: a case study from the Linux kernel”, In Proceedings of the 17th International Software Product Line Conference (SPLC '13), ACM, New York, NY, USA, 91-100. doi: 10.1145/2491627.2491628</mixed-citation></citation-alternatives></ref><ref id="cit8"><label>8</label><citation-alternatives><mixed-citation xml:lang="ru">Белоусов А. И. Дискретная математика, 4-е изд., М.: МГТУ имени Н. Э. Баумана, 2006, 744 с.</mixed-citation><mixed-citation xml:lang="en">Belousov, A.I. 2006, Discretnaya matematika, 4th edition, Bauman University (BMSTU), Moscow, p. 349.</mixed-citation></citation-alternatives></ref><ref id="cit9"><label>9</label><citation-alternatives><mixed-citation xml:lang="ru">Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest, and Clifford Stein. Introduction to Algorithms, 2nd Edition, MIT Press and McGraw-Hill , 2001. ISBN 0-262-03293-7.</mixed-citation><mixed-citation xml:lang="en">Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest, and Clifford Stein. 2001, Introduction to Algorithms, 2nd Edition, MIT Press and McGraw-Hill. ISBN 0-262-03293-7.</mixed-citation></citation-alternatives></ref><ref id="cit10"><label>10</label><citation-alternatives><mixed-citation xml:lang="ru">Knuth, Donald E., The Art of Computer Programming Vol 1. 3rd edition, Boston: Addison-Wesley, 1997. ISBN 0-201-89683-4</mixed-citation><mixed-citation xml:lang="en">Knuth, Donald E. 1997, The Art of Computer Programming, Vol 1., 3rd edition, Boston: Addison-Wesley, ISBN 0-201-89683-4</mixed-citation></citation-alternatives></ref><ref id="cit11"><label>11</label><citation-alternatives><mixed-citation xml:lang="ru">Krippendorff, Klaus. "Combinatorial Explosion" // Web Dictionary of Cybernetics and Systems. PRINCIPIA CYBERNETICA WEB. Retrieved 29 November 2010. URL: url{http://pespmc1.vub.ac.be/ASC/Combin_explo.html} (Дата обращения: 31.05.2018).</mixed-citation><mixed-citation xml:lang="en">Krippendorff, Klaus, 2010, "Combinatorial Explosion", Web Dictionary of Cybernetics and Systems, PRINCIPIA CYBERNETICA WEB, Retrieved 29 November 2010. Available at: \url{http://pespmc1.vub.ac.be/ASC/Combin_explo.html}</mixed-citation></citation-alternatives></ref><ref id="cit12"><label>12</label><citation-alternatives><mixed-citation xml:lang="ru">Alfred V. Aho , Jeffrey D. Ullman , The theory of parsing, translation, and compiling, Prentice-Hall, Inc., Upper Saddle River, NJ, USA, 1972. URL: url{dl.acm.org/citation.cfm?id=578789} (Дата обращения: 31.05.2018).</mixed-citation><mixed-citation xml:lang="en">Alfred V. Aho , Jeffrey D. Ullman 1972, The theory of parsing, translation, and compiling, Prentice-Hall, Inc., Upper Saddle River, NJ, USA. Available at: \url{dl.acm.org/citation.cfm?id=578789}</mixed-citation></citation-alternatives></ref><ref id="cit13"><label>13</label><citation-alternatives><mixed-citation xml:lang="ru">Охотин А. Формальные грамматики и вычислительная сложность синтаксического анализа. СПбГУ, программа “Математика”, 12 ноября 2017 г. noindent URL: url{https://compsciclub.ru/media/slides/for-mal_grammars_2017_autumn/2017_11_12_formal_grammars_2017_autumn.pdf} (Дата обращения: 31.05.2018).</mixed-citation><mixed-citation xml:lang="en">Okhotin A, 2017, “Formal’nye grammatiki i vychislitelnaya slojnost’ sintaksicheskogo analiza”, “Matematika” educational program, SPbSU. Available at: \url{https://compsciclub.ru/media/slides/formal_grammars_2017_autumn/2017_11_12_formal_grammars_2017_autumn.pdf}</mixed-citation></citation-alternatives></ref><ref id="cit14"><label>14</label><citation-alternatives><mixed-citation xml:lang="ru">David J. Weir. Characterizing Mildly Context-Sensitive Grammar Formalisms. Ph.D. thesis, University of Pennsylvania, Philadelphia, USA, 1988. doi:10.1145/3166094.3166106</mixed-citation><mixed-citation xml:lang="en">David J. Weir. 1988, Characterizing Mildly Context-Sensitive Grammar Formalisms, Ph.D. thesis, University of Pennsylvania, Philadelphia, USA. doi: 10.1145/3166094.3166106</mixed-citation></citation-alternatives></ref><ref id="cit15"><label>15</label><citation-alternatives><mixed-citation xml:lang="ru">M. A. Alonso and V. J. D'iaz. Variants of mixed parsing of TAG and TIG // Traitement Automatique des Langues (TAL), 2003, no. 44(3), pp. 41–65.</mixed-citation><mixed-citation xml:lang="en">Alonso M. A. and D\'iaz V. J. 2003, “Variants of mixed parsing of TAG and TIG”, Traitement Automatique des Langues (T.A.L.), no. 44(3), pp. 41–65.</mixed-citation></citation-alternatives></ref><ref id="cit16"><label>16</label><citation-alternatives><mixed-citation xml:lang="ru">Barash, Mihail. Defining Contexts in Context-Free Grammars, Turku Center for Computer Science, TCCS Dissertation no. 204, 2015. URL: url{https://www.doria.fi/bitstream/handle/10024/113793/TUCSDissertationD204.pdf} (Дата обращения: 31.05.2018).</mixed-citation><mixed-citation xml:lang="en">Barash Mihail, 2015, Defining Contexts in Context-Free Grammars, Turku Center for Computer Science, TCCS Dissertation No 204. Available at: \url{https://www.doria.fi/bitstream/handle/10024/113793/TUCSDissertationD204.pdf}</mixed-citation></citation-alternatives></ref><ref id="cit17"><label>17</label><citation-alternatives><mixed-citation xml:lang="ru">Boullier, P. On Multicomponent TAG parsing. // In 6th conference annuelle sur le Traitement Automatique des Langues Naturelles (TALN 1999), Cargse, Corse, France, 1999, pp. 321–326.</mixed-citation><mixed-citation xml:lang="en">Boullier P. 1999, “On Multicomponent TAG parsing”, In 6th conference annuelle sur le Traitement Automatique des Langues Naturelles (TALN 1999), Cargse, Corse, France, pp. 321–326.</mixed-citation></citation-alternatives></ref><ref id="cit18"><label>18</label><citation-alternatives><mixed-citation xml:lang="ru">Boullier P., Sagot B. Multi-Component Tree Insertion Grammars. // In: de Groote P., Egg M., Kallmeyer L. (eds) Formal Grammar. FG 2009. Lecture Notes in Computer Science, vol 5591. Springer, Berlin, Heidelberg, 2011.</mixed-citation><mixed-citation xml:lang="en">Boullier P., Sagot B. 2011. “Multi-Component Tree Insertion Grammars”, In: de Groote P., Egg M., Kallmeyer L. (eds) Formal Grammar, Lecture Notes in Computer Science, vol. 5591, Springer, Berlin-Heidelberg.</mixed-citation></citation-alternatives></ref><ref id="cit19"><label>19</label><citation-alternatives><mixed-citation xml:lang="ru">Claire Gardent and Laura Kallmeyer. Semantic construction in feature-based TAG. // In Proceedings of the tenth conference on European chapter of the Association for Computational Linguistics - Volume 1 (EACL '03), vol. 1, Association for Computational Linguistics, Stroudsburg, PA, USA, 2003, pp. 123-130. doi: 10.3115/1067807.1067825</mixed-citation><mixed-citation xml:lang="en">Claire Gardent and Laura Kallmeyer. 2003, “Semantic construction in feature-based TAG”, In Proceedings of the tenth conference on European chapter of the Association for Computational Linguistics - Volume 1 (EACL '03), Vol. 1, Association for Computational Linguistics, Stroudsburg, PA, USA, pp. 123-130. doi: 10.3115/1067807.1067825</mixed-citation></citation-alternatives></ref><ref id="cit20"><label>20</label><citation-alternatives><mixed-citation xml:lang="ru">Marina Kudinova and Pavel Emelyanov. Building Mathematical Model for Restoring Processes Tree during Container Live Migration. // IVth International Conference on Engineering and Telecommunication (EnT), November 2017, Dolgoprudniy. doi: 10.1109/ICEnT.2017.41</mixed-citation><mixed-citation xml:lang="en">Marina Kudinova and Pavel Emelyanov. 2017, “Building Mathematical Model for Restoring Processes Tree during Container Live Migration”, IVth International Conference on Engineering and Telecommunication (EnT), November 2017, Dolgoprudniy. doi: 10.1109/ICEnT.2017.41</mixed-citation></citation-alternatives></ref><ref id="cit21"><label>21</label><citation-alternatives><mixed-citation xml:lang="ru">Zengin M., Vafeiadis V. A programming language approach to fault tolerance for fork-join parallelism // Proceedings of the 7th International Symposium on Theoretical Aspects of Software Engineering (TASE 2013), Max Planck Institute for Software Systems (MPI-SWS), Saarsbruchen, Germany, 2013.</mixed-citation><mixed-citation xml:lang="en">Zengin M, Vafeiadis V. 2013, “A programming language approach to fault tolerance for fork-join parallelism”, Proceedings of the 7th International Symposium on Theoretical As\-pects of Software Engineering (TASE 2013), Max Planck Institute for Software Systems (MPI-SWS), Saarsbruchen, Germany, 2013. Available at: \url{http://plv.mpi-sws.org/ftpar/tase2013-ftpar.pdf}</mixed-citation></citation-alternatives></ref><ref id="cit22"><label>22</label><citation-alternatives><mixed-citation xml:lang="ru">Adel Cherif, Masato Suzuki, and Takuya Katayama. A Replication Technique Based on a Functional and Attribute Grammar Computation Model. In Proceedings of the The Seventh International Symposium on Software Reliability Engineering (ISSRE '96), IEEE Computer Society, Washington, DC, USA, 1996, p. 266.</mixed-citation><mixed-citation xml:lang="en">Adel Cherif, Masato Suzuki, and Takuya Katayama. 1996, “A Replication Technique Based on a Functional and Attribute Grammar Computation Model”, In Proceedings of the The Seventh International Symposium on Software Reliability Engineering (ISSRE '96), IEEE Computer Society, Washington, DC, USA, p. 266.</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>
