СПОСОБ ОТЛАДКИ МНОГОЯДЕРНЫХ МНОГОПРОЦЕССНЫХ ВЫЧИСЛИТЕЛЬНЫХ СИСТЕМ С МЕХАНИЗМОМ КОНТРОЛЯ РЕЖИМА РЕАЛЬНОГО ВРЕМЕНИ Российский патент 2024 года по МПК G06F11/36 G06F8/60 

Описание патента на изобретение RU2830957C1

Изобретение относится к способу отладки многоядерных многопроцессных вычислительных систем, работающих в операционной системе реального времени.

Многоядерные многопроцессные вычислительные системы, работающие в операционной системе реального времени, применяются в различных сферах деятельности, в частности в системах управления технологическими процессами, системах промышленной автоматики, робототехнике, самолетостроении, медицинском оборудовании, компьютерах, телекоммуникационном оборудовании и пр.

Особенность операционной системы реального времени заключается в необходимости непрерывности режима реального времени при обработке данных и организации вычислительного процесса. В системе реального времени важна своевременность получения результата, т.е. обработка информации системой должна производиться за определенный конечный период. Своевременность результата, а значит и время работы программы является критичными, а поэтому перевод потоков функционального программного обеспечения в отложенный режим невозможен. Увеличение заложенного для выполнения программы времени в таких вычислительных системах расценивается как отказ и приводит к принудительной остановке программы.

Многоядерные многопроцессные вычислительные системы, функционируют под управлением операционной системы реального и/или жесткого реального времени и имеют сложную компонентно-ориентированную распределенную структуру, где прикладные алгоритмы функционируют корректно только при условии одновременной параллельной работы всех своих программных составляющих. В таких условиях отладка прикладных алгоритмов, изначально исключает перевод в отложенное состояние реализующих их потоков управления программного обеспечения. Это является основной сложностью (С-1) отладки вычислительных систем реального времени.

Ещё большую сложность (С-2) задает требование выполнения кода тех или иных программных компонентов строго в расписанных временных интервалах. В этом случае нужно обеспечить не только безостановочную отладку программного кода распределенных алгоритмов, но и, что еще более важно, контроль за потреблением процессорного времени со стороны механизмов отладки. Отладка не должна нарушать расписания работы того или иного компонента, забирая себе критически важный процент времени и нарушая, тем самым, требования режима реального времени.

Для отладки программного обеспечения в условиях режима реального времени современные инструменты используют механизмы, основанные на фиксации моментов выполнения операторов исходного кода, в заранее заданном наборе строк - т.е. трассировании. Так, к примеру, организован инструментарий отладки в известном пакете решений GDB, часто применяемом в наборе инструментов для операционной системы Linux, подразумевающем возможность отладки программных систем, работающем под управлением операционной системы реального времени. Для этого GDB позволяет разместить точку трассирования в заданной строке исходного кода, задав для нее отдельный список действий. По достижению потоком управления отлаживаемого программного обеспечения точки трассирования эти действия будут выполнены на инструментальной машине, включенной в комплекс отладки. Поток отлаживаемого программного обеспечения при этом переходит в отложенное состояние на время выполнения инструментальной машиной действий, запланированных в точке трассирования. Под действием здесь понимается набор арифметических операций, операций битовой арифметики, операций присваивания либо чтения клиентом GDB значения отслеживаемых переменных.

Основным недостатком подхода в GDB является неконтролируемость времени, затрачиваемого для отладочных действий, т.е. при таком подходе сложность С-2 остается.

Таким образом, в настоящее время имеется необходимость в улучшении способа отладки многоядерных многопроцессных вычислительных систем с механизмом контроля режима реального времени.

При отладке многопроцессных многоядерных вычислительных систем необходимо построить механизм, позволяющий прикладным процессам оставаться в активном состоянии, не переходя в отложенное, с возможностью контроля режима реального времени в отлаживаемой прикладной системе.

Задачей изобретения является обеспечение возможности отладки многоядерных многопроцессных вычислительных систем с механизмом контроля режима реального времени и сохранением режима реального времени работы программ, поиск и устранение ошибок программного обеспечения.

Технический результат изобретения заключается в сокращении времени и повышении производительности процесса отладки многоядерных многопроцессных вычислительных систем с механизмом контроля режима реального времени, сохранении режима реального времени работы программ, в поиске и устранении ошибок при сохранении режима реального времени работы программы в операционной системе реального времени, а также создание механизма интерактивного контроля вычислительных затрат для сохранения режима реального времени при отладке.

Технический результат достигается посредством предложенного способа отладки многопроцессных многоядерных вычислительных систем с механизмом контроля соблюдения режима реального времени характеризующегося тем, что осуществляют привязку наборов кодов отладочного сценария по адресу привязки в сегменте кода отлаживаемого программного обеспечения в центральном модуле серверного блока, встраивают в операционную систему реального времени вычислительной системы виртуальную машину в серверном блоке, соответствующую адресу привязки, для выполнения набора команд отладочного сценария, способных оперировать данными вычислительной системы и осуществлять передачу информации по сетевому интерфейсу в клиентском блоке, определяют время выполнения отладочного сценария до его старта и заранее исключают критическое влияние отладки на соблюдение режима реального времени, выполняют набор команд отладочного сценария, и по результатам их работы передают из серверного блока в модуль пользовательского интерфейса в клиентском блоке данные мониторинга глобальных и локальных объектов отлаживаемого программного обеспечения.

