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

Глава 7

ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ СИСТЕМ УПРАВЛЕНИЯ*

7.1. Основные понятия

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

Программным обеспечением (ПО) называют совокупность программ, обеспечивающую реализацию функций АСУТП; на­писание, подготовку и отладку программ; контроль работы ЭВМ.

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

ПО можно разделить на три части: общее, специальное и тестовое.

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

В составе общего ПО могут быть выделены четыре груп­пы программ: 1) организации и управления вычислительным процессом, называемые операционными системами (ОС)**; 2) трансляции с различных языков программирования; 3) под­готовки и отладки (сюда входят редакторы, отладчики, средства документирования, загрузчики и компоновщики); 4) реализа ции многократно встречающихся вычислительных и управля­ющих алгоритмов (вычисление логарифма, генерация случай­ных чисел, обработка статистической информации и т. п.).

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

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

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

Необходимость в ОС при применении ЭВМ в составе АСУТП обусловлена двумя основными факторами: 1) эффек­тивным использованием вычислительных ресурсов УВК, в част­ности времени и памяти процессора, внешних устройств и внешней памяти; 2) скоростью реакции на события, проис­ходящие в технологическом объекте.

Рис. 7.1. Временная диаграмма работы УВК:

а - однопрограммный режим; б - мультипрограммный режим; ПР — процессор; ОЗУ-

оперативное запоминающее устройство; ПУ — периферийные устройства.

Рис. 7.2. Основные компоненты операционной системы (ОС)

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

Специфичной для УВК в АСУТП является вторая задача ОС, связанная с необходимостью своевременной реакции ЭВМ на события в объекте. Решая эту задачу, ОС обеспечивает ра­боту УВК в реальном масштабе времени.

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

Структура современной ОС приведена на рис. 7.2. Она включает следующие компоненты: ядро ОС; супервизор задач; управление памятью; супервизор ввода — вывода; службу вре­мени; систему управления внешней памятью .(файлами).

Ядро ОС выполняет обработку прерываний, запоминание и восстановление регистров при прерываниях, реакцию на сбои и отказы процессоров и оперативной памяти и пр.

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

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

Супервизор ввода вывода следит за состоянием внешних устройств и распределяет их по запросам задач; выполняет об­мен данными с внешними устройствами по прерываниям; осво­бождает внешние устройства по завершении операций ввода — вывода; контролирует работу внешних устройств и диагности­рует их неисправности.

В состав супервизора ввода — вывода входят программа-диспетчер и набор программ, непосредственно осуществляющих обмен с внешними устройствами, называемых драйверами.

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

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

По методам использования процессоров и оперативной па­мяти современные операционные системы для мини- и микро-ЭВМ могут быть разделены на следующие группы: 1) с общим полем памяти; 2) с раздельной памятью; 3) многопроцессор­ные; 4) распределенные. В операционной системе с общим полем памяти задачи поль­зователя размещаются вместе с ее модулями. Такие операци­онные системы ввиду ограниченной разрядности мини- и микро-ЭВМ позволяют использовать оперативную память ограничен­ного размера (для 16-ти разрядных ЭВМ —не более 64К). Операционные системы с общим 'полем памяти используют для ЭВМ типа СМ-1, СМ-3 и многих микро-ЭВМ.

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

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

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

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

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

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

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

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

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

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

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

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

Языком самого низкого уровня, используемым для совре­менных ЭВМ, является язык Ассемблера. Для него характерны следующие отличительные черты: программа переводится из исходной формы в объектную по принципу «один оператор языка — одна команда ЭВМ»; для обозначения команд ЭВМ используются их мнемонические обозначения; адреса в про­грамме задаются символически.

Достоинством Ассемблера является то, что написанные на этом языке программы обладают максимальной гибкостью и позволяют использовать практически все возможности ЭВМ. Этим объясняется широкое применение языка Ассемблера в программировании, в частности для решения задач АСУТП. Недостаток языка Ассемблера состоит в сложности и трудоем­кости написания программ.

Основным достоинством языков высокого уровня является возможность легкого и компактного описания решаемой зада­чи. Такая возможность осуществляется ввиду того, что один оператор языка высокого уровня соответствует большому числу команд ЭВМ. Перевод исходной программы на языке высоко­го уровня в объектный формат выполняется компилятором. Применение языков высокого уровня позволяет упростить и значительно ускорить разработку программ. Однако слож­ность перевода исходной программы в объектный формат при­водит к тому, что получаемые при переводе программы требу­ют больше памяти и машинного времени, чем программы, на­писанные на языке Ассемблера. К наиболее распространенным языкам высокого уровня, используемым в АСУТП, относится Фортран. Особенно часто Фортран применяют при программи­ровании задач для численных расчетов. Достоинства языка Фортран — его простота и большое число различных алгорит­мов и программ, написанных на этом языке за время его ис­пользования.

Из новых языков высокого уровня наибольшее распростра­нение получил Паскаль. В этом языке учитывается ряд новых методов программирования; он прост и логичен.

Язык высокого уровня АДА был разработан с целью заме­ны возможно большего числа специализированных и универ­сальных языков программирования, используемых в настоящее время. Язык АДА обеспечивает широкие возможности для на­писания программ, в нем учтено большинство новых методов построения программного обеспечения. Однако применение языка АДА для разработки задач пользователя в АСУТП тор­мозится ввиду отсутствия компиляторов, написание которых для этого языка весьма сложно.

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

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

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

Для поиска и устранения ошибок в разрабатываемых зада­чах используют различные отладочные программы. Они позво­ляют вести отладку как в режиме непосредственного взаимо­действия «человек — ЭВМ», так и в пакетном режиме. Отла­дочные программы можно использовать с программами на языке Ассемблера и на языках высокого уровня.

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

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

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

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

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

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

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

Широкое распространение сетей ЭВМ привело к необходи­мости создания баз данных для этих сетей. Такие базы данных в силу их рассредоточенности называют распределенными [57].

Соседние файлы в папке Дудников