Электронная библиотека диссертаций и авторефератов России
dslib.net
Библиотека диссертаций
Навигация
Каталог диссертаций России
Англоязычные диссертации
Диссертации бесплатно
Предстоящие защиты
Рецензии на автореферат
Отчисления авторам
Мой кабинет
Заказы: забрать, оплатить
Мой личный счет
Мой профиль
Мой авторский профиль
Подписки на рассылки



расширенный поиск

Методы построения инструментальных средств разработки программного обеспечения систем реального времени Таран Евгений Андреевич

Методы построения инструментальных средств разработки программного обеспечения систем реального времени
<
Методы построения инструментальных средств разработки программного обеспечения систем реального времени Методы построения инструментальных средств разработки программного обеспечения систем реального времени Методы построения инструментальных средств разработки программного обеспечения систем реального времени Методы построения инструментальных средств разработки программного обеспечения систем реального времени Методы построения инструментальных средств разработки программного обеспечения систем реального времени Методы построения инструментальных средств разработки программного обеспечения систем реального времени Методы построения инструментальных средств разработки программного обеспечения систем реального времени
>

Данный автореферат диссертации должен поступить в библиотеки в ближайшее время
Уведомить о поступлении

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

Автореферат - 240 руб., доставка 1-3 часа, с 10-19 (Московское время), кроме воскресенья

Таран Евгений Андреевич. Методы построения инструментальных средств разработки программного обеспечения систем реального времени : ил РГБ ОД 61:85-5/4593

Содержание к диссертации

Введение

1. Постановка задачи 9

1.1. Обзор методов моделирования исполнения программ 9

1.2. Метод пооператорного моделирования 12

1.3. Особенности реализации исходного языка при пооператорном моделировании 14

1.4. Расширение операций ввода/вывода 15

1.5. Отладка ПО при пооператорном моделировании . 15

Выводы по первому разделу 16

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

2.1. Пооператорное моделирование и ИСХОДНЫЙ язык . I7

2.2. Организация ядра 23

2.3. Трансляция операторов реального времени 34

2.4. Функциональная эквивалентность результирующих программ 51

2.5. Количественная оценка метода пооператорного моделирования 59

Выводы по второму разделу 62.

3. Особенности построения транслирующей грамматики для организации ввода/вывода в языке реального времени .. 63

3.1. Структура параметрического транслятора 64

3.2. Схема организации транслирующей подграмматики для операторов ввода/вывода 64

3.3. Язык описания внешних устройств 75

Выводы по третьему разделу 88

4. Отладка при пооператорном моделировании 89

4.1. Система автономной отладки 89

4.1.1. Язык отладочных директив 92

4.1.2. Транслятор отладочных версий программ 94

4.1.3. Интерпретатор отладочных директив 96

4.2. Комплексная отладка программного обеспечения 99

4.2.1. Модель внешней среды 99

4.2.2. Модель работы системы прерываний 103

4.2.3. Особые случаи в отладке программ взаимодействующих процессов 105

4.3. Моделирование операций ввода/вывода 109

Выводы по четвертому разделу 115

5. Основные этапы проектирования и отладки программного обеспечения при пооператорном методе моделирования'. . практическая реализация 117

5.1. Назначение системы и состав оборудования 118

5.2. Проектирование ПО по процессам 121

5.3. Синхронизация процессов 124

5.4. Использование общих переменных 126

5.5. Моделирование прерываний 134

5.6. Моделирование ввода/вывода 140

Выводы по пятому разделу 143

Заключение 145

Литература

Введение к работе

ХХУІ съезд КПСС определил необходимость перевода народного хозяйства СССРЛ на преимущественно интенсивный путь развития. Этот путь интенсификации требует скорейшего внедрения научных достижений в народное хозяйство и прежде всего тех, которые связаны с ускорением проектирования новых высококачественных изделий, с автоматизацией их производства, с рациональным использованием ресурсов, с совершенствованием технологии.