В способе отладки многопроцессных многоядерных вычислительных систем с механизмом контроля соблюдения режима реального времени дополнительно осуществляют параллельное выполнение отладочных сценариев на нескольких процессорных модулях и в нескольких процессах отлаживаемого программного обеспечения без перевода потоков отлаживаемого программного обеспечения в отложенное состояние и без перекомпиляции исходного кода отлаживаемого программного обеспечения.

В способе отладки многопроцессных многоядерных вычислительных систем с механизмом контроля соблюдения режима реального времени объекты отладки и мониторинга для отладочного сценария задают в виде непосредственных имен переменных из исходного кода отлаживаемого программного обеспечения.

В способе отладки многопроцессных многоядерных вычислительных систем с механизмом контроля соблюдения режима реального времени дополнительно осуществляют создание и редактирование сценария отладки, его трансляцию в последовательность команд и передачу их из клиентского блока в серверный блок для исполнения по адресу привязки отладочного события без перевода потоков отлаживаемого программного обеспечения в отложенное состояние и без перекомпиляции исходного кода отлаживаемого программного обеспечения.

В способе отладки многопроцессных многоядерных вычислительных систем с механизмом контроля соблюдения режима реального времени клиентский и серверные блоки предусматривают выполнение следующих функций:

устанавливают и/или отменяют в серверном блоке с помощью программного обеспечения клиентского блока привязку команд отладочного сценария к адресу без остановки и/или без перекомпиляции отлаживаемого программного обеспечения;

рассчитывают время на отладку, исходя из выбранной модели аппаратной реализации вычислительной системы и набора команд, полученных после трансляции отладочного сценария и сопоставляют с интервалом времени, отведенным в конфигурации операционной системы реального времени для состояния простоя в работе раздела, разрешенного к использованию в целях отладки;

выдают отказ от привязки отладочного сценария по адресу в сегменте исходного кода отлаживаемого раздела программного обеспечения, если расчетное время выполнения сценария превышает зарезервированное в расписании операционной системы реального времени свободное время (время простоя) раздела.

В способе отладки многопроцессных многоядерных вычислительных систем с механизмом контроля соблюдения режима реального времени набор команд в отладочных сценариях для серверного блока предусматривает выполнение следующих функций:

- выполнение всего набор арифметических и логических операций, заданных спецификацией формального языка сценариев отладки;

- выполнение операции присваивания согласно спецификации формального языка сценариев;

- выполнение логического условия и вложенного логического условия;

- вызов функции и передача параметров, реализованной в коде отлаживаемого программного обеспечения, на формальном языке сценариев;

- декларация отладочного события с привязкой к модулю исходного кода отлаживаемого программного обеспечения и к строке в модуле;

- выполнение привязки отладочного сценария, объединяемого в отдельную отладочную задачу, к отладочному событию;

- декларацию переменных отладочного сценария;

- использование переменных отладочного сценария в выражениях на ряду с обычными переменными исходного кода отлаживаемого программного обеспечения;

- чтение счетчика повторов работы потока управления отлаживаемого программного обеспечения по адресу привязки сценария отладочного события;

- чтение времени встроенных часов вычислительной системы;

- чтение и использование в арифметико-логических выражениях значений глобальных данных, локальных переменных и переменных отладочных сценариев, автоматически сохраненных виртуальной машиной в предыдущем цикле обработки события отладки по указанию отладочного сценария;

- мониторинг последовательности вызова функций отлаживаемого программного обеспечения при проходе адреса привязки сценария;

- выполнение оператора выдачи в клиентский блок значений переменных, результатов операций, а также свойств объектов операционной системы реального времени для мониторинга их по адресу привязки сценария на стороне клиентского блока.

В настоящем описании раскрывается способ отладки многопроцессной многоядерной вычислительной системы, позволяющий по заданной строке в исходном коде организовать управляющие воздействия для отладки и мониторинга прикладных потоков без перевода их в отложенное состояние, сохраняя реальное время, и с возможностью заранее рассчитать продолжительность этих воздействий в целях контроля режима реального времени.

Принципы и механизмы, воплощенные в способ отладки многопроцессной многоядерной вычислительной системы, позволяют разрешать упомянутые выше сложности С-1 и С-2.

Отладка прикладных алгоритмов осуществляется не переводя в отложенное состояние потоков управления программного обеспечения, в котором они реализованы. Это достигается благодаря тому, что способ исключает возможность перевода прикладных потоков в отложенное состояние при отладке, потому что подходы с пошаговой отладкой в нем заменены составлением отладочных сценариев, в которых программист на специальном языке записывает шаги отладочного сценария по отладке и мониторингу отлаживаемой системы, автоматически транслирует их посредством клиентского блока и выполняет на виртуальной машине, создаваемой в серверном блоке. Шаги отладочного сценария описываются на формальном языке и транслируются в набор кодов команд отладочного сценария, воспринимаемый и выполняемый виртуальной машиной. Трансляция отладочного сценария в набор команд не подразумевает перекомпиляцию отлаживаемого программного обеспечения. Исходный текст сценария отладки создается в терминах исходного кода отлаживаемого программного обеспечения, т.е. конструкции сценария допускают указание имен модулей, номеров строк, имен объектов данных и функций точно так, как они записываются в исходных файлах отлаживаемого программного обеспечения. Команды отладочного сценария для виртуальной машины передаются из клиентского блока в серверный блок по сетевому соединению, для чего способ предусматривает использование клиент-серверной архитектуры с сетевым обменом, действующим параллельно в отдельном потоке, чтобы исключить влияние сетевого взаимодействия на отлаживаемые потоки. Результаты работы сценариев отладки отправляются обратно из серверного блока в клиентский блок также по сетевому соединению. Выполнение отладочного сценария привязывается к адресу в сегменте кода отлаживаемого программного обеспечения. Точка привязки называется в контексте этого способа событием отладки, адрес вычисляется, по номеру строки исходного кода, в котором нужно провести отладочные действия, используя отладочную информацию из соответствующих секций отлаживаемого объектного файла, записанную в них при компиляции исходного кода. Выполнение сценария начинается автоматически при наступлении события отладки в серверном блоке. Связывание команд отладочного сценария с адресом события отладки и создание записи события в серверном блоке производится автоматизировано при участии клиентского блока и не подразумевает перезапуск оборудования вычислительной системы и/или перекомпиляцию отлаживаемого программного обеспечения. Для обеспечения развитой логики алгоритмов отслеживания дефектов в отлаживаемой программе и управления их повторяемостью, в данном способе предусмотрен набор из 5-ти специальных конструкций отладочных сценариев, нивелирующих потребности программиста в пошаговой отладке и поддерживающих стратегию отладки с сохранением режима реального времени.

