RU2408062C2 - Method and system for controlling processes in operating system on microkernel - Google Patents

Method and system for controlling processes in operating system on microkernel Download PDF

Info

Publication number
RU2408062C2
RU2408062C2 RU2008110499/07A RU2008110499A RU2408062C2 RU 2408062 C2 RU2408062 C2 RU 2408062C2 RU 2008110499/07 A RU2008110499/07 A RU 2008110499/07A RU 2008110499 A RU2008110499 A RU 2008110499A RU 2408062 C2 RU2408062 C2 RU 2408062C2
Authority
RU
Russia
Prior art keywords
message
queue
counters
volume
descriptor
Prior art date
Application number
RU2008110499/07A
Other languages
Russian (ru)
Other versions
RU2008110499A (en
Inventor
Артур Азатович ЕМАГУЛОВ (RU)
Артур Азатович ЕМАГУЛОВ
Original Assignee
Корпорация "САМСУНГ ЭЛЕКТРОНИКС Ко., Лтд."
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Корпорация "САМСУНГ ЭЛЕКТРОНИКС Ко., Лтд." filed Critical Корпорация "САМСУНГ ЭЛЕКТРОНИКС Ко., Лтд."
Priority to RU2008110499/07A priority Critical patent/RU2408062C2/en
Publication of RU2008110499A publication Critical patent/RU2008110499A/en
Application granted granted Critical
Publication of RU2408062C2 publication Critical patent/RU2408062C2/en

Links

Images

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

FIELD: information technology.
SUBSTANCE: according to the method of controlling processes in an operating system on a microkernel, a descriptor of the next process is received from the scheduler of the current process queue. It is determined whether the process queue is empty. The scheduler determines whether the inner loop of the next process has finished, and if so, the descriptor of the next process moved into the waiting list. If the execution queue is empty, all messages in the system message queue are processed by shifting, and the volume of all counters of connections in the message routing database (MRD) is reduced after completion of the shift cycle. Descriptors of all processes are moved by the scheduler from the waiting queue to the execution queue to prepare the system for the next shifting cycle, otherwise descriptors of the next process are used; the volume of input/output counters of the current process is reduced by the scheduler and the values of volume of these input/output counters is checked. If the value of the counters is less than zero, the volume of the process counters is increased, otherwise the process is shifted from the execution queue to the waiting queue.
EFFECT: higher accuracy of transmitting information.
2 cl, 6 dwg

Description

Изобретение относится к способам и системам программного управления, а именно к способам и системам контроля процессов в микроядерной (microkernel) операционной системе, и может быть использовано в роботизированных системах и навигационных системах роботов.The invention relates to methods and systems for program control, and in particular to methods and systems for controlling processes in a microkernel operating system, and can be used in robotic systems and navigation systems of robots.

Вследствие быстрого роста цифровых сетей связи и дальнейшего расширения функциональности подключенных к ним устройств встает проблема размещения ресурсов устройств и предоставления доступа к этим ресурсам.Due to the rapid growth of digital communication networks and the further expansion of the functionality of devices connected to them, the problem arises of allocating device resources and providing access to these resources.

Другое современное и быстро растущее направление развития информационных технологий - это распределенные компьютерные и мультиагентные вычислительные системы. Существует множество преимуществ использования мультиагентных систем. Одно из них способность к самоорганизации и адаптации, а также гибкость.Another modern and rapidly growing direction in the development of information technology is distributed computer and multi-agent computing systems. There are many advantages to using multi-agent systems. One of them is the ability to self-organize and adapt, as well as flexibility.

Многие современные мультиагентные системы построены на основе программных библиотек, которые работают на уровне приложения или поддерживаются в компиляторах как парадигма программирования (см., например, патенты США 7228187 и 7275048).Many modern multi-agent systems are built on the basis of software libraries that work at the application level or are supported in compilers as a programming paradigm (see, for example, US patents 7228187 and 7275048).

Во всех этих областях существует главная проблема создания автономных систем адаптивных к меняющемуся окружению с эффективным управлением выполнением процессов, производимых данными системами.In all these areas, the main problem is the creation of autonomous systems adaptive to a changing environment with effective control over the execution of processes produced by these systems.

Наиболее близким к заявляемому изобретению в части системы является операционная система M.O.N.S.T.E.R. (см. M.O.N.S.T.E.R.: А new behavior-based microkernel for mobile robots. Dirk Spenneberg, Martin Albrecht, Till Backhaus, Robotics Lab, Faculty of Mathematics and Computer Science, University of Bremen. Bibliotheksstr. 1, D-28359 Bremen, Germany (http:/www.informatik.uni-bremen.de/robotik), в которой применена концепция разделенных процессов совместно с экспортом ресурсов. Данная система выбрана в качестве прототипа заявленного изобретения. Основной недостаток прототипа заключается в недостаточной гибкости при экспорте ресурсов и реализации интерфейсов на языковом уровне, в результате чего система не может быть действительно распределенной системой. Кроме того, процессы в ней должны быть жестко связаны в силу заранее определенных интерфейсов. Указанные недостатки ухудшают гибкость, адаптивность и способность к самоорганизации системы-прототипа.Closest to the claimed invention in terms of the system is the operating system M.O.N.S.T.E.R. (see MONSTER: A new behavior-based microkernel for mobile robots. Dirk Spenneberg, Martin Albrecht, Till Backhaus, Robotics Lab, Faculty of Mathematics and Computer Science, University of Bremen. Bibliotheksstr. 1, D-28359 Bremen, Germany (http : /www.informatik.uni-bremen.de/robotik), which uses the concept of shared processes together with the export of resources. This system is selected as a prototype of the claimed invention. The main disadvantage of the prototype is the lack of flexibility when exporting resources and implementing interfaces in the language level, whereby the system cannot be a truly distributed system. the processes in it must be rigidly connected due to predefined interfaces.These drawbacks impair the flexibility, adaptability and self-organization ability of the prototype system.

Задачей, на решение которой направлено заявляемое изобретение, заключается в разработке способа и системы контроля процессов, которые позволили бы повысить гибкость, адаптивность и способность к самоорганизации микроядерной операционной системы.The task to which the invention is directed is to develop a method and system for controlling processes that would improve the flexibility, adaptability and self-organization ability of a micronuclear operating system.

Поставленная задача решена путем создания способа контроля процессов в микроядерной операционной системе, отличающегося тем, чтоThe problem is solved by creating a process control method in a microkernel operating system, characterized in that

- получают описатель (далее упоминается как «дескриптор») следующего процесса для планирования из действующей очереди выполнения процессов;- receive a descriptor (hereinafter referred to as a "descriptor") of the next process for planning from the current process execution queue;

- проверяют, пуста ли очередь выполнения;- check if the execution queue is empty;

- проверяют с помощью планировщика, закончен ли внутренний цикл процесса, если закончен, то перемещают дескриптор процесса в очередь ожидания;- check with the help of the scheduler whether the internal cycle of the process is completed, if it is finished, then the process handle is moved to the waiting queue;

- если очередь выполнения пуста, обрабатывают путем смешивания все сообщения, находящиеся в системной очереди сообщений, и уменьшают (декрементируют) объем всех счетчиков связей (link counters) в базе данных маршрутизации сообщений (MRD - Message Routing Database) после завершения цикла смешивания;- if the execution queue is empty, process by mixing all the messages in the system message queue and reduce (decrement) the volume of all link counters in the message routing database (MRD - Message Routing Database) after the completion of the mixing cycle;

- перемещают с помощью планировщика дескрипторы всех процессов из очереди «ожидания» в очередь выполнения для подготовки системы к следующему циклу смешивания, в ином случае используют дескрипторы следующего процесса в очереди;- using the scheduler, they move the descriptors of all processes from the “waiting” queue to the execution queue to prepare the system for the next mixing cycle, otherwise they use the descriptors of the next process in the queue;

- уменьшают с помощью планировщика объем I/O (input/output) счетчиков текущего процесса (process counters) и проверяют значения объемов этих I/O счетчиков, при этом, если значения счетчиков меньше нуля, то увеличивают (инкрементируют) объем счетчика процесса, в ином случае - перемещают процесс из очереди выполнения в очередь ожидания.- using the scheduler, reduce the volume of I / O (input / output) counters of the current process (process counters) and check the values of the volumes of these I / O counters, while if the values of the counters are less than zero, they increase (increment) the volume of the process counter, in otherwise, they move the process from the execution queue to the wait queue.

Для функционирования способа важно, чтобы увеличивали объем счетчиков процесса каждый раз, когда процесс получает или отправляет сообщение, и при этом выполняли следующие операции:For the functioning of the method, it is important that the volume of process counters is increased each time the process receives or sends a message, and at the same time perform the following operations:

- когда инициируется отправка сообщения, с помощью процедуры отправки пытаются получить дескриптор отсылающего процесса для предотвращения анонимности сообщения, при этом, если не получают этот дескриптор, то уничтожают сообщение, в ином случае - отправляют сообщение, при этом процедура получает список подписчиков из базы данных маршрутизации сообщений по дескриптору;- when sending a message is initiated, using the sending procedure they try to get a descriptor of the sending process to prevent the anonymity of the message, if they do not receive this descriptor, they destroy the message, otherwise they send the message, and the procedure receives a list of subscribers from the routing database descriptor messages;

- проверяют список подписчиков, при этом, если список подписчиков пуст, это означает, что для данного процесса нет подписчиков, и объем выходных счетчиков (output counters) уменьшают на соответствующую величину, как и объем счетчиков ссылок для дескриптора в базе данных маршрутизации сообщений, после чего сообщение уничтожают и обрабатывают следующее сообщение в очереди; если список подписчиков не пуст, сообщение дублируют для каждого подписчика из списка и суммируют число успешных дублей;- check the list of subscribers, however, if the list of subscribers is empty, this means that there are no subscribers for this process, and the output counters are reduced by the corresponding amount, as well as the volume of link counts for the descriptor in the message routing database, after why the message is destroyed and the next message in the queue is processed; if the list of subscribers is not empty, the message is duplicated for each subscriber from the list and the number of successful takes is summarized;

- увеличивают объем I/O счетчиков для процесса отправки на соответствующую величину, которую определяют из числа успешных попыток, соответственно также увеличивают объем счетчиков ссылок в MRD.- increase the volume of I / O counters for the sending process by the appropriate amount, which is determined from the number of successful attempts, respectively, also increase the volume of reference counters in the MRD.

Для функционирования способа важно, чтобы сообщение дублировали для каждого подписчика, причем генерировали сообщение, которое нужно продублировать, и список подписчиков в качестве параметров, а в ответ сообщали о числе успешных попыток дублирования, и при этом выполняли следующие операции:For the method to function, it is important that the message is duplicated for each subscriber, and a message is generated that needs to be duplicated, and a list of subscribers as parameters, and in response, the number of successful duplication attempts is reported, and the following operations are performed:

- получают список подписчиков и сообщение, которое нужно послать, в качестве параметров и осуществляют копирование сообщения;- receive a list of subscribers and the message to be sent as parameters and copy the message;

- копируют сообщение в очередь сообщений процесса, идентифицированного по дескриптору подписчика, причем, если дескриптор подписчика опознан и копирование было произведено успешно, тогда увеличивают объем счетчика ссылок в списке подписчиков для данного дескриптора и увеличивают объем входных счетчиков данного дескриптора процесса.- copy the message into the message queue of the process identified by the subscriber's descriptor, and if the subscriber's descriptor is identified and copying was successful, then increase the volume of the reference count in the list of subscribers for this descriptor and increase the amount of input counters of this process descriptor.

Поставленная задача решена также путем создания системы контроля процессов в микроядерной операционной системе, содержащей перемешивающий слой и подсистему сообщений, которая сформирована как отдельная подсистема и включает в себя базу данных маршрутизации сообщений (MRD), которая используется подсистемой для маршрутизации сообщениями, причем MRD организована как объектная база данных и содержит два типа таблиц: таблицу источников сообщений (MRT) и таблицу подписчиков, при этом MRD имеет системную очередь сообщений, в которую поступают сообщения от процессов для дальнейшей пересылки подсистемой сообщений.The problem was also solved by creating a process control system in a microkernel operating system containing a mixing layer and a message subsystem, which is formed as a separate subsystem and includes a message routing database (MRD), which is used by the subsystem for message routing, and MRD is organized as an object the database contains two types of tables: the message source table (MRT) and the subscriber table, while the MRD has a system message queue, which receives messages scheniya of processes to forward communications subsystem.

Таким образом, технический результат достигается за счет создания дополнительных атрибутов в описателях выполняемых процессов, введения способа обнаружения и составления списка процессов в операционной системе, а, также за счет осуществления распределенной обработки данных. Распределенная обработка данных обеспечена введением, так называемого, "перемешивающего слоя", обеспечивающего синхронизацию всех выполняемых процессов. Полный цикл синхронизации всех процессов далее обозначается как "цикл смешивания".Thus, the technical result is achieved by creating additional attributes in descriptors of the processes being performed, introducing a method for detecting and compiling a list of processes in the operating system, as well as by performing distributed data processing. Distributed data processing is provided by the introduction of the so-called “mixing layer”, which ensures synchronization of all the processes performed. The complete synchronization cycle of all processes is hereinafter referred to as the “mixing cycle”.

Для лучшего понимания заявленного изобретения далее приводится его подробное описание с привлечением графических материалов.For a better understanding of the claimed invention the following is a detailed description with the involvement of graphic materials.

Фиг.1. Схема дополнительных атрибутов к описателю процесса, выполненного согласно изобретению.Figure 1. Scheme of additional attributes to the descriptor of the process performed according to the invention.

Фиг.2. Схема пошагового выполнения способа контроля процессов в микроядерной операционной системе, осуществляемого согласно изобретению.Figure 2. A step-by-step diagram of a method for controlling processes in a microkernel operating system carried out according to the invention.

Фиг.3. Схема пошагового выполнения процедуры увеличения объема счетчиков процессов, выполненной согласно изобретению.Figure 3. A diagram of the step-by-step procedure for increasing the volume of process counters, performed according to the invention.

Фиг.4. Схема структуры базы данных маршрутизации (MRD) процесса, выполненной согласно изобретению.Figure 4. A structure diagram of a routing database (MRD) of a process according to the invention.

Фиг.5. Схема движения сообщения в микроядерной операционной системе согласно изобретению.Figure 5. A message flow diagram in a microkernel operating system according to the invention.

Фиг.6 Схема пошагового выполнения процедуры дублирования сообщения, выполненной согласно изобретению.6 is a diagram of the step-by-step execution of the message duplication procedure performed according to the invention.

Существо заявляемого изобретения заключается в следующем. Представляется важным, чтобы каждый процесс в системе был отделен от других процессов для обеспечения следующих характеристик: гибкости, адаптивности, устойчивости к сбоям и сохранности данных, и поэтому они должны быть связаны один с другим лишь ассоциативными связями. Это означает недопустимость прямых взаимодействий между процессами (direct inter-process communication). После запуска каждому процессу присваивают уникальный идентификатор (дескриптор) и регистрируют его описание в базе данных описаний ресурсов.The essence of the invention is as follows. It seems important that each process in the system be separated from other processes to ensure the following characteristics: flexibility, adaptability, fault tolerance and data security, and therefore they should be connected only with associative relations. This means the inadmissibility of direct interactions between processes (direct inter-process communication). After starting, each process is assigned a unique identifier (descriptor) and its description is recorded in the resource description database.

Каждый процесс имеет точку входа в логический блок процесса, и, в общем случае, логический блок осуществляет бесконечный замкнутый цикл. Планировщик управляет выполнением процесса, т.е. осуществляет контроль, и гарантирует один цикл выполнения логического блока для каждого процесса в общем цикле смешивания. Поэтому характеристический период (время цикла смешивания) в такой операционной системе описывают следующим выражениемEach process has an entry point into the logical block of the process, and, in the general case, the logical block carries out an infinite closed loop. The scheduler controls the execution of the process, i.e. carries out control, and guarantees one cycle of execution of the logical block for each process in the general mixing cycle. Therefore, the characteristic period (mixing cycle time) in such an operating system is described by the following expression

Figure 00000001
,
Figure 00000001
,

где N - число выполняемых в данный момент процессов, tn - время выполнения процесса под номером n.where N is the number of processes currently running, t n is the execution time of the process at number n.

Каждый процесс в системе, помимо стандартного дескриптора процесса, имеет дескриптор его поведения и совместной работы (дескриптор группового или «социального» поведения процесса). Дескриптор группового поведения процесса может быть организован как в виде дополнительных атрибутов в стандартном описателе, так и в виде отдельного блока. Используя дескриптор группового поведения процесса, планировщик может принять решение о прекращении (уничтожении) процесса, если поведение процесса становится «асоциальным», т.е. неблагоприятным, по отношению к системе. Решение основывается на формальных параметрах, которые отражают групповые связи процесса, а для обеспечения работы данного механизма вводятся счетчики сообщений (input counters). Групповые связи формируются в процессе обмена данными между процессами и при отсутствии связей (обмена сообщениями) для конкретного процесса, такой процесс считается несоответствующим системе и должен быть прекращен. Таким образом, в каждом процессе необходимо реализовывать алгоритмы для установления и поддержания групповых («социальных») связей. Иначе такой процесс, в конечном счете, будет прекращен планировщиком.Each process in the system, in addition to the standard process descriptor, has a descriptor of its behavior and collaboration (a descriptor of the group or “social” process behavior). The descriptor of the group behavior of the process can be organized as additional attributes in the standard descriptor, or as a separate unit. Using the descriptor of the group behavior of the process, the scheduler can decide to terminate (destroy) the process if the process behavior becomes “asocial”, i.e. unfavorable in relation to the system. The solution is based on formal parameters that reflect the group connections of the process, and to ensure the operation of this mechanism, input counters are introduced. Group communications are formed in the process of exchanging data between processes and in the absence of communications (messaging) for a particular process, such a process is considered inappropriate to the system and should be terminated. Thus, in each process, it is necessary to implement algorithms to establish and maintain group ("social") relationships. Otherwise, such a process will ultimately be terminated by the scheduler.

Как было сказано выше, каждый процесс должен быть хорошо отделен от других. В идеале, он не должен знать ничего о других выполняемых процессах в системе в исходном состоянии процесса, когда он загружен в первый раз. Таким образом, главная идея заключается в том, чтобы сделать его анонимным процессом. Каждый процесс имеет входящую и выходящую информацию, в исходном состоянии процесс пытается найти необходимые для работы ресурсы, посылая входные и выходные запросы в систему. Чтобы быть независимым от архитектуры системы (типа файловой системы и структуры файловой системы), он должен знать только описание необходимого ресурса. Для того чтобы сделать механизм работоспособным, предложен также способ поиска ресурсов.As mentioned above, each process should be well separated from the others. Ideally, he should not know anything about other running processes in the system in the initial state of the process when it is loaded for the first time. So the main idea is to make it an anonymous process. Each process has incoming and outgoing information; in the initial state, the process tries to find the resources necessary for work by sending input and output requests to the system. To be independent of the system architecture (such as the file system and file system structure), he needs to know only the description of the required resource. In order to make the mechanism workable, a method for finding resources is also proposed.

Для выполнения заявленного способа используют счетчики связей в дескрипторе процесса (Фиг.1). Поля, которые должны быть добавлены в дескриптор процесса для предоставления информации для смешивающих слоев, следующие: объем счетчика 1 посланных (output) сообщений увеличивается каждый раз, когда сообщение было успешно послано данным процессом. Объем счетчика 2 полученных (input) сообщений увеличивается каждый раз, когда сообщение было успешно получено данным процессом; объем счетчика 3 посланных байтов увеличивается на число байтов, посланных в сообщении; объем счетчика 4 полученных байтов увеличивается на число байтов, полученных в сообщении; трасса 5 всего времени выполнения - это связанный список периодов выполнения циклов для недавно выполненных циклов процесса.To perform the claimed method, use link counters in the process descriptor (Figure 1). The fields that must be added to the process descriptor to provide information for the mixing layers are as follows: the volume of the counter of 1 sent (output) messages increases each time a message has been successfully sent by this process. The volume of the counter 2 received (input) messages increases each time a message has been successfully received by this process; counter 3 sent bytes increases by the number of bytes sent in the message; counter 4 received bytes increases by the number of bytes received in the message; trace 5 of the total run time is a linked list of cycle times for recently executed process cycles.

Рассмотрим пошаговое выполнение заявленного способа (Фиг.2). Сначала получают дескриптор следующего процесса из очереди ожидания (шаг 1). Проверяют, пуста ли очередь выполнения (шаг 2). Перемещают все процессы из очереди ожидания в очередь выполнения (шаг 3). Перемещают процесс в очередь выполнения (шаг 4). Проверяют, закончен ли цикл выполнения для данного процесса (шаг 5). Уменьшают объем I/O-счетчиков процесса (шаг 6). Прекращают процесс (включают процесс в очередь на прекращение) (шаг 7). Проверяют, обнулены ли I/O счетчики процесса (шаг 8). Перемещают процесс из очереди выполнения в очередь ожидания (отложенный процесс) (шаг 9). Обрабатывают все сообщения из очереди сообщений в подсистеме сообщений и уменьшают объем всех счетчиков ссылок в MRD (шаг 10).Consider the step-by-step implementation of the claimed method (Figure 2). First get the handle to the next process from the wait queue (step 1). Check if the execution queue is empty (step 2). Move all processes from the waiting queue to the execution queue (step 3). Move the process to the execution queue (step 4). Check if the execution cycle for the given process is completed (step 5). Reduce the volume of I / O process counters (step 6). Terminate the process (include the process in the queue for termination) (step 7). Check if the I / O process counters are reset (step 8). Move the process from the execution queue to the wait queue (deferred process) (step 9). They process all messages from the message queue in the message subsystem and reduce the volume of all link counters in the MRD (step 10).

Как видно из описания, в ходе выполнения способа все процессы будут прекращены, так как объемы их I/О-счетчиков будут сведены к нулю. Чтобы избежать прекращения, процесс должен постоянно увеличивать объем своих счетчиков. Для обеспечения совместной работы в данном изобретении предложена косвенная процедура увеличения объема I/О-счетчиков для процесса, которую выполняют следующим образом (см. Фиг.3). Получают дескриптор отправляющего процесса (шаг 11). Проверяют правильность дескриптора отправителя (шаг 12). Уничтожают сообщение и выходят из процедуры (шаг 13). Получают список подписчиков из таблицы источников сообщений (MRT - Message Routing Table) (шаг 14). Уменьшают объем счетчиков отправленных сообщений отправляющего процесса (шаг 15). Вызывают процедуру дублирования сообщения (шаг 16). Увеличивают объем выходных счетчиков отправляющего процесса на соответствующую величину (шаг 17). Увеличивают объем выходных счетчиков MRT для дескриптора на соответствующую величину (шаг 18). Уменьшают объем счетчиков ссылок в MRT для дескриптора (шаг 19).As can be seen from the description, during the execution of the method, all processes will be stopped, since the volumes of their I / O counters will be reduced to zero. To avoid termination, the process must constantly increase the volume of its counters. To ensure collaboration, the present invention proposed an indirect procedure for increasing the volume of I / O counters for the process, which is performed as follows (see Figure 3). Receive the descriptor of the sending process (step 11). Verify the sender descriptor is correct (step 12). Destroy the message and exit the procedure (step 13). Get the list of subscribers from the message source table (MRT - Message Routing Table) (step 14). Reduce the counters of sent messages from the sending process (step 15). The message duplication procedure is called (step 16). Increase the volume of output counters of the sending process by an appropriate amount (step 17). Increase the volume of output MRT counters for the descriptor by an appropriate amount (step 18). Reduce the volume of reference counts in the MRT for the descriptor (step 19).

Подсистема сообщений сформирована как отдельная подсистема микроядерной операционной системы и должна выполнять описанные ниже функции. Основой подсистемы сообщений является база данных маршрутизации сообщений (MRD) (см. Фиг.4), которая используется подсистемой для маршрутизации сообщений. MRD организована как объектная база данных и содержит два типа таблиц: таблицу 6 источников сообщений и таблицу 7 получателей сообщений. MRD имеет системную очередь сообщений, в которую поступают сообщения от процессов для дальнейшей их пересылки подсистемой сообщений.The message subsystem is formed as a separate subsystem of the microkernel operating system and should perform the functions described below. The basis of the message subsystem is the message routing database (MRD) (see Figure 4), which is used by the subsystem to route messages. MRD is organized as an object database and contains two types of tables: table 6 of message sources and table 7 of message recipients. MRD has a system message queue, which receives messages from processes for further forwarding by the message subsystem.

Поток сообщений в операционной системе на микроядре показан на Фиг.5. Сообщения из очереди 8 системных сообщений обрабатываются в каждом цикле перемешивающего слоя. Когда все процессы 9 завершают очередной цикл выполнения (цикл перемешивающего слоя), подсистема сообщений обрабатывает все сообщения в очереди 8 до следующего цикла перемешивания.The message flow in the operating system on the microkernel is shown in FIG. 5. Messages from the queue 8 of system messages are processed in each cycle of the mixing layer. When all processes 9 complete the next run cycle (cycle of the mixing layer), the message subsystem processes all messages in queue 8 until the next cycle of mixing.

Параметры для процедуры отправки отправляют только в блоке сообщения. Процедура не предусматривает возврата значений.Parameters for the sending procedure are sent only in the message block. The procedure does not provide a return value.

Процедура дублирования заключается в получении сообщения, которое нужно продублировать, и списка подписчиков в качестве параметров, и в ответ сообщаются данные о числе успешных попыток дублирования. Пошаговое выполнение процедуры дублирования показано на Фиг.6. Получают очередной дескриптор из списка подписчиков (шаг 20). Проверяют дескриптор пользователя (шаг 21). Копируют (дублируют) сообщение в очередь входящих сообщений процесса, идентифицированного по дескриптору (шаг 22). Проверяют, прошло ли копирование успешно (процесс присутствует, но очередь не сформирована) (шаг 24). Далее, либо уменьшают объем счетчика ссылок для дескриптора в MRT (шаг 23), а затем уменьшают объем счетчика ссылок принятых по дескриптору сообщений процесса (шаг 27), либо увеличивают объем счетчика ссылок для дескриптора в таблице MRT (шаг 25), а затем увеличивают объем счетчика принятых по дескриптору процесса сообщений (шаг 26).The duplication procedure consists in receiving a message that needs to be duplicated, and a list of subscribers as parameters, and data on the number of successful duplication attempts are reported. A step-by-step duplication procedure is shown in FIG. 6. Get the next descriptor from the list of subscribers (step 20). Check the user descriptor (step 21). Copy (duplicate) the message into the incoming message queue of the process identified by the descriptor (step 22). Check if the copy was successful (the process is present, but the queue is not formed) (step 24). Next, either reduce the reference counter for the descriptor in the MRT (step 23), and then decrease the reference counter for the messages received from the process descriptor (step 27), or increase the reference counter for the descriptor in the MRT table (step 25), and then increase the volume of the counter received by the descriptor of the message process (step 26).

Главным применением заявленного изобретения могут быть роботизированные системы во встроенных и навигационных системах роботов.The main application of the claimed invention can be robotic systems in embedded and navigation systems of robots.

Хотя указанный выше вариант выполнения изобретения был изложен с целью иллюстрации настоящего изобретения, специалистам ясно, что возможны разные модификации, добавления и замены, не выходящие из объема и смысла настоящего изобретения, раскрытого в прилагаемой формуле изобретения.Although the above embodiment of the invention has been set forth to illustrate the present invention, it is clear to those skilled in the art that various modifications, additions and substitutions are possible without departing from the scope and meaning of the present invention disclosed in the attached claims.

Claims (4)

1. Способ контроля процессов в операционной системе на микроядре, отличающийся тем, что
получают дескриптор очередного процесса из планировщика действующей очереди выполнения процессов;
проверяют, пуста ли очередь выполнения процессов;
проверяют с помощью планировщика, закончен ли внутренний цикл очередного процесса, и, если он закончен, то перемещают дескриптор очередного процесса в очередь ожидания;
если очередь выполнения пуста, обрабатывают путем смешивания все сообщения, находящиеся в системной очереди сообщений, и уменьшают объем всех счетчиков связей в базе данных маршрутизации сообщений (MRD) после завершения цикла смешивания;
перемещают с помощью планировщика дескрипторы всех процессов из очереди «ожидания» в очередь выполнения для подготовки системы к следующему циклу смешивания, в ином случае используют дескрипторы следующего по очереди процесса;
уменьшают с помощью планировщика объем входных/выходных счетчиков текущего процесса и проверяют значения объемов этих входных/выходных счетчиков, при этом если значения счетчиков меньше нуля, то увеличивают объем счетчика процесса, в ином случае - перемещают процесс из очереди выполнения в очередь ожидания.
1. A method of controlling processes in an operating system on a microkernel, characterized in that
get the handle to the next process from the scheduler of the current process execution queue;
check if the process execution queue is empty;
using the scheduler, check whether the internal cycle of the next process is completed, and if it is finished, then move the handle of the next process to the wait queue;
if the execution queue is empty, process by mixing all the messages in the system message queue and reduce the volume of all communication counters in the message routing database (MRD) after the completion of the mixing cycle;
using the scheduler, they move the descriptors of all processes from the “waiting” queue to the execution queue to prepare the system for the next mixing cycle, otherwise they use descriptors of the next process in turn;
using the scheduler, they reduce the volume of input / output counters of the current process and check the values of the volumes of these input / output counters, while if the values of the counters are less than zero, they increase the volume of the process counter, otherwise, they move the process from the execution queue to the waiting queue.
2. Способ по п.1, отличающийся тем, что увеличивают объем счетчика процесса каждый раз, когда процесс получает или отправляет сообщение, при этом выполняют следующие операции:
когда инициируется отправка сообщения, с помощью процедуры отправки пытаются получить дескриптор отсылающего процесса для предотвращения анонимности сообщения, при этом, если получают этот дескриптор, то уничтожают сообщение, в ином случае отправляют сообщение, при этом процедура получает список подписчиков из MRD;
проверяют список подписчиков, при этом, если список подписчиков пуст, это означает, что для данного процесса нет подписчиков, и объем выходных счетчиков уменьшают на соответствующую величину, как и объем счетчиков ссылок для дескриптора в MRD, после чего сообщение уничтожают и обрабатывают следующее сообщение в очереди; если список подписчиков не пуст, сообщение дублируют для каждого подписчика из списка и суммируют число успешных дублей;
увеличивают объем входных/выходных счетчиков для процесса на соответствующую величину, которую определяют из числа успешных попыток, соответственно также увеличивают объем счетчиков ссылок в MRD.
2. The method according to claim 1, characterized in that the volume of the process counter is increased each time the process receives or sends a message, while performing the following operations:
when sending a message is initiated, using the sending procedure they try to get a descriptor of the sending process to prevent the anonymity of the message, while if they receive this descriptor, they destroy the message, otherwise they send the message, and the procedure receives a list of subscribers from MRD;
check the list of subscribers, and if the list of subscribers is empty, this means that there are no subscribers for this process, and the output counts are reduced by the corresponding amount, as well as the volume of reference counters for the descriptor in the MRD, after which the message is destroyed and the next message is processed in Queues if the list of subscribers is not empty, the message is duplicated for each subscriber from the list and summarizes the number of successful takes;
increase the volume of input / output counters for the process by an appropriate value, which is determined from the number of successful attempts, respectively, also increase the volume of reference counters in the MRD.
3. Способ по п.2, отличающийся тем, что сообщение дублируют для каждого подписчика, причем получают сообщение, которое нужно продублировать, и список подписчиков в качестве параметров, и посылают в ответ данные о числе успешных попыток дублирования, при этом выполняют следующие операции:
получают список подписчиков и сообщение, которое нужно послать в качестве параметров, и осуществляют копирование сообщения;
копируют сообщение в очередь сообщений процесса, идентифицированного по дескриптору подписчика, причем, если дескриптор подписчика подтвержден, и копирование было произведено успешно, то увеличивают объем счетчика ссылок в таблице подписчиков для данного дескриптора и увеличивают объем входных счетчиков данного дескриптора процесса.
3. The method according to claim 2, characterized in that the message is duplicated for each subscriber, and receive a message that needs to be duplicated, and a list of subscribers as parameters, and send data in response to the number of successful duplication attempts, while performing the following operations:
receive a list of subscribers and a message to be sent as parameters, and copy the message;
copy the message to the message queue of the process identified by the subscriber descriptor, and if the subscriber descriptor is confirmed and the copy was successful, then increase the volume of the reference counter in the subscriber table for this descriptor and increase the amount of input counters of this process descriptor.
4. Система управления выполнением процессов в операционной системе на микроядере, содержащая перемешивающий слой и подсистему сообщений, которая сформирована как отдельная подсистема и включает в себя базу данных маршрутизации сообщений MRD, которая используется подсистемой для маршрутизации сообщений, причем MRD организована как объектная база данных и содержит два типа таблиц: таблицу источников сообщений MRT и таблицу подписчиков, при этом MRD имеет системную очередь сообщений, в которую поступают сообщения от процессов для дальнейшей их пересылки подсистемой сообщений. 4. The control system for the execution of processes in the operating system on the micronucleus, containing a mixing layer and a message subsystem, which is formed as a separate subsystem and includes a message routing database MRD, which is used by the subsystem to route messages, and MRD is organized as an object database and contains two types of tables: the table of message sources MRT and the table of subscribers, while MRD has a system message queue, which receives messages from processes for further and transfer subsystem messages.
RU2008110499/07A 2008-03-20 2008-03-20 Method and system for controlling processes in operating system on microkernel RU2408062C2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
RU2008110499/07A RU2408062C2 (en) 2008-03-20 2008-03-20 Method and system for controlling processes in operating system on microkernel

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
RU2008110499/07A RU2408062C2 (en) 2008-03-20 2008-03-20 Method and system for controlling processes in operating system on microkernel

Publications (2)

Publication Number Publication Date
RU2008110499A RU2008110499A (en) 2009-09-27
RU2408062C2 true RU2408062C2 (en) 2010-12-27

Family

ID=41168965

Family Applications (1)

Application Number Title Priority Date Filing Date
RU2008110499/07A RU2408062C2 (en) 2008-03-20 2008-03-20 Method and system for controlling processes in operating system on microkernel

Country Status (1)

Country Link
RU (1) RU2408062C2 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2817547C1 (en) * 2023-11-20 2024-04-16 Акционерное общество "Лаборатория Касперского" System and method of monitoring operability of processes in operating system

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2817547C1 (en) * 2023-11-20 2024-04-16 Акционерное общество "Лаборатория Касперского" System and method of monitoring operability of processes in operating system

Also Published As

Publication number Publication date
RU2008110499A (en) 2009-09-27

Similar Documents

Publication Publication Date Title
CN101305551B (en) Method, system, network node and device for the construction and execution of a distributed workflow in a communication system
US8270299B2 (en) Communicator-based token/buffer management for eager protocol support in collective communication operations
US9288132B2 (en) Method and system for monitoring messages passed over a network
Van Tilborg et al. Foundations of real-time computing: Scheduling and resource management
US9703595B2 (en) Multi-core system with central transaction control
US20150143334A1 (en) Message exchange pattern rendezvous abstraction
US20070079021A1 (en) Selective I/O prioritization by system process/thread and foreground window identification
CN113254240B (en) Method, system, device and medium for managing control device
US11321135B2 (en) Rate limiting compliance assessments with multi-layer fair share scheduling
Kraemer et al. Aligning UML 2.0 state machines and temporal logic for the efficient execution of services
JP2534229B2 (en) Distributed data processing method in multi-process computer system
RU2408062C2 (en) Method and system for controlling processes in operating system on microkernel
Arestova et al. ITANS: Incremental task and network scheduling for time-sensitive networks
CN104572315A (en) Inter-subsystem communication method, communication entities and distributed communication system
EP4430530A1 (en) Operating system for quantum network nodes and execution of quantum network applications using such operating system
Busch et al. Stable Scheduling in Transactional Memory
CN107566677A (en) A kind of method and apparatus of resource transfers
CN116048606A (en) Data processing
CN103488530A (en) Lock migration method and device
US10140150B2 (en) Thread diversion awaiting log call return
Wilson Distributed, heterogeneous resource management using artificial immune systems
Wang et al. TIDE: a Timing-Deterministic and Efficient Executor for micro-ROS
Moure et al. TransCom: a communication microkernel for transputers
Heymann et al. TransCom: a Communication Microkernel for Transputers
CN118095351A (en) Cooperative processing device and method for layer normalization calculation

Legal Events

Date Code Title Description
FA92 Acknowledgement of application withdrawn (lack of supplementary materials submitted)

Effective date: 20090917

FZ9A Application not withdrawn (correction of the notice of withdrawal)

Effective date: 20100623

MM4A The patent is invalid due to non-payment of fees

Effective date: 20210321