Роль вычислительной техники и программного обеспечения в этих условиях становится еще более значительной. Это объясняется тем, что вычислительная техника все более приобретает характер инструмента, от качества и массовости выпуска которого ощутимо будет зависить процесс интенсификации по существу во всех областях народного хозяйства, науки, медицины, образования,техники. В то же время существенным препятствием для широкого внедрения вычислительной техники является низкая производительность труда программистов. Результаты исследований в области средств обработки данных показывают, что производительность программистов с 1955 по 1975 г. увеличилась только в 5,6" раза; в то время как мощность машин увеличилась в 10000 раз [4б]. Особенно остро этот вопрос стоит в области микропроцессорной техники, где стоимость одного оператора программы становится соизмеримой со стоимостью самого микропроцессора [чч\.

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

Для программного обеспечения (ПО) указанных средств вычислительной техники важным вопросом является технология его разработки. Имеется в виду использование кроссовых (инструментальных) и резидентных комплексов. Не касаясь достоинств и недостатков каждой из технологий, отметим, что в настоящее время инструментальные комплексы получили широкое распространение. Например, для микропроцессорных комплексов лишь одна четвёртая часть [55] систем подготовки ПО ориентирована на собственно микро-ЭВМ. Поэтому настоящая работа, посвященная повышению эффективности использования инструментальных комплексов, представляется актуальной.

Предметом исследования данной работы являются инструментальные комплексы для создания программного обеспечения микро-ЭВМ и микропроцессоров.

Объектом исследования работы является ПО систем реального времени.

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

В результате выполнения поставленной задачи получены следующие основные научные результаты, выносимые на защиту: а) предложена структура кроссового инструментального комплекса, основанного на применении языка реального времени высоко- го уровня, позволяющая производить комплексную динамическую отладку ПО систем реального времени на ИК и допускающая реализацию ИК на малой ЗВМ ; б) разработан метод построения ПО ИК, основанный на исполь- \/ зовании параметрического синтаксически-ориентированного транслятора и обеспечивающий статическую Функциональную эквивалентность результирующих программ кросс- и моделирующего трансляторов; в) разработана система моделирования воздействий внешней среды для проведения комплексной динамической отладки на уровне входного языка реального времени; г) предложены средства автоматизации расширения транслято ров языка реального времени, связанные с изменением состава вне шних устройств.

Диссертационная работа состоит из введения, 5-й разделов,заключения и списка литературы.Работа содержит 146 страниц; машинописного текс та,2? рисунка и 58 наименований в списке литературы.

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

Во втором разделе рассматривается язык реального времени Бэйсик-Процесс. Отмечаются те свойства языка, которые позволяют для моделирования его программ на ИК использовать пооператорный метод. Описывается структура ядра, поддерживающего язык Бэисик-Процесс. Приводится механизм трансляции операторов реального времени. Отмечаются те структурные особенности выходного текста, которые позволяют упростить организацию примитивов, входящих в ядро. Приводится методика обеспечения статической функциональной эквивалентности результирующих программ кросс- и моделирующего трансляторов. На примере трансляторов для мини-ЭВМ М-6000 и микропроцессора К580ИК80 даётся количественная оценка пооператорного метода моделирования.

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

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

В пятом разделе приводится перечень основных этапов проектирования и комплексной отладки ПО систем реального времени на ИК с пооператорным методом моделирования исполнения программ. На при- мере конкретной системы демонстрируется эффективность использования языка Бэйсик-Процеес для задач реального времени, а также возможности, имеющиеся для проведения комплексной динамической отладки ПО на ИК.

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

Материалы диссертационной работы вошли составной частью в отчёты и рабочую документацию Киевского института автоматики им.

ХХУ съезда КПСС по теме "Создание технологического инструментального комплекса на базе СМ ЭВМ для проектирования микропроцессорных систем АСУ ТП прокатных станов" (гос.per. № 80023626).

Результаты работы доложены на Всесоюзном совещании "Применение комплекса технических средств для локальных информационно-управляющих систем (КТС ЛИУС-2) в АСУ ТП" (г.Харьков, 1982 г.) и на 5 республиканских конференциях и семинарах: "Управляющая вычислительная техника в организационно-технологических АСУ" (г.Киев, 1978 г.), "Проблемы повышения эффективности автоматизированного управления производственными процессами на предприятиях" (г. Киев, 1979 г.), "Использование микропроцессоров и микро-ЯВМ в составе средств и систем автоматизации прокатных станов" (г. Кривой Рог, T98I г.), "Методы и средства разработки систем управления на базе микропроцессорной техники" (г. Севастополь, 198?г.), "Надежность программного обеспечения" (г.Киев, 198? г.), а также были опубликованы в 6 печатных работах.

