Программное обеспечение (ПО) САПР представляет собой документы с текстами программ, программы на машинных носителях и эксплуатационные документы. ПО САПР принято подразделять на общесистемное и специальное (рис. 3.9). Общесистемное обеспечение инвариантно к объекту проектирования. Его основу составляет программное обеспечение ЭВМ. Специальное ПО полностью определяется классом объектов, проектируемых с помощью САПР.
Разработка ПО для различных сфер использования вычислительной техники является исключительно трудоемким процессом. Это утверждение можно проиллюстрировать следующими фактами [8]. Трудоемкость операционной системы, разработанной фирмой IBM для своих ЭВМ третьего поколения, составила примерно 2000 чел.-лет. Общая стоимость разработанного к 1970 г. ПО составила 20 млрд. дол.; по прогнозам к 1985 г. эта сумма возрастет до 200 млрд. дол. При этом стоимость технических средств ЭВМ составляет «всего» 5 (1970 г.) и 20 (1985 г.) млрд. дол. Столь высокие темпы роста создаваемого ПО, по всей видимости, сохранятся в ближайшие десятилетия. Соотношение трудозатрат на основные части ПО, разрабатываемого для решения всех задач с помощью ЭВМ, иллюстрирует рис. 3.10 (трудозатраты на разработку тестовых и других видов программ незначительны).
Программное обеспечение ЭВМ представляет собой сложные программные комплексы с различными наборами функциональных
Рис. 3.9. Общая структура программного обеспечения САПР
возможностей. В первую очередь среди этих комплексов необходимо назвать операционные системы, которые поставляются, как правило, с ЭВМ и ориентированы на конкретную конфигурацию ЭВМ. По существу операционные системы являются как бы продолжением технических (аппаратных) средств ЭВМ и облегчают взаимодействие пользователя с вычислительной машиной.
Рис. 3.10. Диаграмма роста трудозатрат на разработку ПО:
ОС — операционные системы; СП — системы программирования; ПП — прикладные программы (программы АСУ, САПР и другие для решения прикладных задач)
Рис. 3.11. Функционально-структурная схема операционной системы
Операционная система имеет модульную структуру, которая позволяет приспособить систему к конкретной конфигурации технических средств, так как отдельные программные компоненты операционной системы могут быть включены в систему по желанию пользователя. Процесс настраивания операционной системы на конкретную вычислительную систему и режимы ее использования называется генерацией операционной системы. Для хранения сгенерированной операционной системы предназначен специальный пакет магнитных дисков, который перед функционированием САПР загружается в оперативную память ЭВМ.
На рис. 3.11 приведена функционально-структурная схема операционной системы. Блок прерывания является здесь примером аппаратной поддержки ПО, без которой оказывается невозможным функционирование операционной системы. Прерывания, имеющие в любой системе (в САПР особенно) большое значение, делятся на операторские (поступают с пульта управления от оператора), машинные (поступают от процессора и других устройств ЭВМ) и программные (возникают в процессе функционирования рабочей программы на рабочем поле). Каждое прерывание обрабатывается управляющими программами операционной системы, после чего управление, как правило, передается прерванной рабочей программе. В САПР обработка прерываний должна быть достаточно эффективной, поскольку при этом исключаются аварийные завершения программ, происходящие по непредусмотренным при создании САПР причинам, а также она должна являться основой для инициализации диалога проектировщика с ЭВМ в случаях, когда инициатором диалога является проектировщик [41, 44].
Для ЕС ЭВМ разработаны версии дисковой операционной системы (ДОС ЕС) и более развитые версии операционных систем (ОС ЕС).
Основные программы операционной системы (ядро) постоянно находятся в оперативной памяти ЭВМ; редко используемые программы операционной системы с целью экономии оперативной памяти могут храниться на магнитных дисках и вызываться по мере необходимости. С функциональной точки зрения операционная система состоит из системных управляющих и системных обрабатывающих программ.
Управляющие программы обеспечивают функции управления на уровнях управления данными, заданиями, задачами.
Программа управления данными осуществляет поиск, хранение и передачу данных с внешних устройств в оперативную память.
Программы управления заданиями организуют ввод задания, трансляцию прикладных программ, загрузку их в память ЭВМ и др.
Наконец, программы управления задачами обеспечивают переключение с выполнения одной программы на выполнение другой; распределение ресурсов времени и оперативной памяти между программами и т. д.
Идея распределения ресурсов занимает центральное место при построении операционных систем на основе различных принципов [40]. В идеале любая прикладная программа должна иметь возможность получать необходимые ресурсы, когда бы они ей не понадобились. Однако бывают ситуации, когда общая потребность в ресурсах превышает имеющиеся у системы возможности. В этом случае операционная система должна найти компромиссное решение и удовлетворить те запросы, которые она считает наиболее важными.
К отрабатывающим программам операционной системы в первую очередь относятся трансляторы с основных алгоритмических языков (ФОРТРАН, АЛГОЛ-60, КОБОЛ, ПЛ/1 и др.).
Прикладная программа пользователя, написанная на алгоритмическом языке, называется исходным модулем. Исходные модули могут находиться на различных машинных носителях: перфокартах, магнитных лентах и др. Первым этапом обработки прикладной программы на ЭВМ является ее трансляция с алгоритмического языка на машинный, в результате которой специфика исходного языка будет потеряна. Полученная программа, называемая объектным модулем, будет находиться в памяти ЭВМ в машинных кодах. Объектный модуль может храниться во внешней памяти ЭВМ (рис. 3.12).
Объектный модуль проходит дальнейшую обработку — редактирование и загрузку в оперативную память. Редактирование заключается в увязке отдельных модулей в единую программу путем настройки связей между модулями. Эта работа выполняется обслуживающей программой, называемой редактором связей. Благодаря редактору связей пользователь может собирать программу из отдельных модулей, написанных в разное время и даже на различных алгоритмических языках. В результате редактирования получается программа, называемая загрузочным модулем. Относительные адреса загрузочного модуля заменяются на абсолютные с помощью программы выборки. После этого модули загружаются в оперативную память ЭВМ.
Рис. 3.12. Схема подготовки исходного модуля к выполнению:
БИМ — библиотека исходных модулей; БОМ — библиотека объектных модулей; БЗМ — библиотека загрузочных модулей
Загрузочный модуль является перемещаемой программой и может быть помещен в любую область оперативной памяти. Различают простую и оверлейную структуры загрузочных модулей. Модуль имеет простую структуру, если все подпрограммы, входящие в него, одновременно загружаются в оперативную память и постоянно в ней находятся. Модуль называется оверлейным (с перекрытием), если в оперативной памяти постоянно находятся лишь некоторые подпрограммы. Часть подпрограмм находится во внешней памяти (на магнитных дисках) и загружается в оперативную память лишь в момент обращения, причем разные подпрограммы могут загружаться на одно и то же место в оперативной памяти, перекрывая друг друга.
Планирование схемы перекрытий осуществляется на этапе редактирования связей. На основании управляющих директив, задаваемых программистом, редактор связей создает и включает в основную программу так называемый оверлейный процессор — подпрограмму, которая и управляет загрузкой подпрограмм, находящихся во внешней памяти.
Применение оверлейных структур позволяет создавать большие и сложные программы в условиях ограниченного объема оперативной памяти ЭВМ. Большинство подпрограмм, применяемых в САПР, имеет оверлейную структуру.
Операционная система является довольно сложным и дорогостоящим программным продуктом, поэтому одно из основных требований к ней — высокая эффективность функционирования.
В зависимости от уровня развития операционной системы можно выделить несколько режимов работы ЭВМ, преследующих основную цель — обеспечение эффективной загрузки оборудования: пакетную обработку, пакетную обработку с мультипрограммированием, систему разделения времени.
При пакетной обработке на входе системы имеется пакет заданий, последовательно пропускаемый через машину. Каждая задача, формируемая из одного задания, может использовать все ресурсы системы, за исключением основной памяти, занятой резидентной частью управляющей программы операционной системы. В этом режиме операционная система проверяет правильность задания, выделяет требуемые ему ресурсы, определяет программу, которая должна выполняться в данном задании, передает ей управление, следит за ходом выполнения программы до её завершения (нормального или аварийного). При этом допускается совмещать выполнение программы одного задания с операциями ввода- вывода программы того же или другого задания. В случае, если устройство вывода занято, результаты размещаются в системной библиотеке, откуда они выводятся управляющей программой при освобождении устройства вывода.
Одним из недостатков режима пакетной обработки является «простаивание» ресурсов, которое возникает из-за того, что задания поступают на обработку в порядке их следования.
Сущность режима пакетной обработки с мультипрограммированием заключается в том, что задания из пакета заданий устанавливаются в очередь на выполнение согласно присвоенным им приоритетам.
Управляющая программа выбирает задание с высшим приоритетом из очереди заданий и выполняет для него те же действия, что и первичная управляющая программа по отношению к единственному для нее заданию. Различие заключается в том, что в момент, когда программа, выполняемая для задания с высшим приоритетом, должна ожидать какое-либо событие, например окончание операции ввода — вывода, начинает выполняться программа другого задания, имеющего такой же приоритет, как у первого задания, или низший. В результате в вычислительной системе одновременно выполняется несколько программ, принадлежащих различным заданиям. Естественно, что управляющая программа операционной системы, реализующая режим пакетной обработки с мультипрограммированием, оказывается более сложной по сравнению с вышерассмотренной управляющей программой.
Система разделения времени (СРВ) — наиболее важный для САПР режим, при котором некоторое число пользователей одновременно имеют доступ к вычислительной машине с помощью удаленных терминалов. В этом случае основным критерием оптимального планирования прохождения потока заданий является не эффективность использования оборудования вычислительной техники, а наименьшая продолжительность обслуживания одного пользователя при ограниченном сроке ожидания.
Механизм разделенного времени позволяет одновременно выполнять несколько задач путем выделения для каждой из .них определенного кванта времени центрального процессора. Множество задач различных пользователей, работающих в СРВ, образует очередь заданий, которая размещается на магнитных дисках. В оперативной памяти для заданий СРВ выделяются специальные разделы. Задания из очереди последовательно вводятся в разделы СРВ (разворачиваются) и обрабатываются в течение определенного кванта времени. По истечении кванта задания «сворачиваются» и вновь помещаются во внешнюю память.
Благодаря процессам свертки и развертки в одном разделе СРВ могут выполняться задания большого числа пользователей. При оптимальном размере кванта у каждого пользователя создается впечатление непрерывной работы с ЭВМ.
Нажатием специальной кнопки (на пульте дисплея терминальной станции ЕС-7920) или введением команды (с дисплея терминальной станции ЕС-7905) пользователь может передать СРВ сигнал «Внимание», по которому работа текущей программы прерывается, и управление передается программе обработки сигнала «Внимание». Пользователь может написать свою программу обработки сигнала «Внимание», предусмотрев в ней анализ ситуации, возникшей в момент прерывания, и принятие соответствующих решений или выдачу запроса пользователю для уточнения последующих действий.
Если в программе пользователя не предусмотрена обработка сигнала «Внимание», управление получает системная программа, которая автоматически передает управление системным программам более высокого уровня.
Возможность прерывания по сигналу «Внимание» позволяет очень гибко управлять ходом решения проектных задач. Если текущие результаты расчета, выводимые на экран дисплея, оказываются неудовлетворительными, пользователь может прервать дальнейшие вычисления и перейти к другим операциям, например коррекции исходных данных.
Для повышения коэффициента загрузки оборудования в режиме разделения времени в качестве фона может быть использован пакет несрочных задач (так называемых фоновых задач).
Для ЕС ЭВМ, используемых в САПР, наибольшее распространение получает в настоящее время операционная система ОС, которая весьма эффективно обеспечивает все вышерассмотренные режимы работы ЭВМ; позволяет использовать различные системные надстройки над ОС в виде систем управления базами данных, обработки и преобразования графической информации, а также содержит большой набор вспомогательных программ (утилит), обеспечивающих разнообразные и высокоэффективные сервисные функции.
Однако функционирование ОС, как правило, требует более качественного по сравнению с ДОС технического и системного обслуживания, более высокого уровня профессиональной подготовки разработчиков САПР. Практика показывает, что вычислительные системы с ДОС работают более устойчиво и надежно, что, по-видимому, объясняется меньшей интенсивностью использования технических средств и более простыми схемами информационных, управляющих и других интерфейсов. Следует отметить, что операционная система ДОС не обеспечивает режим разделения времени (СРВ). Поэтому, очевидно, на ЕС ЭВМ малой и средней мощности (до ЕС-1022 включительно) для автономных и локальных САПР более эффективно использование ДОС. Для мощных ЭВМ, как правило, используют только ОС.
Таблица 3.5. Основные характеристики операционных систем
Для функционирования микро- и мини-ЭВМ также используются операционные системы различного назначения: универсальные и узкоспециализированные, обеспечивающие эффективное решение заданных классов задач. В табл. 3.5 приведены основные характеристики операционных систем мини-ЭВМ.
По мере развития ПО ЭВМ, по-видимому, можно ожидать появление операционных систем, ориентированных только на автоматизированное проектирование, что повысит производительность функционирования САПР и снизит уровень требований к системному программному обеспечению этих систем.
В системах автоматизированного проектирования кроме ПО ЭВМ также имеется системное ПО САПР — инвариантная часть программного обеспечения САПР. Системное ПО САПР может быть использовано для различных САПР, близких по функциональному назначению, разработанных на основе общих концепций, например, для САПР различных объектов электромеханики. Системное ПО САПР разрабатывается с четкой ориентацией на конкретные ЭВМ и, следовательно, на используемые операционные системы. Оно является, по существу, продолжением операционной системы и обеспечивает:
управление процессом вычислений; ввод, вывод, контроль и обработку информации; оперативную корректировку информации; хранение, поиск, анализ и защиту информации; диалоговую связь пользователя с ЭВМ в процессе проектирования;
контроль и диагностику выполняемых проектных операций. Системное ПО САПР в соответствии с перечисленными функциями включает в себя:
управляющую программу;
программу ввода и обработки входной информации; трансляторы проблемно-ориентированных входных языков; системы или программы управления базами данных; программы обработки и выдачи проектной документации, включая чертежи.
При создании конкретных САПР может возникнуть необходимость и в других программах, реализующих те или иные функции. Но в каждом случае при разработке системного ПО САПР учитывается технология проектирования изделий или группы изделий, требования и состав специального ПО, структура и объем переработки информации и т. д.