Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
shpory_po_MIUS_gotov.doc
Скачиваний:
1
Добавлен:
01.05.2025
Размер:
1.42 Mб
Скачать

Вопрос 37 Состав программного обеспечения информационно-управляющих систем. Функциональные программы

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

- программы решения функциональных задач системы. Эти программы разрабатываются для реализации конкретных алгоритмов управления объек­тами и технологическими процессами и уникальны для каждой системы. Функциональные программы составляют 70-80 % общего объёма программ­ного обеспечения;

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

- программы автоматизации разработки алгоритмов и программ (САПР). Программы САПР обеспечивают возможность сокращения сроков создания программного обеспечения, так как позволяют ускорить програм­мирование, облегчить процесс отладки программ и выпуска более качествен­ной документации.

Функциональные программы

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

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

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

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

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

- обеспечение устойчивости управления;

- самонастройку и адаптацию и др.

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

- языки нижнего уровня - ЯНУ (ассемблеры);

- языки высокого уровня - ЯВУ (Паскаль, C++, Фортран, Алгол и др.);

- языки сверх высокого уровня - ЯСВУ;

- языки ультра сверх высокого уровня - ЯУСВУ.

Чем выше уровень языка, тем меньше требуется времени на разработку программы, тем дешевле программное обеспечение. Но чем выше уровень языка, тем требуется больше память ЭВМ и тем медленнее работает система.

В то же время все задачи, связанные с управлением объектами, условно можно разделить на четыре группы сложности:

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

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

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

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

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

Существуют методы оптимизации уровня языка программирования [3]. В этой работе убедительно доказывается, что для управляющих систем (для решения задач третьей и четвёртой групп) целесообразно использовать языки ЯВУ.

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

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

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

Описание величин локальной зоны (константы и переменные, исполь­зуемые только в этой программе) представляет список наименований этих величин, их типы и правила размещения их в памяти ЭВМ.

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

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

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

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

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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]