Метод пооператорного моделирования

Прямым следствием низкого быстродействия интерпретации является увеличение объёма потребляемого машинного времени. Однако более важным моментом является то, что метод интерпретации существенно ограничивает возможности ИК во время комплексной отладки ПО. Отметим, что процесс комплексной отладки ПО систем реального времени можно разбить на три этапа Гів] : - статическая комплексная отладка ; - динамическая комплексная отладка без использования реальных объектов ; - динамическая комплексная отладка в реальной системе.

Первые два из указанных этапов могут проводиться на ИК. Однако использование ИК с интерпретирующими программами для этапа динамической комплексной отладки без использования реальных объектов весьма затруднительно. Причиной этого для управляющих систем реального времени является Tie] : - значительное понижение производительности ЗВМИ за счёт интерпретации команд ЭВМЦ ; - увеличение количества одновременно функционирующих программ ; - сложность имитации реального масштаба времени; - сложность имитации обмена информацией с внешними устройствами.

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

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

Ключевым вопросом для осуществления поставленной цели является обеспечение приемлемой для комплексной динамической отладки скорости моделирования исполнения программ. Средством повышения скорости моделирования наряду с компилятивным методом является переход от покомандного уровня моделирования к уровню групп команд или целых модулей Гів] .

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

Для пооператорного моделирования в состав ИК должны входить два транслятора с этого языка - кроссовый и резидентный. Причём такие, что для любой ИСХОДНОЙ программы результирующая программа резидентного транслятора моделировала бы (на уровне операторов) выполнение результирующей программы крос-транслятора. Используя резидентный транслятор, отладку можно вести в кодах ЗВМИ, а после её завершения транслировать исходную программу кросс-трансля-тором для получения объектного кода ЭВМЦ.

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

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

Трансляция операторов реального времени

В настоящем параграфе будет показан механизм трансляции операторов реального времени языка Бэисик-П в ассемблер ЭВМЦ. В конкретном случае - в ассемблер микропроцессора К580ИК80.

