Задание
1. Выбрать вычислительный процесс и на его примере:
- построить метамодель «асинхронный процесс» и определить свойства исходного процесса на основе анализа метамодели;
- выполнить операции над процессом: репозиция, редукция, композиция, и оценить полученные результаты с практической точки зрения;
- построить предметную интерпретацию метамодели на основе сети Петри и сделать вывод о динамических характеристиках исходного процесса.
Описание процесса
В качестве процесса я выбрал процесс ввода символа с клавиатуры и вывода его на экран. Краткие сведения о клавиатуре и принцип её действия описаны далее.
Клавиатура
Клавиатура — клавишное устройство управления персональным компьютером. Служит для ввода алфавитно-цифровых (знаковых) данных, а также команд управления. Комбинация монитора и клавиатуры обеспечивает простейший интерфейс пользователя. С помощью клавиатуры управляют компьютерной системой, а с помощью монитора получают от нее отклик.
Принцип действия. Клавиатура относится к стандартным средствам персонального компьютера. Ее основные функции не нуждаются в поддержке специальными системными программами (драйверами). Необходимое программное обеспечение для начала работы с компьютером уже имеется в микросхеме ПЗУ в составе базовой системы ввода-вывода (BIOS), и потому компьютер реагирует на нажатия клавиш сразу после включения.
Принцип действия клавиатуры заключается в следующем
1.При нажатии на клавишу (или комбинацию клавиш) специальная микросхема, встроенная в клавиатуру, выдает так называемый скан-код.
2.Скан-код поступает в микросхему, выполняющую функции порта клавиатуры. (Порты — специальные аппаратно-логические устройства, отвечающие за связь процессора с другими устройствами.) Данная микросхема находится на основ ной плате компьютера внутри системного блока.
3.Порт клавиатуры выдает процессору прерывание с фиксированным номером. Для клавиатуры номер прерывания — 9 (Interrupt 9, Int 9).
4.Получив прерывание, процессор откладывает текущую работу и по номеру пре рывания обращается в специальную область оперативной памяти, в которой находится так называемый вектор прерываний. Вектор прерываний — это список адресных данных с фиксированной длиной записи. Каждая запись содержит адрес программы, которая должна обслужить прерывание с номером, совпадаю щим с номером записи.
Забиваем Сайты В ТОП КУВАЛДОЙ - Уникальные возможности от SeoHammer
Каждая ссылка анализируется по трем пакетам оценки: SEO, Трафик и SMM.
SeoHammer делает продвижение сайта прозрачным и простым занятием.
Ссылки, вечные ссылки, статьи, упоминания, пресс-релизы - используйте по максимуму потенциал SeoHammer для продвижения вашего сайта.
Что умеет делать SeoHammer
— Продвижение в один клик, интеллектуальный подбор запросов, покупка самых лучших ссылок с высокой степенью качества у лучших бирж ссылок.
— Регулярная проверка качества ссылок по более чем 100 показателям и ежедневный пересчет показателей качества проекта.
— Все известные форматы ссылок: арендные ссылки, вечные ссылки, публикации (упоминания, мнения, отзывы, статьи, пресс-релизы).
— SeoHammer покажет, где рост или падение, а также запросы, на которые нужно обратить внимание.
SeoHammer еще предоставляет технологию Буст, она ускоряет продвижение в десятки раз,
а первые результаты появляются уже в течение первых 7 дней.
Зарегистрироваться и Начать продвижение
5.Определив адрес начала программы, обрабатывающей возникшее прерывание, процессор переходит к ее исполнению. Простейшая программа обработки кла виатурного прерывания «зашита» в микросхему ПЗУ, но программисты могут «подставить» вместо нее свою программу, если изменят данные в векторе пре рываний.
6.Программа-обработчик прерывания направляет процессор к порту клавиатуры, где он находит скан-код, загружает его в свои регистры, потом под управле нием обработчика определяет, какой код символа соответствует данному скан- коду.
7.Далее обработчик прерываний отправляет полученный код символа в небольшую область памяти, известную как буфер клавиатуры, и прекращает свою работу, известив об этом процессор.
8.Процессор прекращает обработку прерывания и возвращается к отложенной задаче.
Введенный символ хранится в буфере клавиатуры до тех пор, пока его не забе рет оттуда та программа, для которой он и предназначался, например тексто вый редактор или текстовый процессор. Если символы поступают в буфер чаще, чем забираются оттуда, наступает эффект переполнения буфера. В этом слу чае ввод новых символов на некоторое время прекращается. На практике в этот момент при нажатии на клавишу мы слышим предупреждающий звуковой сиг нал и не наблюдаем ввода данных.
Построение метамодели «асинхронный процесс»
Поставим нашему асинхронному процессу в соответствие четвёрку , в которой:
— непустое множество ситуаций;
— отношение непосредственного следования ситуаций, определённое на множестве ;
— множество инициаторов;
1. Выделить компоненты рассматриваемого процесса.
a) Клавиша (скан-код).
К = 1 / К = 0: клавиша нажата / нет.
б) Порт клавиатуры (прерывание).
ПК = 1 / ПК = 0: в порт поступил скан-код / нет.
в) Вектор прерываний.
ВП = 1 / ВП = 0: вектор прерываний получил запрос от процессора / нет.
г) Процессор (обработчик прерываний).
П = 1 / П = 0: процессор обработал код / нет.
д) Буфер клавиатуры.
БК = 1 / БК = 0: буфер клавиатуры переполнен / нет.
е) Символ.
С = 1 / С = 0: печать возможна / нет
2. Сформировать множество ситуаций рассматриваемого процесса.
1) Клавиша нажата.