1. Функционал запрета на обработку события отладки в момент прохода адреса привязки выражается в том, что в конструкции объявления события добавлено логическое выражение, определяющее запрет на обработку очередного отладочного события, конструкция, описывающая выражение, синтаксически является расширением конструкции объявления события отладки.

2. Организация структурированной логики обработки события отладки посредством механизма отладочных задач заключается в том, что в сценарии разрешено синтаксически оформлять обособленный блок операторов, объединенный по смыслу в самостоятельную единицу активности, называемый отладочной задачей, и, исходя из логики отладки, связывать этот блок с событием отладки или отменять связывание при помощи отдельных операторов управления сценариями, предусмотренными в спецификации формального языка отладки. Количество задач для одного события отладки в общем случае не ограничено.

3. Выполнение ветвления по условию, в том числе вложенному, в теле отладочной задачи для организации разветвленной логики отладочных действий, что позволяет организовать ожидание и управление проявлениями дефекта в программном обеспечении, в том числе повторяемого. Для управления логикой межпроцессной и межъядерной отладки предусмотрен синтаксис объявления и работы с локальными и глобальными переменными сценариев, существующих во время выполнения сценария. Данный механизм повышает эффективность инструментария ожидания внешних проявлений дефекта в том числе его повторения, когда дефект возникает в одном процессорном модуле или процессе, а его влияние отслеживается и регистрируется в другом.

4. Введение переменной сценария класса «предыдущее значение»: автоматическое размещение, вычисление и хранение в стеке виртуальной машины переменной вычисляемой виртуальной машиной в текущем цикле обработки события отладки для использования операторами сценария отладки в последующем цикле как обычной переменной во всех допустимых выражениях.

5. Для синхронизации процессов отладки на межпроцессном и межъядерном уровне предусмотрен действующий в способе механизм синхронизации набора события отладки на уровне операционной системы реального времени, который реализуется в терминах логических высказываний, оперирующих именами события отладки из набора, которые в рамках способа всегда глобальны и уникальны. В этом механизме допускается логически описывать формулу ожидания событий из различных процессов, где переменными являются их уникальные имена.

Таким образом, метод работы в пошаговом режиме замещается переходом к текстовым сценариям отладки, автоматизировано транслируемым в набор команд, выполняющимся автоматически по адресу события отладки, и связанным с определенной строкой исходного текста. Выполнение команд происходит без перевода потока отлаживаемого прикладного программного обеспечения в отложенный режим. Потенциал логики отладки описываемого здесь способа не уступает методу пошаговой отладки или трассированию, а потенциал логики межпроцессной и межъядерной отладки, а также межъядерной синхронизации событий в целях выявления дефектов и контроля их повторяемости уникален в сравнении с подходом пошаговой отладки и трассировки и превосходит его.

Предложенный способ отладки многопроцессной многоядерной вычислительной системы также решает требование выполнения кода тех или иных программных компонентов строго в расписанных временных интервалах. Способ отладки многопроцессной многоядерной вычислительной системы предусматривает реализацию механизма расчета времени выполнения отладочного сценария на виртуальной машине, функционирующей на целевой аппаратной платформе заранее заданной модели. Время выполнения каждой отдельно взятой команды виртуальной машины заранее замеряется как время выполнения набора машинных команд, составляющих её реализацию, и заносится в таблицу времен, программно доступную в серверном блоке на момент привязки кодов сценария к адресу события отладки. Если в момент привязки будет определено, что суммарное время выполнения всех команд сценария превышает временной отрезок, заданный в конфигурации операционной системы реального времени как незанятый вычислениями отрезок временного окна процесса (время допустимого простоя процесса) и предоставленный ему для использования при отладке, то событие отладки не будет зарегистрировано в серверном блоке. Серверный блок при этом откажет клиентскому блоку в привязке сценария к адресу в сегменте кода отлаживаемого программного обеспечения с прогнозом нарушения режима реального времени при отладке. Для отладочных сценариев, содержащих вычисления логического условия, время работы, будет проанализировано c учетом максимума в if- и else-блоках. Для сценариев, содержащих циклы с вычисляемой до старта верхней границей индекса, время работы будет проанализировано с учетом времени выполнения команд в теле цикла умноженное на значение верхней границы его индекса. Для сценариев, содержащих циклы с открытой верхней границей индекса, в способе предусмотрен отказ от привязки кодов сценария к событию отладки.

Изобретение поясняется следующими чертежами

