Название: Модель асинхронного процесса ввода символа с клавиатуры и вывода его на экран
Вид работы: контрольная работа
Рубрика: Информатика и программирование
Размер файла: 57.36 Kb
Скачать файл: referat.me-135250.docx
Краткое описание работы: Построение метамодели "асинхронного процесса" и определение свойств исходного процесса. Выполнение операций репозиции, редукции и композиции, оценка полученных результатов с практической точки зрения. Построение предметной интерпретации метамодели.
Модель асинхронного процесса ввода символа с клавиатуры и вывода его на экран
Задание
1. Выбрать вычислительный процесс и на его примере:
- построить метамодель «асинхронный процесс» и определить свойства исходного процесса на основе анализа метамодели;
- выполнить операции над процессом: репозиция, редукция, композиция, и оценить полученные результаты с практической точки зрения;
- построить предметную интерпретацию метамодели на основе сети Петри и сделать вывод о динамических характеристиках исходного процесса.
Описание процесса
В качестве процесса я выбрал процесс ввода символа с клавиатуры и вывода его на экран. Краткие сведения о клавиатуре и принцип её действия описаны далее.
Клавиатура
Клавиатура — клавишное устройство управления персональным компьютером. Служит для ввода алфавитно-цифровых (знаковых) данных, а также команд управления. Комбинация монитора и клавиатуры обеспечивает простейший интерфейс пользователя. С помощью клавиатуры управляют компьютерной системой, а с помощью монитора получают от нее отклик.
Принцип действия. Клавиатура относится к стандартным средствам персонального компьютера. Ее основные функции не нуждаются в поддержке специальными системными программами (драйверами). Необходимое программное обеспечение для начала работы с компьютером уже имеется в микросхеме ПЗУ в составе базовой системы ввода-вывода (BIOS), и потому компьютер реагирует на нажатия клавиш сразу после включения.
Принцип действия клавиатуры заключается в следующем
1.При нажатии на клавишу (или комбинацию клавиш) специальная микросхема, встроенная в клавиатуру, выдает так называемый скан-код.
2.Скан-код поступает в микросхему, выполняющую функции порта клавиатуры. (Порты — специальные аппаратно-логические устройства, отвечающие за связь процессора с другими устройствами.) Данная микросхема находится на основ ной плате компьютера внутри системного блока.
3.Порт клавиатуры выдает процессору прерывание с фиксированным номером. Для клавиатуры номер прерывания — 9 (Interrupt 9, Int 9).
4.Получив прерывание, процессор откладывает текущую работу и по номеру пре рывания обращается в специальную область оперативной памяти, в которой находится так называемый вектор прерываний. Вектор прерываний — это список адресных данных с фиксированной длиной записи. Каждая запись содержит адрес программы, которая должна обслужить прерывание с номером, совпадаю щим с номером записи.
5.Определив адрес начала программы, обрабатывающей возникшее прерывание, процессор переходит к ее исполнению. Простейшая программа обработки кла виатурного прерывания «зашита» в микросхему ПЗУ, но программисты могут «подставить» вместо нее свою программу, если изменят данные в векторе пре рываний.
6.Программа-обработчик прерывания направляет процессор к порту клавиатуры, где он находит скан-код, загружает его в свои регистры, потом под управле нием обработчика определяет, какой код символа соответствует данному скан- коду.
7.Далее обработчик прерываний отправляет полученный код символа в небольшую область памяти, известную как буфер клавиатуры, и прекращает свою работу, известив об этом процессор.
8.Процессор прекращает обработку прерывания и возвращается к отложенной задаче.
Введенный символ хранится в буфере клавиатуры до тех пор, пока его не забе рет оттуда та программа, для которой он и предназначался, например тексто вый редактор или текстовый процессор. Если символы поступают в буфер чаще, чем забираются оттуда, наступает эффект переполнения буфера. В этом слу чае ввод новых символов на некоторое время прекращается. На практике в этот момент при нажатии на клавишу мы слышим предупреждающий звуковой сиг нал и не наблюдаем ввода данных.
Построение метамодели «асинхронный процесс»
Поставим нашему асинхронному процессу в соответствие четвёрку
, в которой:
— непустое множество ситуаций;
— отношение непосредственного следования ситуаций, определённое на множестве
;
— множество инициаторов;
1. Выделить компоненты рассматриваемого процесса.
a) Клавиша (скан-код).
К = 1 / К = 0: клавиша нажата / нет.
б) Порт клавиатуры (прерывание).
ПК = 1 / ПК = 0: в порт поступил скан-код / нет.
в) Вектор прерываний.
ВП = 1 / ВП = 0: вектор прерываний получил запрос от процессора / нет.
г) Процессор (обработчик прерываний).
П = 1 / П = 0: процессор обработал код / нет.
д) Буфер клавиатуры.
БК = 1 / БК = 0: буфер клавиатуры переполнен / нет.
е) Символ.
С = 1 / С = 0: печать возможна / нет
2. Сформировать множество ситуаций рассматриваемого процесса.
1) Клавиша нажата.
![]()
2) Порт клавиатуры получил скан-код.
![]()
3) Активизируется вектор прерываний.
![]()
4) Процессор определил код символа.
![]()
5) Буфер клавиатуры получает код символа, буфер не переполнен, печать символа возможна.
![]()
асинхронный процесс редукция репозиция
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 и вспомогательного процесса «Печать символа в текстовом виде». Некоторые действия сопровождены семантическими пояснениями. Проведена аналитическая работа, направленная на анализ свойств данного асинхронного процесса.
Важной частью работы является построение сети Петри по данному АП на основе структуры и логики поведения процесса. С помощью этого инструмента изучены принципы функционирования компонентов сети, а следовательно и компонентов процесса.
Похожие работы
-
Спецификация каркаса информационной системы с распределенной архитектурой
Пакеты модели метамодели, фактов и безопасности. Концептуальная модель клиента. Пример функционирования распределенной архитектуры. Сложность реализации.
-
Моделирование системных элементов
Математическое моделирование - это теоретико-экспериментальный метод познавательно-созидательной деятельности.
-
Синтаксический распознаватель арифметического оператора условного перехода языка FORTRAN
Министерство науки высшей школы и технической политики Российской Федерации. Новосибирский Государственный Технический Университет. Курсовая работа по системному программированию.
-
Построение и использование компьютерных моделей
Понятие компьютерной и информационной модели. Задачи компьютерного моделирования. Дедуктивный и индуктивный принципы построения моделей, технология их построения. Этапы разработки и исследования моделей на компьютере. Метод имитационного моделирования.
-
Чтение и запись с CD-R-устройств
Исследование процессов и ситуаций, происходящих при чтении и записи с CD-R-устройств. Построение метамодели "асинхронный процесс" и определение свойств исходного процесса на основе анализа данной модели. Выполнение определенных операций над процессом.
-
Процессы и ситуации, происходящие при чтении дисков CD-RW
Полное исследование процесса чтения информации с диска CD-RW, которое является простым, эффективным и управляемым. Оценка операций над процессами репозиции, редукции и композиции. Механизм возобновления асинхронного процесса. Построение сети Петри.
-
Модель асинхронного процесса создания кадра с помощью цифровой фотокамеры
Принцип создания кадра с помощью цифровой камеры. Построение метамодели "асинхронный процесс". Описание траекторий выбранного процесса. Операции репозиции, редукции и композиции. Предметная интерпретация асинхронного процесса. Построение сети Петри.
-
Моделирование процесса печати с использованием струйного принтера Hewlett Packard (термоструйная печать)
Расчетно-графическая модель "асинхронного процесса" печати струйного принтера, который является эффективным, неуправляемым и непростым. Описание операций редукции, репозиции и параллельной композиции. Построение ограниченной и безопасной сети Петри.
-
Запись информации на магнитный носитель
Характеристика и описание модели "асинхронный процесс". Построение полной или частичной репозиции процесса. Понятие репозиции, редукции и композиции. Построение сети Петри и анализ ее свойств на ограниченность и безопасность, на живость и устойчивость.
-
Синтез та дослідження тригерних схем на основі логічних елементів
Структури тригерних пристроїв в логічному базисі І-НЕ з потенційним представленням інформації. Особливості будови тригера - пристрою, що може знаходитись в одному з двох стійких станів і переходить з одного стану в другий під дією зовнішніх сигналів.