ISSN 1991-3087
Рейтинг@Mail.ru Rambler's Top100
Яндекс.Метрика

НА ГЛАВНУЮ

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

 

Теряев Дмитрий Валерьевич,

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

Баранова Жанна Михайловна,

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

Лосенков Александр Анатольевич,

адъюнкт 12 кафедры автоматизированных систем боевого управления.

Военная академия войсковой противовоздушной обороны Вооруженных Сил Российской Федерации им. Маршала Советского Союза А. М. Василевского.

 

Работа выполнена при поддержке гранта Президента Российской Федерации МК-6544.2014.10.

 

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

Проектирование ПО для вычислительных систем специального назначения является весьма сложным, продолжительным и трудоемким процессом, занимающим, как правило, значительно большее время, чем разработка и создание самой аппаратуры. Практика показывает, что разработка и внедрение ПО для вычислительных систем специального назначения длятся от 3 до 7 лет, тогда как жизненный цикл вычислительной системы составляет всего от 10 до 15 лет. За время этого цикла неизбежно возникает необходимость её модернизации. В связи с этим конструкторские коллективы уже с начала 70-х годов стали создавать комплексы средств проектирования ПО, позволяющие автоматизировать разработку и отладку программных продуктов, получивших название систем автоматизации разработки программного обеспечения (САРПО).

Проблемы в достижении требуемой для практики эффективности процесса создания программного обеспечения рассматривались в работах отечественных и зарубежных ученых: В. М. Глушкова, Б. А. Головкина, А. В. Гордеева, В. В. Липаева, А. Г. Мамиконова, Г. Майерса, С. Янга и других авторов.

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

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

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

Необходимость развития методического аппарата проектирования программных средств поддержки процесса создания программного обеспечения объясняется повышением требований к качеству и надежности ФПО. Для получения ФПО высокого качества при допустимых затратах необходим системный подход к построению программных средств поддержки процесса создания программного

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

-                   анализ технического задания и разработка алгоритма;

-                   разработка текста программы – программирование;

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

-                   статическая отладка программ на кросс-системе вне реального масштаба времени;

-                   динамическая отладка программ на стенде Главного конструктора;

-                   комплексная динамическая отладка программ в реальном времени;

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

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

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

Каждый этап разработки ФПО завершается определенным видом «программного продукта», который можно представить в виде текстовой информации, исходной программы и загрузочным модулем.

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

Цикл проектирования ФПО разбивается на отдельные этапы, каждому из которых соответствует набор программ, наиболее полно обеспе­чивающих автоматизацию данного этапа. Перечень программ довольно широк и определяется спецификой создаваемого ФПО, особенностями приме­няемой технологии, квалификацией коллектива разработчиков, оснащенностью технологическими ЭВМ и т. д.

Средства разработки программ варьируются как по составу, так и по их группированию в крупные компоненты-подсистемы [1, 2, 3]. Система поддержки автоматизации разработки и отладки ФПО состоит из следующих программных компонентов [1]:

-                   компилятора с языка программирования высокого уровня;

-                   ассемблер;

-                   дизассемблер с машинного кода;

-                   загрузчик;

-                   компоновщик;

-                   эмулятор СЦВМ;

-                   система структурного контроля программ;

-                   система автоматизированного выпуска документации.

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

Ассемблер должен обеспечивать программирование всех машинно-зависимых алгоритмов.

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

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

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

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

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

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

Эмулятор СЦВМ должен обеспечивать диалоговый режим отладки и выполнять следующие действия:

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

-                   отображение значения области памяти ПЗУ, как в объектном коде, так и в символическом;

-                   отображение значения регистров;

-                   изменения значения области ОЗУ, как по физическим адресам, так и по именам языка программирования;

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

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

-                   задание пошагового выполнения эмулируемой программы с отображением состояния регистров;

-                   возможность прерывания эмуляции отлаживаемой программы;

-                   задание трассировки переменных по физическому адресу или по именам;

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

-                   измерение времени выполнения отлаживаемой программы.

В зависимости от характеристик инструментальной ПЭВМ, СЦВМ и особен­ностей создаваемого ПО наибольшая эффективность разработки может достигаться с использованием резидент или кросс-систем при различных уровнях автоматизации проектирования и на раз­личной технологической базе.

Резидент-системы обеспечивают создание ПО для тех же ЭВМ, на которых реализованы средства автоматизации программирования. При этом вследствие идентичности систем команд технологиче­ской ЭВМ и машины, реализующей созданные программы, отсут­ствует необходимость интерпретации команд, и все проектирова­ние может быть выполнено на одной машине. Вследствие этого практическое применение резидент-систем ограничено созданием ПО только для ЭВМ, полностью совместимых по архитектуре, си­стеме команд и близких по ресурсам. Однако ресурсы некоторых реализующих ЭВМ, которые можно выделить для технологиче­ских средств, малы и позволяют реализовать только простейшие средства автоматизации. Такие резидент-системы используются для создания в основном небольших программ.

Резидент-системы универсальных ЭВМ могут иметь развитые системы ав­томатизации проектирования, которые, в частности, применяются при создании программ для реализующих специализированных ЭВМ, полностью совместимых по системе команд с универсальны­ми технологическими ЭВМ.

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

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

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

 

Литература

 

1.                  Волосенков В. О., Морозов А.В. Способ построения средств комплексной отладки программного обеспечения специализированных ЭВМ функционирующих в режиме реального времени. Вестник Оренбургского Государственного университета. Оренбург, 2006. № 2, том 2. – с.136-140.

2.                  Константиновский В. М., Лопашинов П. М., Шалин С. А.. Средства разработки и отладки программного обеспечения для систем, работающих в режиме реального времени. ВСРЭ, серия РЛТ, 2000, вып. 1, с. 7-21.

3.                  Константиновский В. М., Лопашинов П. М., Волосенков В. О., Мурафетов А. А. Вычислительные системы зенитно-ракетных комплексов (зенитно-ракетных систем) войсковой ПВО. Учебник. ВА ВПВО ВС РФ. Смоленск, 2004. 276 с.

 

Поступила в редакцию 18.11.2015 г.

2006-2019 © Журнал научных публикаций аспирантов и докторантов.
Все материалы, размещенные на данном сайте, охраняются авторским правом. При использовании материалов сайта активная ссылка на первоисточник обязательна.