Фиг. 1 - Общая функциональная схема способа

Фиг. 2 - Общий принцип действия способа

Фиг. 3 - Обобщенный формат метакоманды виртуальной машины

Фиг. 4 - Обобщенная структура виртуальной машины, функционирующей в центральном модуле серверного блока.

Фиг. 5 - Схема активности в центральном модуле серверного блока при отладке без перевода прикладных потоков в отложенное состояние.

Для пояснения принципа здесь и далее понятие команды отладочного сценария будет заменено термином метакоманда, а набор команд - термином метапрограмма. Далее будет приведено описание формата метакоманды, структуры виртуальной машины и механизмов выполнения метапрограмм на виртуальной машине.

Фиг. 1 иллюстрирует способ отладки в реальном времени без останова процессов с применением клиент-серверной архитектуры, клиентского блока и серверного блока, с трансляцией текстовых сценариев отладки в метакод и передачей по сети оттранслированных сценариев виртуальной машине, входящей в состав серверного блока, на исполнение. Отображена общая структурная компоновка функционального программного обеспечения, операционной системы реального времени в общем составе вычислительной системы. На фиг. 1 показаны связи главных механизмов способа: обработки отладочного исключения, вычислений на виртуальной машине, аппаратно-зависимых вычислений, воздействия на память данных отлаживаемой вычислительной системы, а также общей координации блоков и модулей, входящих в состав серверного блока посредством центрального модуля сервера отладки.

На фиг. 2 изображена общая схема взаимодействия блоков, входящих в состав клиентского блока и серверного блока, как для момента регистрации события отладки с привязкой сценария отладки к строке исходного текста, так и для обработки отладочной исключительной ситуации при наступлении события отладки. Блоки 1, 2, 3 и 4 относятся к клиентскому блоку, блоки 5-12 входят в состав серверного блока. Блок 4 чтения отладочной информации в составе клиентского блока семантически затрагивает аспекты использования стандартов представления отладочной информации, генерируемых компиляторами, таких, например, как стандарт DWARF. Блоки 5 и 7 из состава серверного блока приведены для пояснения увязки алгоритмов способа, функционирующих под управлением операционной системы реального времени.

Фиг. 3 иллюстрирует формат управляющей, в общем случае двух-операндной, команды виртуальной машины, условно разделяя её на фиксированную и переменную части. Для фиксированной части команды показаны обобщенные поля кода операции, типов доступа и типа данных операндов А и В.

Фиг. 4 дает общее представление о блоках виртуальной машины, к которым есть отсылки в способе. Обозначены блоки РОН и стек виртуальной машины. В общем виде представлены: регистр указателя инструкций, регистр флагов результата выполнения операции и регистр указателя стека. Для общего понимания процессов работы виртуальной машины показано, что в её структуру входят механизм исполнения текущей исполняемой метапрограммы и очередь метапрограмм, ожидающих исполнения.

На фиг. 5 отображена схема согласования работы способа во временной области. Показан общий режим работы отлаживаемой системы в процессе отладки и мониторинга в виде чередующихся состояний обработки отладочного исключения 19 и продолжение активности системы 20. Параллельно на временной оси показан механизм обработки исключения: 13, 14, 16, 17, функционирующий параллельно с процессом 18 отправки данных по сетевому соединению, подразумеваемому клиент-серверной архитектурой способа. На фиг. 5 также отображен предусмотренный способом механизм синхронизации во временной области процессов обработки аппаратного исключения как отладочного события 15 с одной стороны и заявки на регистрацию события отладки 21 с другой.

Все активности во временной области, отображенные на Фиг. 4, приведены для пояснения способности работы прикладных потоков без перевода их в отложенное состояние во время отладки алгоритмов и мониторинга объектов данных вычислительных систем, функционирующих под управлением операционной системы реального времени.

Входными данными в работе способа отладки многопроцессной многоядерной вычислительной системы является номер строки в исходном коде, где требуется установить отладочное событие и текст отладочного сценария, в котором описывается организующие действия и логика самой отладки, включающая установку события отладки, логическое выражение запрета или разрешения срабатывания события отладки, тексты сценариев отдельных отладочных задач, описывающих логику обработки события отладки, выдачу клиентскому блоку набора результатов в сетевом соединении, способ и логика привязки задач к событию отладки, удаление (отвязывание) задачи от события отладки, если того потребует логика отладки.

Результатом работы способа является регистрация в модуле пользовательского интерфейса 1 информации о наступлении отладочных событий, а также регистрация значений данных мониторинга глобальных и локальных объектов отлаживаемого программного обеспечения. К результату также относится регистрация времени, затраченного в серверном блоке для выполнения сценария отладки и подтверждение вхождения его в разрешенный интервал для контроля соблюдения режима реального времени в операционной системе реального времени во время отладки.

Смысл способа в следующем: получив имя исходного файла, номер строки в нем и текст отладочного сценария, модуль пользовательского интерфейса клиентского блока делает синхронный запрос к модулю 2 (фиг.2) трансляции сценариев отладки. В нем происходит трансляция исходного текста сценария в метапрограммы (бинарные наборы команд) для центральной виртуальной машины 9 и виртуальной машины отдельного взятого нового события отладки, чтобы впоследствии метапрограмма события отладки была привязана к нему в блоке 10 учетных данных и исполнялась при проходе её адреса привязки на виртуальной машине 11, организованной отдельно для этого события отладки.

