Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

книги из ГПНТБ / Оперативные графические системы в автоматизации проектирования

..pdf
Скачиваний:
4
Добавлен:
19.10.2023
Размер:
6.87 Mб
Скачать

ii ожидание. Сигнал запроса инициирует продолжение программы с команды ввода. В момент анализа указа­ теля должен быть аппаратурпо задержан сигнал запро­ са, чтобы избежать «зависания». Таким образом, случаи одновременного поступления запроса сводится к случаю

позднего запроса.

Во время ожидания процессор не используется диало­ говой программой, и его целесообразно загрузить другп-

 

Поздний

Ранний

Вычислительная

запрос

запрос

 

 

программа 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

Соседние файлы в папке книги из ГПНТБ