Смекни!
smekni.com

Модель асинхронного процесса ввода символа с клавиатуры и вывода его на экран (стр. 2 из 2)

Так как в моём ЭАП каждый класс идёт от начального в один и тот же конечный класс эквивалентности, то он управляемый.

Данный ЭАП не является простым, так как первая и вторая траектории содержат 2 инициатора.

Таким образом, АП P1 является эффективным и управляемым, но не является простым.

Операции над процессами

Смыслом репозиции данного процесса будет повторное нажатие клавиши, причём неважно после какой ситуации – успешной (символ напечатался) или нет (символ не напечатался).

- resetallsettings (interrupt)

Осуществлённая репозиция является частичной, так как

.

Репозиция позволяет инициировать процесс повторно после его выполнения. Для данной модели это означает, что нажатие клавиши может быть вызвано не только один раз, но и несколько. Фактически репозиция процесса показывает, что процесс выполняется не один, а столько, сколько нужно в какой-то конкретной ситуации.

Редукция

Выделим в качестве входных компонент первую и вторую – клавишу и порт клавиатуры. Первая компонента может принимать только одно значение – 1, вторая – 1 и 0.

Выделим

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

Составим множество

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

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

Образуем множество

:

Таким образом, редукция отображает ветвление на 2 ситуации: символ печатается или символ не печатается.


Композиция

Составим АП «Печать символа в текстовом режиме» и поставим ему в соответствие четвёрку P2 = <S2,F2,I2,R2>. Описание процесса на примере ЯНУ Assembler.

movax, 9h ; команда печатать строку, адрес которой а dx

movdx, offsetstring ; посылает адрес строки в dx

int21h ; программное прерывание

Компоненты:

1) ax (reg). ax = 1 / 0 : есть команда на печать / нет (movax, xh)

2) dx (reg).

dx = 1 / 0 : есть адрес строки (символа) / нет.

3) int 21h (int).

int 21h = 1 / 0 : сработало прерывание / нет.

Эти ситуации образованы следующим образом: к набору компонент ситуаций процесса P1 добавляется справа третья компонента процесса P2, причём она всегда принимает значение 0, так как при срабатывании ситуаций процесса P1 прерывание с номером 21 для вывода символа ещё не срабатывает и на эти ситуации не влияет.

Аналогично к набору компонент процесса P2 приписываются слева четыре первых компоненты первого процесса, и по той же причине они равны нулю.

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

Так как этот процесс начинается прежде всего с нажатия клавиши, а процесс вывода работает с кодом символа в регистрах процессора, то инициаторами процесса P3 можно считать ситуации

и
, т.е. по сути те же ситуации, коими являлись инициаторы процесса P1.

Результантом же примем ситуацию

, т.к. по её завершению символ выводится на экран, что и является долгожданным результатом.

Вывод: частичная репозиция процесса P1 показала, что процесс может выполнятся много раз, редукция процесса P1 отображает ветвление на две ситуации – возможность и невозможность печати символа, осуществлена последовательная композиция АП P1 и АП «Печать символа в текстовом режиме».

Предметная интерпретация асинхронного процесса

Здесь местами являются компоненты процесса, а разметками – ситуации. Начальная разметка совпадает с ситуацией S1.

Как мы видим, вершины построенного графа и их следование (и ветвление) совпадают с векторами ситуаций процесса P1, след. сеть построена правильно.

Данная сеть неограниченна, т.к. место БК не является ограниченным. В нём происходит бесконечное накопление фишек. Данная сеть небезопасна, т.к. небезопасно место БК.

Данная сеть является живой, т.к. все её переходы живы. Все переходы в этой сети устойчивы, т.к. структура сети линейная и из каждой позиции дуга (дуги) направлена (направлены) только на один переход; поэтому и эта сеть – устойчива. Вывод: используя понятия модели «сеть Петри», мы описали составляющие модели «асинхронный процесс». Анализ построенной сети показал, что сеть является живой и устойчивой, но не является ограниченной и безопасной.


Заключение

Целью этой работы является получение опыта по построению метамодели «асинхронный процесс» и модели «сеть Петри», а также по исследованию их свойств.

На основе реального физического процесса «ввод символа с клавиатуры и вывод его на экран» была построена метамодель АП P1, над ней были проведены операции репозиции, редукции и композиции АП P1 и вспомогательного процесса «Печать символа в текстовом виде». Некоторые действия сопровождены семантическими пояснениями. Проведена аналитическая работа, направленная на анализ свойств данного асинхронного процесса.

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