В процессе трансляции модуль 2 трансляции сценариев отладки использует отладочную информацию из блока 4 чтения отладочной информации так, чтобы сформировать метакоманды с учетом типов, размеров и адресов пространства памяти вычислительной системы. Таким образом, виртуальная машина получает возможность работать в реальном пространстве памяти, стека и регистров вычислительной системы. Достаточный для функциональной полноты метакода обобщенный формат метакоманды базируется на представлении о формате команд ЭВМ с классической гарвардской архитектурой, где в общем случае подразумевается участие в операции двух операндов, задаваемых фиксированной и переменной частями команды.

Метакоманда в общем виде кодирует операцию, она содержит одну часть фиксированной длины и может содержать части переменной длины для каждого из операндов. Действия над операндами определяет код операции (КОп). Помимо него в фиксированной части хранятся, как минимум, коды способа доступа (СдА и СдВ) к данным операндов A и B в сегменте данных вычислительной системы (стека или регистров виртуальной машины), а также информация о типах данных (ТА и ТВ) операндов. В переменную часть метакоманды в общем виде записываются целочисленные значения адреса, смещения и индекса для доступа к данным системы. Это также могут быть значения констант целого или вещественного типа, которые соответствуют операндам и которыми метакоманда будет оперировать в момент своего выполнения на виртуальной машине.

Модуль 1 пользовательского интерфейса, получив метапрограмму после трансляции от модуля 2 трансляции сценариев отладки через модуль 3 сетевого интерфейса клиентского блока передает его в центральный модуль 8 серверного блока по протоколу сетевого клиент-серверного взаимодействия при участии модуля сетевого интерфейса 6 серверного блока (фиг.2).

Модуль 6 сетевого интерфейса в свою очередь, опираясь на блок 5 программных интерфейсов операционной системы реального времени, который предоставляет функционал организации сетевого обмена в клиент-серверном взаимодействии, работая параллельно с центральным модулем 8 серверного блока, обеспечивает прием метапрограммы отладочного сценария. Благодаря параллельной работе модуля 6 сетевого интерфейса и центрального модуля 8 серверного блока поступающие команды передаются на исполнение в центральную виртуальную машину 9 центрального модуля 8 серверного блока и выполняются параллельно, не прерывая работу текущих отладочных сценариев на виртуальных машинах 11 и работу функционального программного обеспечения, действующего под управлением операционной системы реального времени.

Центральный модуль 8 серверного блока, исполняя код отладочного сценария на виртуальной машине 9 при помощи поступивших команд сценария производит привязку события отладки к адресу, заданному непосредственно в теле метакоманды привязки, а при помощи блока 7 машино-зависимых интерфейсов записывает в сегмент кода вычислительной системы по адресу привязки события отладки команду генерации отладочного исключения. В блоке 10 учетных данных центральная машина регистрирует в центральном модуле 8 серверного блока новое событие отладки (ассоциирует ему целочисленный идентификатор) и относящуюся к нему метапрограмму, полученную от блока 6 сетевого интерфейса серверного блока.

Целочисленный идентификатор система отладки считает уникальным в пределах текущей сессии работы серверного блока. В дальнейшем его задействует сценарий отладки в операторах удаления события отладки.

Для полученной метапрограммы в памяти серверного блока динамически организуется отдельная виртуальная машина для её выполнения. Машина создается в виде описателя, в общем виде имеющей структуру, показанную на фиг. 4.

Экземпляр описателя динамически закрепляется в памяти блока 11 (фиг.2) виртуальных машин для выполнения метапрограмм, реализующих условия запрета выполнения отладочных событий, а также функционала отладочных задач.

Функционал виртуальной машины реализован программно. Отдельная машина поддерживает, как минимум, базовые классы инструкций, приведенных в табл.1.

Таблица 1.

Базовые классы инструкций, поддерживаемых виртуальной машиной

№ п/п Класс поддерживаемых инструкций Примечание 1 Арифметические и логические команды 2 Команда присваивания В том числе побайтное копирование структурных объектов 3 Вызов функции в коде вычислительной системы с передачей параметров Кадр параметров формируется в стеке виртуальной машины 4 Передача управления на указанное число отладочных команд вверх/вниз безусловно или по флагу результата предыдущей операции Аналог команды jmp («переход») или «переход» по условию 5 Управление отладочным событием Добавление и удаление.
Оперирует именем события и адресом привязки при добавлении; оперирует идентификатором события при удалении;
6 Управление привязкой отладочной задачи Привязка и удаление привязки отладочной задачи.
Оперирует идентификатором события в привязке и идентификатором задачи при удалении
7 Управление пространством стека виртуальной машины Посредством приращения регистра-указателя стека (SP) виртуальной машины 8 Чтение счетчика повторного наступления события 9 Чтение времени встроенных часов вычислительной системы 10 Чтение из стека вычислительной системы списка адресов функций вложенно вызванных до момента наступления СО Реализация мониторинга стека функционального программного обеспечения (ФПО) вычислительной системы 11 Поддержка переменных отладочного сценария класса «предыдущее значение» Виртуальная машина автоматизирует работу в собственном стеке, для вычисления и хранения значения переменной в текущем цикле обработки СО из предыдущего 12 Работа с областью сетевого обмена для передачи результатов выполнения отладочной задачи

Работа виртуальной машины начинается в системе в момент 14 на фиг. 5 при генерации отладочного исключения 13. Это происходит каждый раз, когда управляющий поток отлаживаемого программного обеспечения проходит адрес привязки события отладки в сегменте кода вычислительной системы. Старт виртуальной машины означает запуск метапрограммы P0 - текущей метапрограммы машины, которая содержит метакоманды вычисляющие логическое значение выражения запрета события отладки.