2) Порт клавиатуры получил скан-код.

3) Активизируется вектор прерываний.

4) Процессор определил код символа.

5) Буфер клавиатуры получает код символа, буфер не переполнен, печать символа возможна.
Сервис онлайн-записи на собственном Telegram-боте
Попробуйте сервис онлайн-записи VisitTime на основе вашего собственного Telegram-бота:
— Разгрузит мастера, специалиста или компанию;
— Позволит гибко управлять расписанием и загрузкой;
— Разошлет оповещения о новых услугах или акциях;
— Позволит принять оплату на карту/кошелек/счет;
— Позволит записываться на групповые и персональные посещения;
— Поможет получить от клиента отзывы о визите к вам;
— Включает в себя сервис чаевых.
Для новых пользователей первый месяц бесплатно.
Зарегистрироваться в сервисе

асинхронный процесс редукция репозиция
6) Буфер клавиатуры получает код символа, буфер переполнен, печать символа невозможна. 
 |
К |
ПК |
ВП |
П |
БК |
С |
 |
1 |
0 |
0 |
0 |
0 |
0 |
 |
1 |
1 |
0 |
0 |
0 |
0 |
 |
1 |
1 |
1 |
0 |
0 |
0 |
 |
1 |
1 |
1 |
1 |
0 |
0 |
 |
1 |
1 |
1 |
1 |
0 |
1 |
 |
1 |
1 |
1 |
1 |
1 |
0 |
Описать модель «асинхронный процесс»
 
Ситуация описывает начальный этап данного процесса – нажатие клавиши, который инициирует ход всего процесса. Ситуация описывает ситуацию, когда процессор определяет код символа, который выводится на печать. Она инициирует дальнейшую работу с этим кодом. Ситуации и описывают два возможных результата – возможность и невозможность печати.
Определить траектории выполнения процесса и классы эквивалентности ситуаций и сделать вывод о свойствах рассматриваемого процесса (эффективность, управляемость, простота)
Траектории:




Первая траектория описывает процесс, результат которого – возможность печати. Вторая траектория описывает процесс, результат которого – невозможность печати. Третья траектория описывает определение кода символа и возможность заполнения буфера клавиатуры.
Четвёртая траектория описывает определение кода символа и невозможность заполнения буфера клавиатуры.
АП эффективен, т.к. из инициаторов все траектории ведут в результанты и все траектории, приводящие к результантам, исходят из инициаторов.
Определим классы эквивалентности. Для множества можно определить отношение такое, что:
1) , если ;
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 и вспомогательного процесса «Печать символа в текстовом виде». Некоторые действия сопровождены семантическими пояснениями. Проведена аналитическая работа, направленная на анализ свойств данного асинхронного процесса.
Важной частью работы является построение сети Петри по данному АП на основе структуры и логики поведения процесса. С помощью этого инструмента изучены принципы функционирования компонентов сети, а следовательно и компонентов процесса.
|