СПОСОБ И СИСТЕМА КОНТРОЛЯ ПРОЦЕССОВ В ОПЕРАЦИОННОЙ СИСТЕМЕ НА МИКРОЯДРЕ

1. Способ контроля процессов в операционной системе на микроядре, отличающийся тем, что
формируют дескриптор очередного процесса из планировщика действующей очереди выполнения процессов;
проверяют, пуста ли очередь выполнения процессов;
проверяют с помощью планировщика, закончен ли внутренний цикл очередного процесса, и если он закончен, то перемещают дескриптор очередного процесса в очередь ожидания;
если очередь выполнения пуста, обрабатывают путем смешивания все сообщения, находящиеся в системной очереди сообщений, и уменьшают объем всех счетчиков связей в базе данных маршрутизации сообщений (MRD) после завершения цикла смешивания;
перемещают с помощью планировщика дескрипторы всех процессов из очереди «ожидания» в очередь выполнения для подготовки системы к следующему циклу смешивания, в ином случае используют дескрипторы следующего по очереди процесса;
уменьшает с помощью планировщика объем входных/выходных счетчиков текущего процесса и проверяют значения объемов этих входных/выходных счетчиков, при этом если значения счетчиков меньше нуля, то увеличивают объем счетчика процесса, в ином случае перемещают процесс из очереди выполнения в очередь ожидания.
2. Способ по п.1, отличающийся тем, что увеличивают объем счетчика процесса каждый раз, когда процесс получает или отправляет сообщение, при этом выполняют следующие операции:
когда инициируется отправка сообщения, с помощью процедуры отправки пытаются получить дескриптор отсылающего процесса для предотвращения анонимности сообщения, при этом если получают этот дескриптор, то уничтожают сообщение, в ином случае отправляют сообщение, при этом процедура получает список подписчиков из базы данных маршрутизации сообщений по дескриптору;
проверяют список подписчиков, при этом, если список подписчиков пуст, это означает, что для данного процесса нет подписчиков, и объем выходных счетчиков уменьшают на соответствующую величину, как и объем счетчиков ссылок для дескриптора в базе данных маршрутизации сообщений, после чего сообщение уничтожают и обрабатывают следующее сообщение в очереди; если список подписчиков не пуст, сообщение дублируют для каждого подписчика из списка и суммируют число успешных дублей;
увеличивают объем входных/выходных счетчиков для процесса на соответствующую величину, которую определяют из числа успешных попыток, соответственно также увеличивают объем счетчиков ссылок в MRD.
3. Способ по п.2, отличающийся тем, что сообщение дублируют для каждого подписчика, причем получают сообщение, которое нужно продублировать, и список подписчиков в качестве параметров и посылают в ответ данные о числе успешных попыток дублирования, при этом выполняют следующие операции:
получают список подписчиков и сообщение, которое нужно послать в качестве параметров, и осуществляют копирование сообщения;
копируют сообщение в очередь сообщений процесса, идентифицированного по дескриптору подписчика, причем если дескриптор подписчика подтвержден и копирование было произведено успешно, то увеличивают объем счетчика ссылок в списке подписчиков MRT для данного дескриптора и увеличивают объем входных счетчиков данного дескриптора процесса.
4. Система управления выполнением процессов в операционной системе на микроядре, содержащая перемешивающий слой и подсистему сообщений, которая сформирована как отдельная подсистема и включает в себя базу данных маршрутизации сообщений MRD, которая используется подсистемой для маршрутизации сообщений, причем MRD организована как объектная база данных и содержит два типа таблиц: таблицу источников сообщений и таблицу подписчиков, при этом MRD имеет системную очередь сообщений, в которую поступают сообщения от процессов для дальнейшей их пересылки подсистемой сообщений.