Если вычисления в момент 14 на фиг. 5 дали запрет события отладки, то работа в 16 и 17 на интервале 18 не начинается - обработка исключения просто завершается до следующего прохода адреса события отладки в 14.

Если состоялось разрешение события отладки или выражение запрета не было задано в сценарии, то начинается последовательное выполнение набора метапрограмм отладочных задач, связанных с обрабатываемым событием отладки. Это связывание происходит ранее в центральной виртуальной машине 9 центрального модуля (фиг.2) при регистрации сценария события отладки по инициативе клиентского блока посредством метакоманд сценария (табл. 1, класс 6).

Механизм связывания реализован в блоке 10 учетных данных отладочных событий и задач серверного блока (фиг. 2) таким образом, что при обработке отладочного исключения в 14 (фиг. 5), по каждому событию отладки имеется итеративный доступ к описателям всех отладочных задач и их метапрограмм, связанных с обрабатываемым событием отладки. Т.е. при необходимости выполнить отладочную задачу, её метапрограмма определяется по запросу к блоку 10 учетных данных (фиг. 2).

В процессе выполнения сценариев отладочных задач их логика формирует результаты в блоке 16 (фиг. 5): отладочная задача вычисляет и записывает в область сетевого обмена модуля 3 сетевого интерфейса клиентского блока (фиг. 2), нужный ей набор значений переменных или областей памяти вычислительной системы, или своих собственных регистров/стека на виртуальной машине или собственных локальных переменных. Области сетевого обмена служат буфером для отправки в клиентский блок данных по сетевому протоколу в параллельном потоке. Это выполняется метакомандами из табл. 1, класс 11. Также внутри отладочной задачи разрешены конструкции вычисления условия для ветвления сценария и вложенного условия, которое реализуется метакомандами из табл. 1, класс 4. Количество условий и конфигурация их вложенности в одной отладочной задаче теоретически не ограничены. Таким образом, в дополнении к проверке запрета в 14 (фиг. 5) механизм привязки отладочных задач к событию отладки представляет собой способ повышения эффективности управления логикой отладочных действий по ветвлениям с условиями в момент обработки системы отладки.

По завершению всех метапрограмм отладочных задач серверный блок организует старт 17 отправки результата (фиг. 5), посредством модуля 6 сетевого интерфейса серверного блока (фиг. 2), после чего осуществляется выход из обработки отладочного исключения и продолжение работы отлаживаемой программы до появления очередного события отладки, где описанные выше действия повторяются.

Таким образом, промежутки времени 19 и 20 (фиг. 5) постоянно чередуются, позволяя виртуальной машине выполнять отладочные сценарии, не переводя потоки отлаживаемого программного обеспечения в состояние «отложено». Сохранение режима реального времени контролируется за счет того, что на момент привязки метапрограммы сценария события отладки к адресу, время работы сценария уже рассчитано и известно. Т.е. период 19 обработки исключения гарантировано не отбирает критический процент времени простоя прикладного потока, а значит и процесса, и не влияет на режим реального времени. Таким образом, упомянутая выше проблема С-2 решается. При этом процесс 18 протекает параллельно паре чередующихся процессов 19 и 20 (рис.5), чтобы не переводить в ожидание прикладные потоки во время отправки данных по сетевому соединению. В итоге механизм мониторинга и отладки имеет возможность все время действовать на фоне активных прикладных отлаживаемых потоков и процессов, не переводя их в отложенное состояние, решая, тем самым, упомянутую выше проблему С-1.

Параллельное выполнение сценариев отладки на нескольких потоках в границах одного процесса, а также в нескольких процессах на одном или нескольких процессорных модулях организуется аналогичным образом - через запуск метапрограммы на нескольких виртуальных машинах при старте обработчика исключения.

Для непрерывной работы виртуальной машины, выполняющей метапрограмму события отладки параллельно с регистрацией и удалением других событий отладки и/или отладочных задач по инициативе клиентского блока, в схеме активности способа предусмотрены пункты синхронизации 15 и 21 (фиг. 5). В них осуществляется синхронизация работы обработчика исключения отладки с работой центральной виртуальной машины, выполняющей учетные операции с событием отладки или отладочными задачами. При попытке одновременно выполнить на одном процессорном модуле обе эти активности в силу вступят программируемые управляемые механизмы синхронизации, поддерживаемые операционной системой реального времени и аппаратной платформой, принуждающие одну из активностей к ожиданию. При этом само отлаживаемое программного обеспечения не окажется вовлеченным в эту синхронизацию и будет дальше продолжать независимую параллельную работу.

Таким образом, предложенный способ отладки многопроцессных многоядерных вычислительных систем с механизмом контроля соблюдения режима реального времени обеспечивает поиск и устранение ошибок программного обеспечения при сохранении режима реального времени в операционной системе посредством описанного здесь механизма интерактивного контроля вычислительных затрат для сохранения режима реального времени при отладке программного обеспечения, функционирующего под управлением операционной системы реального времени.

Похожие патенты RU2830957C1

название год авторы номер документа
ДВУКРАТНАЯ САМОДИАГНОСТИКА ПАМЯТИ ДЛЯ ЗАЩИТЫ МНОЖЕСТВА СЕТЕВЫХ КОНЕЧНЫХ ТОЧЕК 2016
  • Лутас Дан-Хоря
  • Лукакс Сандор
  • Тикле Даньел-Йоан
  • Чокас Раду-Йоан
  • Аникитей Йонел-Кристинел
