
- •Базы данных
- •Вопрос 29 Основные функции систем управления базами данных
- •Вопрос 30 Реляционные базы данных
- •Базовые понятия реляционных баз данных
- •Фундаментальные свойства отношений
- •Недостатки реляционной модели баз данных
- •Вопрос 31 Реляционная модель данных
- •Вопрос 32 Манипулирование данными
- •Реляционная алгебра
- •Вопрос 33
- •Вопрос 34
- •Вопрос 36 Реляционное исчисление кортежей и доменов
- •Вопрос 38. Состав программного обеспечения информационно-управляющих систем
- •Вопрос 39. Программы организации и контроля вычислительного процесса
- •Вопрос 40. Особенности операционных систем реального времени
- •Вопрос 41. Операционная система реального времени qnx
- •Вопрос 42. Операционная система реального времени "Карусель"
- •Вопрос 43 Программа обработки прерываний
- •Вопрос 44. Программа включения оперативной задачи
- •Вопрос 45. Программа включения карусельной задачи
- •Вопрос 46 Программа start и подпрограмма zagr
Вопрос 38. Состав программного обеспечения информационно-управляющих систем
Программное обеспечение информационно-управляющих систем можно разделить на три группы:
- программы решения функциональных задач системы. Эти программы разрабатываются для реализации конкретных алгоритмов управления объектами и технологическими процессами и уникальны для каждой системы. Функциональные программы составляют 70-80 % общего объёма программного обеспечения;
- организация и контроль вычислительного процесса. В эту группу программ входят: операционная система реального времени, программы организации вычислительного процесса и обмена сигналами с внешними устройствами, а также программы контроля и обеспечения устойчивости вычислительного процесса;
- программы автоматизации разработки алгоритмов и программ (САПР). Программы САПР обеспечивают возможность сокращения сроков создания программного обеспечения, так как позволяют ускорить программирование, облегчить процесс отладки программ и выпуска более качественной документации.
Функциональные программы
Программы решения функциональных задач предназначены для реализации алгоритмов управления конкретными устройствами и поэтому уникальны. Однако для большинства информационно-управляющих систем можно выделить ряд типичных функциональных задач, для которых используются известные математические методы. Знание этих методов и путей их решения на ЭВМ позволяет существенно облегчить процесс создания функциональных программ. К таким задачам можно отнести:
- оптимизацию распределения материалов, ресурсов, потоков информации, потребления электроэнергии и др., решение которой сводится к типовым задачам математического программирования. Эта математическая дисциплина посвящена методам решения задач о нахождении экстремумов функций на множествах, определяемых некоторыми ограничениями (равенствами или неравенствами). На её основе разработано весьма много алгоритмов решения как технических, так и экономических задач (составление оптимального расписания, транспортная задача, оптимизирующая потоки грузов от производителя к потребителю, оптимизация расходования материалов и т.д.);
- организацию сбора информации в управляющих системах и связанные с ней проблемы обнаружения сигналов на фоне помех, идентификацию информации и событий при отсутствии чёткого различия в характеристиках исходных данных и др.;
- прогнозирование изменения информации по априорным данным о возможных характеристиках объектов и результатам предыдущих измерений исследуемых параметров;
- обеспечение взаимодействия человека и машины, состоящее из задач предоставления человеку информации, необходимой для принятия решений и их реализации в процессе управления;
- обеспечение устойчивости управления;
- самонастройку и адаптацию и др.
Разработка функциональных программ начинается с выбора языка программирования, целесообразного для решения каждой из функциональных задач. Все языки программирования условно можно разделить на четыре группы сложности:
- языки нижнего уровня - ЯНУ (ассемблеры);
- языки высокого уровня - ЯВУ (Паскаль, C++, Фортран, Алгол и др.);
- языки сверх высокого уровня - ЯСВУ;
- языки ультра сверх высокого уровня - ЯУСВУ.
Чем выше уровень языка, тем меньше требуется времени на разработку программы, тем дешевле программное обеспечение. Но чем выше уровень языка, тем требуется больше память ЭВМ и тем медленнее работает система.
В то же время все задачи, связанные с управлением объектами, условно можно разделить на четыре группы сложности:
- к первой группе относятся задачи простейшей обработки информации: считывание показаний датчиков, сравнение некоторых показаний с эталонными значениями, перезапись нескольких байтов информации из одной области памяти в другую и т.д.;
- во вторую группу задач входят задачи выполнения арифметических или логических операций с однобайтными или двухбайтными целыми числами;
- к задачам третьей группы относятся расчёты, проводимые над числами в формате с плавающей запятой, работа с элементами массивов;
- четвёртая группа задач включает в себя задачи сложной логической и статистической обработки информации, самообучение системы и т.д.
Очевидно, применение языков высокого уровня для решения задач первой и второй групп не приведут к существенной экономии времени при разработке программ и удешевлению программного обеспечения. Решение задач третьей и четвёртой групп на языках нижнего уровня может вызвать непреодолимые трудности. Следует учитывать также и то, что специалист, пишущий программу на ассемблере, лучше представляет, как будет функционировать система.
Существуют методы оптимизации уровня языка программирования [3]. В этой работе убедительно доказывается, что для управляющих систем (для решения задач третьей и четвёртой групп) целесообразно использовать языки ЯВУ.
Функциональные программы весьма разнообразны, но все они имеют примерно одинаковое типовое построение: заголовок программы, описание величин зоны обмена, описание величин локальной зоны и тело программы.
Заголовок программы содержит её наименование, отражающее назначение этой программы, и обширные комментарии, в которых указываются задачи, решаемые программой, откуда в неё поступают данные и в каких программах используются результаты её выполнения.
Описание величин зоны обмена определяет характеристики величин, которыми могут обмениваться программы. Это глобальные переменные и константы, являющиеся общими для всех функциональных программ.
Описание величин локальной зоны (константы и переменные, используемые только в этой программе) представляет список наименований этих величин, их типы и правила размещения их в памяти ЭВМ.
Тело программы - последовательность операторов, обеспечивающих выполнение функций программы. Программа может состоять из одного или нескольких блоков, связанных по управлению в иерархическую последовательность. Для больших программ более целесообразным является её блочное построение.
Особенностью программ для управляющих систем является то, что её выполнение может быть прервано в любой момент времени программой более высокого уровня приоритета. Программист должен предусмотреть то , что при возврате к ранее прерванной программе данные промежуточных расчётов, выполненные до прерывания, не должны быть искажены.
Второй особенностью функциональных программ является то, что после завершения одной программы должна автоматически включиться другая. Возможны два варианта выполнения этого задания:
- подготовка необходимых переменных и констант следующей задачи и переход к её выполнению осуществляется в конце предыдущей задачи. Этот способ целесообразен, если программы выполняются в строгой последовательности;
- после окончания выполнения программы управление передаётся программе, получившей название "Местный диспетчер". Эта программа определяет следующую задачу и подготавливает для неё данные. Данный способ применяется при сложной последовательности включения программ, зависящей от текущей входной информации, и результатов, полученных при выполнении предыдущих программ.