Хотя в настоящее время теория построения трансляторов достаточно хорошо развита, каждый вновь создаваемый транслятор требует весьма значительных усилий. Если же требуется создать более одного транслятора с некоторого языка, причем выходные тексты которых должны находиться в определенной зависимости друг от друга, то целесообразно использовать автоматизированную систему построения трансляторов. В качестве таковой был выбран параметрический транслятор (П-транслятор), использующий принцип обобщенной макрогенерации, ориентированный на применение в малых ЭВМ io] . Для реализации транслятора с конкретного исходного языка в параметрический транслятор необходимо ввести транслирующую грамматику. Транслирующая грамматика пишется на метаязыке и представляет собой множество Q= (у ,... G ,...(?/&), каждый элемент которого является парой Qi = К, Pi ,71 У, где /J - синтаксическое правило, 72" - так называемый текст для замены, определяющий семантические процедуры и ВЫХОДНОЙ текст, генерируемый при распознании правила Р .

Метаязык для описания транслирующей грамматики представлен в [ioj . Из всех аспектов трансляции нас будет интересовать лишь использование семантических процедур \х\ и выдаваемый транслятором выходной текст, поскольку для лексического и синтаксического анализов используются известные принципы. Поэтому здесь будут приведены лишь средства метаязыка, которые используются в текстах для замены. Их можно разделить на управляющие и порождающие операторы. Кроме того, в тексте для замены может содержаться заготовка выходного текста (будем называть её текстом на выход). Управляющие операторы определяют порядок просмотра текста для замены и вызывают семантические процедуры. В их отсутствие текст просматривается последовательно строка за строкой. Все символы текста за исключением метасимволов передаются в выходной текст транслятора.

Каждый из порождающих операторов означает, что на его место в выходном тексте должен быть помещен результат выполнения опре деленной семантической процедуры или копия терминального или нетерминального символа грамматики. Множество используемых в метаязыке порождающих операторов обобщим и будем использовать лишь Ь{ и # . Оператор & означает, что на его место в ВЫХОДНОЙ текст должно быть подставлено четырёхзначное число равное значению следующего за оператором параметра (переменной). Там где необходимо, параметр будет выделяться скобками и . Оператор # означает, что он должен быть замещён копией терминального или нетерминального символа, следующего .за ним. Например, терминальный символ может представлять имя процесса. Кроме того, нами будет использоваться функция Ф поиска элемента, имеющая два параметра: имя мае с ива и Гимя элемента .

Результатом выполнения функции является число равное индексу элемента в массиве имя массива , значение которого равно значению параметра имя элемента . Например, для случая, изображенного на рис. 2.5, Ф (АА,А) = 3, а ВВ (Ф(АА,А))= 30. Заметим также, что &ВВ(Ф(АА,А)) породит в выходном тексте строку символов 0030.

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

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

В настоящем параграфе будет показано, как с помощью специальной структуры транслирующей грамматики (ТОЙ ее части, которая описывает операторы ввода/вывода) можно осуществить расширение используемых в исходном языке внешних устройств. При этом прес ледуются две цели: 1. Минимизировать число блоков транслятора, в которые должны вноситься изменения. 2. Создать предпосылки для автоматизации процесса внесения изменений.

Трансляция операторов ввода/вывода происходит следующим образом. При распознании оператора DEVICE в таблице переменных транслятора заводится описатель переменной, соответствующей логическому имени (см. п.2.1.) описываемого устройства (в дальнейшем этот описатель будем называть описателем устройства). Назначение каждого элемента описателя приведено на рис. 3.2.

После того, как устройство описано оператором DEVICE , в остальных операторах ввода/вывода используется логическое имя этого устройства. Это дает возможность для всех типов устройств использовать в грамматике одно синтаксическое правило, соответствующее определенной операции. Например, для операции активации это правило, записанное в БНФ, имеет вид «ОПЕРАТОР ::= ACTIVATE (« идентификатор список параметров ) ;

Выходной текст при трансляции оператора определяется содержанием описателя устройства. Однако, чтобы заполнить описатель должным образом,необходимо в операторе DEVICE различать тип устройства. Проще всего это сделать, если описать этот оператор следующим образом: Оператор :: = DEVICE логическое имя : шифр устройства ( адрес ); логическое имя; :: = идентификатор адрес :: = число шифр устроиства :: = KC340I КС3403 КС3404 Здесь КОЗ401, КС3403, КС3404 являются служебными словами, пред ставляющими названия устройства.

Однако в этом случае при попытке расширить существующий список внешних устройств необходимо будет дополнить как таблицу служебных слов, так и список синтаксических правил, входящих в транслирующую грамматику. Чтобы это избежать описание оператора имеет вид оператор :: = DEVICE логическое имя : идентификатор ( адрес ); Однако при этом необходимо иметь такую семантическую процедуру, которая бы сравнивала входящий в этот оператор идентификатор со всеми существующими названиями устройств. Т.е. СП должна выполнять функции распознавания, присущие синтаксическому анализу. Это достигается следующей организацией транслирующей грамматики (рис. 3.3). Она основана на заложенной в метатрансляторе возможности сегментации транслирующей грамматики.

Каждый из дополнительных сегментов представляет собой совокупность текстов для замены. Каждая из этих текстов соответствует одному из операторов ввода/вывода для определенного устройства. Последний (Л/+1-ЫЙ) сегмент является ограничителем списка сегментов (или просто ограничителем).

Интерпретатор отладочных директив

Для разработчика ПО системы реального времени внешнюю (по отношению к вычислительному комплексу) среду можно представить как черный ящик, способный посредством некоторых событий вызывать прерывания в работе центрального процессора. Поэтому для моделирования внешней среды при комплексной динамической отладке естественной является идеология использования понятия "событие" (в общепринятом его смысле). А описание модели - как задание во времени последовательности событий. При разработке структуры моделирующей системы использовался опыт разработки языков моделирования,орие-ятированных на события [i] . Такими языками, например, являются АР » Симскрипт, SMPL Структура программы на языке SMPL представлена на рис. 4.2 [i] .

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

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

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

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

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

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

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

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