RU2714607C2
ОТЛАДКА МАШИННОГО КОДА ПУТЕМ ПЕРЕХОДА ОТ ИСПОЛНЕНИЯ В СОБСТВЕННОМ РЕЖИМЕ К ИСПОЛНЕНИЮ В ИНТЕРПРЕТИРУЕМОМ РЕЖИМЕ 2014
  • Колтачев, Михаил
  • Ханделвал, Никхил
  • Ганди, Акрош
RU2668973C2
СПОСОБ И СИСТЕМА ЗАПУСКА ПРИЛОЖЕНИЙ В СИМУЛИРУЕМОЙ СРЕДЕ 2023
  • Андреев Руслан Сергеевич
  • Вишняков Артемий Юрьевич
  • Белоусов Александр Юрьевич
RU2818034C1
ЭКСПЕРИМЕНТАЛЬНО-ОТЛАДОЧНЫЙ КОМПЛЕКС ДЛЯ СУДОВЫХ ИНТЕГРИРОВАННЫХ НАВИГАЦИОННЫХ СИСТЕМ 2018
  • Заботлин Вячеслав Джемович
  • Сарычев Дмитрий Юрьевич
RU2696964C1
Система и способы для дешифрования сетевого трафика в виртуализированной среде 2017
  • Караджа Раду
RU2738021C2
СПОСОБ ФУНКЦИОНИРОВАНИЯ ОПЕРАЦИОННОЙ СИСТЕМЫ ВЫЧИСЛИТЕЛЬНОГО УСТРОЙСТВА ПРОГРАММНО-АППАРАТНОГО КОМПЛЕКСА 2016
  • Моляков Андрей Сергеевич
RU2626350C1
ПРОГРАММНО-ОПРЕДЕЛЯЕМАЯ АВТОМАТИЗИРОВАННАЯ СИСТЕМА И АРХИТЕКТУРА 2016
  • Шове Антонио
  • Вилхем Филипп
  • Харриман Меррилл
  • Алфано Эрик
  • Мехмидеджик Ален
  • Клинг Эндрю Ли Дэвид
  • Доггетт Дэвид
  • Воллела Вайджей
  • Наппей Филипп
RU2729885C2
ЦЕНТРАЛИЗОВАННОЕ УПРАВЛЕНИЕ ПРОГРАММНО-ОПРЕДЕЛЯЕМОЙ АВТОМАТИЗИРОВАННОЙ СИСТЕМОЙ 2016
  • Шове, Антонио
  • Вилхем, Филипп
  • Харриман, Меррилл
  • Алфано, Эрик
  • Мехмидеджик, Ален
  • Клинг, Эндрю, Ли, Дэвид
  • Доггетт, Дэвид
  • Воллела, Вайджей
RU2747966C2
ОБСЛУЖИВАНИЕ СОБЫТИЙ ДЛЯ ЛОКАЛЬНЫХ ПРИЛОЖЕНИЙ-КЛИЕНТОВ ПОСРЕДСТВОМ ЛОКАЛЬНОГО СЕРВЕРА 2012
  • Бар-Зеев Ави
  • Кимчи Гур
  • Бекман Брайан К.
  • Айзакс Скотт
  • Бэн-Итай Мейр
  • Ярив Еран
  • И Аркас Блейз Агуэра
RU2616162C2
Устройство для отладки программ 1982
  • Вигдоров Давид Исаакович
  • Щирин Григорий Владимирович
  • Исаханов Эдуард Сергеевич
  • Бабаев Сергей Сергеевич
SU1100627A1

Иллюстрации к изобретению RU 2 830 957 C1

Реферат патента 2024 года СПОСОБ ОТЛАДКИ МНОГОЯДЕРНЫХ МНОГОПРОЦЕССНЫХ ВЫЧИСЛИТЕЛЬНЫХ СИСТЕМ С МЕХАНИЗМОМ КОНТРОЛЯ РЕЖИМА РЕАЛЬНОГО ВРЕМЕНИ

Изобретение относится к области вычислительной техники. Технический результат заключается в сокращении времени и повышении производительности процесса отладки многоядерных многопроцессных вычислительных систем с механизмом контроля режима реального времени. Технический результат достигается за счет способа отладки многоядерных многопроцессных вычислительных систем, работающих в операционной системе реального времени. При осуществлении способа привязывают набор кодов отладочного сценария по адресу привязки в сегменте кода отлаживаемого программного обеспечения в центральном модуле серверного блока, встраивают в операционную систему реального времени вычислительной системы в серверном блоке виртуальную машину, соответствующую адресу привязки, для выполнения набора команд отладочного сценария, способных оперировать данными вычислительной системы и осуществлять передачу информации по сетевому интерфейсу в клиентский блок, определяют время выполнения отладочного сценария до его старта и заранее исключают критическое влияние отладки на соблюдение режима реального времени, выполняют набор команд отладочного сценария и передают из серверного блока в модуль пользовательского интерфейса в клиентском блоке данные мониторинга глобальных и локальных объектов отлаживаемого программного обеспечения. 5 з.п. ф-лы, 5 ил., 1 табл.

Формула изобретения RU 2 830 957 C1

