книги из ГПНТБ / Оперативные графические системы в автоматизации проектирования
..pdfii ожидание. Сигнал запроса инициирует продолжение программы с команды ввода. В момент анализа указа теля должен быть аппаратурпо задержан сигнал запро са, чтобы избежать «зависания». Таким образом, случаи одновременного поступления запроса сводится к случаю
позднего запроса.
Во время ожидания процессор не используется диало говой программой, и его целесообразно загрузить другп-
|
Поздний |
Ранний |
Вычислительная |
запрос |
запрос |
|
|
|
программа I |
J U |
|
Монитор о—о |
|
|
Супервизор |
Время |
|
Фонобая задача |
|
|
|
|
Рис'. 5.4. Асинхронное облуживамне запросов
мп вычислениями. В мультипрограммной системе — это фоновые задачнББлок-обмена монитора в такой системе может выполняться на прерывающей ветви программы как часть супервизора (рис. 5.3). При выполнении блока обмена анализируется, был ли запрос. При его отсутст вии (Пр3 = 0) происходит обращение к супервизору си стемы с макрокомандой «Ждать». После этого пронсхо-
140
днт прерывание диалоговой программы и запускается фоновая задача. Поздний запрос вызывает возврат управления монитору, который обменивается с пультом и гаопт признак запроса (Пр3: = 0), после чего продолжа ется выполнение диалоговой пропраммы. Ранний запрос с помощью супервизора устанавливает признак (ПрЗ: = —1). Об,мен производится в момент, определяемый диа логовой программой. Запрос, поступивший во время работы супервизора или монитора, задерживается аппа ратурою (запоминается) или игнорируется и не вызывает их прерывания.
Асинхронное обслуживание запросов. Наличие аппа ратурно-программной системы прерываний позволяет вводить с пульта информацию непосредственно по запро су пользователя, асинхронно по отношению к выполняе мой программе. При этом представляются дополнитель ные по сравнению с синхронным -обслуживанием возмож ности оперативного изменения пользователем значений переменных в программе непосредственно в процессе счета по ней; изменения точки возврата в прерванную программу по результатам анализа введенной информа ции на прерывающей ветви. Асинхронное обслуживание запросов осуществляет специальный блок обмена мони тора, получающий управление в результате прерывания по запросу пульта (рис. 5.4).
5.3. ПРОГРАММИРОВАНИЕ АЛГОРИТМОВ УПРАВЛЕНИЯ
Существует несколько |
методов для описания реакции |
|||||
ОГС на внешние события, о которых |
сигнализируют ей |
|||||
прерывания (запрос ввода |
пульта, |
сбой при |
обмене |
|||
и т. п.). Все эти методы служат для |
определения, |
какая |
||||
процедура должна |
быть |
выполнена при возникновении |
||||
данного события. |
В любом |
случае |
при возникновении |
|||
прерывания от пульта операционная |
система |
собирает |
||||
определенную информацию о состоянии пульта и |
про |
граммы. Она может содержать тип запроса, идентифи катор устройства ввода, слово состояния прерванной пропраммы и т. п. Эту информацию операционная система передает программе обработки запросов. Основные раз личия в схемах обработки запросов определяются мето дами описания и средствами вызова процедур обработки.
141-
Эти процедуры могут вызываться двумя способами: син хронно или асинхронно по отношению к текущей про грамме, как это было описано выше.
Рассмотрим способы описания процедур обработки запросов с помощью процедурно-ориентированных язы ков высокого уровня.
Использование оператора условного перехода IF в языках FORTRAN, ALGOL, PL/1. При получении запроса от пульта система должна ввести и записать некоторую информацию (тип вводного устройства, инициировавше го запрос; идентификатор элемента изображения для светового пера или код нажатой клавиши для функцио нальной клавиатуры и т. п.). При этом система присваи вает значение TRUE (истина) булевской переменной типа устройства LIGHTPEN, K.EY и т. п. и значение соответ
ствующего |
кода — арифметической |
переменной |
ELEMENT, CODE и т. п. |
|
|
В дальнейшем при выполнении в программе операто |
||
ра типа IF iLIGITTPEN THEN GOTO |
LABEL 1 ELSE |
GOTO LABEL2 пли IF KEY THEN CALL ROUTINE уп равление передается на блок с указанной меткой LABEL или к соответствующей процедуре ROUTINE, которые выполняют действия по обслуживанию запроса. Это при мер синхронной обработки.
Табличный метод определяет переходы в программе, соответствующие каждому типу запроса. Таблица пере ходов реализуется с помощью специальной программы либо путем расширения языка за счет введения соответ ствующих операторов. При использовании подпрограммы она содержит в качестве параметров список пар, связы вающих тип запроса (atlnlype) с соответствующей про цедурой (routine). Обращение к такой подпрограмме имеет вид: CALL TABLE (attntype 1, routine 1; ...; attntype n, routine п). Обычно используется характерный для FORTRAN-систем метод синхронного обслуживания. Запрос запоминается операционной системой. В дальней шем программа в ходе выполнения проверяет наличие запроса. Если был запрос, то с помощью подпрограммы TABLE генерируется вызов процедуры, соответствующей типу запроса. При отсутствии запроса выполнение про граммы может быть задержано до его получения. Таб личный метод применим и для асинхронного обслужива ния, если система обеспечивает асинхронный вызов под
142
программ. Тогда переход к соответствующей процедуре произойдет немедленно при получении запроса.
Использование оператора ON. Оператор ON в PL/1 предназначен для определения операций, которые долж ны быть выполнены при возникновении сбойных ситуа ций, вызывающих прерывание: переполнение, нулевой делитель и т. п. [6]. Язык может быть расширен вклю чением в список этих ситуаций прерываний от графиче ского пульта [7]. Тогда процедура обработки запроса светового пера будет иметь вид:
ON LIGHTPEN BEGIN
оператор 1
оператор
END.
Метод В. Р. Сазерленда и В. М. Ньюмена. Приведен ные выше методы требуют описания всех возможных в данном состоянии программы типов запросов и процедур их обслуживания (так, если разрешен только один тип запроса, то необходимо, кроме его описания, привести
все остальные типы и указать, что они |
игнорируются). |
В [8] предлагается метод, требующий |
указания пар |
«тип запроса — переход» только для разрешенных типов запросов. Таблица состояний и причин переходов пред ставляется операторами вида: ОПЕРАТОР ((тип запроса 1, метка состояния 1), ... (тип запроса п, метка состояния п), ОЖИДАНИЕ/ЦИКЛ)) для каждого состояния.
При использовании ЦИКЛа циклически выполняются операторы последующей процедуры до получения запро са. Если в ОПЕРАТОРе задан режим ОЖИДАНИЕ, вы полнение программы блокируется до получения запроса, после чего программа переходит в соответствующее со стояние. Такое описание может использоваться как для синхронной, так и для асинхронной обработки.
В качестве примера реализации программного управ ления диалогом в ОГС рассмотрим алгоритмы работы блоков монитора, обеспечивающих синхронизацию про цессов ввода и вычислений в ОГС на базе мультипро граммной ЭВМ «Мпнск-32» [9].
143
Для ввода информации используется электромехани ческий планшет (УВГИ), устройство управления свето вым маркером (М), алфавитно-цифровая клавиатура (АЦК) и программируемая функциональная клавиатура (ПФК.) с подсветами. Вместе с оперативным устройст вом отображения перечисленные устройства составляют пульт, который рассматривается как одно активное внеш нее устройство по отношению к ЭВМ «Мипск-32». Подго-
Рис. 5.5. Структурная схема вводной части пульта
товленная к вводу информация хранится на буферных регистрах вводных устройств. Требование ввода иниции руется устройствами при нажатии пользователем на одну из клавиш или сигналом совпадения в режиме указания элемента световым маркером. При этом в ЭВМ поступает сигнал «запрос прерывания», служащий причиной пре рывания на 3-й уровень программы «Диспетчер». Одно временно в специальный регистр символа состояния (РгСС) пульта заносится код, идентифицирующий источник вводимой информации (рис 5.5). «Диспетчер»
144
передает управление на прерывающую ветвь и затем на блок обмена монитора. В блоке обмена введенный сим вол состояния (запросы пульта на ввод) сравнивается с таблицей требований ввода от расчетных программ, и при необходимости вводится, перекодируется и корректирует ся необходимая информация с пульта (рис. 5.6). Затем
спомощью «Диспетчера» управление возвращается в прерванную программу. Источники информации и соот ветствующие нм коды РгСС и определители команд вво да приведены в табл. 3. При реализации программ актив ного ввода существенными оказались вопросы согласова ния во времени моментов возможного получения запросов
спроцессом их обработки. В частности, необходимо из бежать преждевременного повторного входа в прерываю щую ветвь и в блок обмена.
Процесс проектирования в режиме диалога состоит из последовательности выполняемых процедур и выборов пользователем очередной процедуры. Команды пользова теля на выполнение определенных действий принимает и расшифровывает блок монитора — интерпретатор ко мандного языка. Он запускает программы расчетов и обслуживание процедуры, а также выдает сообщения о состоянии вычислительного процесса на пульт пользова теля. Выполнение программ заканчивается выводом ре зультатов на пульт и передачей управления монитору. Асинхронное обслуживание запросов позволяет по ко манде пульта прервать выполнение расчетов и перейти в состояние ожидания команды интерпретатора. При реа лизации интерпретатора командного языка необходимо стремиться к созданию процедур, упрощающих описание
|
|
|
|
|
Т а б л и ц а 3 |
Источник вводимой |
Состав информации |
Код РгСС |
Определитель |
||
|
информации |
команды ввода |
|||
|
УВГИ |
Координаты X , |
V' |
00001 |
11100 |
Маркер в режиме |
Координаты X , |
Y |
00010 |
10100 |
|
задания |
координат |
|
|
00100 |
10101 |
Маркер |
в режиме |
Адрес команды |
|
||
указания |
отображения |
|
01000 |
10011 |
|
|
АЦК |
Код клавиши |
|
||
|
ФК |
Код клавиши |
|
10000 |
10001 |
|
РгСС • |
Код источника |
|
|
10000 |
запроса
10. Зак. 218 |
145 |
I
Рис 5.6. Алгоритм асинхронного обслуживания
переходов ,в программе и облегчающих пользователю процесс выбора. Это может быть достигнуто за счет вывода сообщения (подсказки) о возможных в данном состоянии альтернативах перехода, удобных аппаратур но-программных средств: функциональных клавиш, све товых кнопок и т. п.
Разработан ряд программ, организующих развет вление вычислительного процесса с помощью команд, вводимых с различных устройств. Исходная информация о соответствии вызываемых процедур (меток перехода) командам пульта задается в виде таблицы. Программы ветвления выводят пользователю сообщение о возмож ных альтернативах переходов (названиях процедур) к переходят в состояние ожидания запроса пульта. После ввода команды управление передается на соответствую щую ей метку (вызываетсясоответствующая процедура).
Программа ветвления по клавиатуре выводит подсвет каждой клавиши ПФК, на которую разрешено нажатие в данной ситуации, устанавливает требование ввода для блока обмена и переходит в режим ожидания. После вво да код нажатой клавиши анализируется на принадлеж ность множеству разрешенных команд. Если окажется, что нажата «запрещенная» клавиша, команда игнориру ется.
Программа ветвления по «световым кнопкам» выво дит в командную область экрана названия процедур («световые кнопки»). Выбор нужной кнопки производит ся с помощью светового пера или указательного маркера, после чего вызывается соответствующая процедура.
5.4. ОРГАНИЗАЦИЯ ОПЕРАТИВНОГО ОТОБРАЖЕНИЯ ИНФОРМАЦИИ
Оперативное взаимодействие пользователя с ЭВМ предусматривает, в частности, вывод информации в ре альном масштабе времени в удобной для восприятия графической форме.
Выводимая на экран информация отражает состояние модели объекта и ее характеристики (изображения объ екта или его частей, числовые значения параметров), состояние процесса автоматизированного проектирования (ход вычислений, возможные альтернативы управления, вводимые с пульта символы и т. п.).
ю* |
147 |
Источниками этой информации являются соответст
венно модель объекта |
(через |
программы просмотра и |
||
выделения информации |
п расчетные |
проблемные |
про |
|
граммы) и программа-монитор. |
|
|
|
|
Независимое отображение этих компонент на экране |
||||
УО достигается за счет |
постоя иного |
функционального |
||
распределения областей экрана |
н согласования во |
вре |
мени процессов вывода информации от различных источ ников. Обычно центральную часть экрана выделяют для
отображения модели объекта, |
а на краях располагают |
|
области сообщений, ввода и световых кнопок [10]. |
||
Изображение строится на экране УО при выполнении |
||
программы графического процессора |
(ГП) — массива |
|
команд отображения (МКО). |
Состав |
системы команд |
отображения определяется набором геометрических об разов, которые реализует аппаратура УО. Существенным является требование функциональной полноты системы команд, т. е. возможности генерирования с их помощью любого изображения. Простыми полными системами ко манд являются, например, системы с единственной графи ческой командой «Чертить точку» («ТЧК») или «Чертить отрезок прямой» («ПР»), Структура команд и программ ГП для этих случаев приведена на рис. 5.7. Операнды команд содержат значения кода яркости В и координат X, Y точек (концов отрезка). Для регенерации изображения используется команда перехода ПОВТ. Использование примитивных графических команд требу ет программной интерполяции (точечной пли кусочно-ли нейной) сложных контуров [11]. Избыточность при та ком способе кодирования изображения приводит к боль шому расходу памяти для хранения МКО. Аппаратурная реализация более сложных геометрических образов — дуг окружностей, букв, цифр и специальных символов — позволяет снизить избыточность при кодировании и советственно уменьшить требуемый объем памяти для хранения МКО, а также увеличить объем информации, отображаемой за период регенерации.
Значительные возможности для редактирования изоб ражения дают команды относительного перемещения лу ча, а также графические подпрограммы и команды пере ходов в МКО [12]. Структура МКО с использованием таких команд показана на рис. 5.8. Команда с мнемони ческим кодом операции ТЧК вызывает перемещение луча
148
в точку экрана с абсолютными координатами X, Y. Ко манда ПР управляет вычерчиванием отрезка прямой из точки Х\, Y{, определяемой положением луча, в которое его вывела предыдущая команда, в точку с координатами Х;+ДК, У,- + ДУ. Операнд В содержит информацию о яр кости луча. Кроме графических команд, используются команды управления, изменяющие порядок выполнения программы ГП. Команда И вызывает безусловный пере ход по адресу А. Команда ИП передает управление под программе с адреса А с запоминанием точки, откуда было передано управление. Для продолжения вызывающей
|
|
а |
|
тчк |
в |
X |
У |
S
П Р |
в |
X I |
XУZ1 |
п |
-э-П Р |
В ; |
XII; |
У11; |
Х 21; |
У21 |
ПР |
В; |
Х12; |
У12; |
Х22, |
У22 |
ПР В, |
Х1я; У 1л; Х 2п\ |
У2л |
— повт
Рис. 5.7. Пример использования минимального набора команд ото бражения
149