1. Способ отладки многопроцессных многоядерных вычислительных систем с механизмом контроля соблюдения режима реального времени, характеризующийся тем, что осуществляют привязку наборов кодов отладочного сценария по адресу привязки в сегменте кода отлаживаемого программного обеспечения в центральном модуле серверного блока, встраивают в операционную систему реального времени вычислительной системы виртуальную машину в составе серверного блока, соответствующую адресу привязки, для выполнения набора команд отладочного сценария, способных оперировать данными вычислительной системы и осуществлять передачу информации по сетевому интерфейсу в клиентский блок, определяют время выполнения отладочного сценария до его старта и заранее исключают критическое влияние отладки на соблюдение режима реального времени, выполняют набор команд отладочного сценария и передают из серверного блока в модуль пользовательского интерфейса в клиентском блоке данные мониторинга глобальных и локальных объектов отлаживаемого программного обеспечения.

2. Способ отладки многопроцессных многоядерных вычислительных систем с механизмом контроля соблюдения режима реального времени по п.1, характеризующийся тем, что осуществляют параллельное выполнение отладочных сценариев на нескольких процессорных модулях и в нескольких процессах отлаживаемого программного обеспечения без перевода потоков отлаживаемого программного обеспечения в отложенное состояние и без перекомпиляции исходного кода отлаживаемого программного обеспечения.

3. Способ отладки многопроцессных многоядерных вычислительных систем с механизмом контроля соблюдения режима реального времени по п.1, характеризующийся тем, что объекты отладки и мониторинга для отладочного сценария задают в виде непосредственных имен переменных из исходного кода отлаживаемого программного обеспечения.

4. Способ отладки многопроцессных многоядерных вычислительных систем с механизмом контроля соблюдения режима реального времени по п.1, характеризующийся тем, что осуществляют создание и редактирование сценария отладки, его трансляцию в последовательность команд и передачу их из клиентского блока в серверный блок для исполнения по адресу привязки отладочного события без перевода потоков отлаживаемого программного обеспечения в отложенное состояние и без перекомпиляции исходного кода отлаживаемого программного обеспечения.

5. Способ отладки многопроцессных многоядерных вычислительных систем с механизмом контроля соблюдения режима реального времени по п.1, характеризующийся тем, что клиентский и серверные блоки предусматривают выполнение следующих функций:

- устанавливают и/или отменяют программным обеспечением клиентского блока в серверном блоке привязку команд отладочного сценария к адресу в сегменте кода вычислительной системы без остановки и/или без перекомпиляции отлаживаемого программного обеспечения;

- рассчитывают время на отладку, исходя из выбранной модели аппаратной реализации вычислительной системы и набора команд, полученных после трансляции отладочного сценария, и сопоставляют с интервалом времени, отведенным в конфигурации операционной системы реального времени для состояния простоя в работе раздела, разрешенного к использованию в целях отладки;

- выдают отказ от привязки отладочного сценария по адресу в сегменте исходного кода отлаживаемого раздела программного обеспечения вычислительной системы, если расчетное время выполнения сценария превышает зарезервированное в расписании операционной системы реального времени свободное время раздела.

6. Способ отладки многопроцессных многоядерных вычислительных систем с механизмом контроля соблюдения режима реального времени по п.1, характеризующийся тем, что набор команд в отладочных сценариях для серверного блока предусматривает выполнение следующих функций:

- выполнение всего набора арифметических и логических операций, заданных спецификацией формального языка сценариев отладки,

- выполнение операции присваивания согласно спецификации формального языка сценариев отладки;

- выполнение ветвления по условию и вложенного ветвления по условию;

- вызов и передача параметров функции, реализованной в коде отлаживаемого программного обеспечения, из текста сценария на формальном языке сценариев отладки;

- декларация отладочного события с привязкой к модулю исходного кода отлаживаемого программного обеспечения и к строке в модуле;

- выполнение привязки группы строк отладочного сценария, объединенных в отдельную отладочную задачу, к отладочному событию;

- декларацию переменных отладочного сценария;

- использование переменных отладочного сценария в выражениях наряду с обычными переменными исходного кода отлаживаемого программного обеспечения;

- чтение счетчика повторов работы потока управления отлаживаемого программного обеспечения по адресу привязки сценария отладочного события;

- чтение времени встроенных часов вычислительной системы;

- чтение и использование в арифметико-логических выражениях значений глобальных данных, локальных переменных и переменных отладочных сценариев, автоматически сохраненных виртуальной машиной в предыдущем цикле обработки отладочного события по указанию специальных операторов отладочного сценария;

- мониторинг последовательности вызовов функций отлаживаемого программного обеспечения при проходе адреса привязки сценария;

- выполнение оператора отправки в клиентский блок значений переменных и/или результатов операций для мониторинга их по адресу привязки сценария на стороне клиентского блока.

Документы, цитированные в отчете о поиске Патент 2024 года RU2830957C1

Изложница с суживающимся книзу сечением и с вертикально перемещающимся днищем 1924
  • Волынский С.В.
SU2012A1
Токарный резец 1924
  • Г. Клопшток
SU2016A1
Устройство для закрепления лыж на раме мотоциклов и велосипедов взамен переднего колеса 1924
  • Шапошников Н.П.
SU2015A1
US 7124404 B1, 17.10.2006
СПОСОБ И УСТРОЙСТВО ДЛЯ ОТЛАДКИ МНОГОЯДЕРНОЙ СИСТЕМЫ 2007
  • Джон Джонни Каллачерил
RU2405192C2

RU 2 830 957 C1

Авторы

Истомин Владимир Георгиевич

Елисеев Владимир Сергеевич

Родиков Алексей Викторович

Гордиенко Роман Григорьевич

Денисов Сергей Валерьевич

Федоренко Олег Григорьевич

Раковский Павел Сергеевич

Аносов Петр Михайлович

Даты

2024-11-27Публикация

2024-05-06Подача