Xreferat.com » Рефераты по информатике и программированию » Модель асинхронного процесса ввода символа с клавиатуры и вывода его на экран

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

Размещено на /

Задание


Выбрать вычислительный процесс и на его примере:

построить метамодель «асинхронный процесс» и определить свойства исходного процесса на основе анализа метамодели;

выполнить операции над процессом: репозиция, редукция, композиция, и оценить полученные результаты с практической точки зрения;

построить предметную интерпретацию метамодели на основе сети Петри и сделать вывод о динамических характеристиках исходного процесса.

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


В качестве процесса я выбрал процесс ввода символа с клавиатуры и вывода его на экран. Краткие сведения о клавиатуре и принцип её действия описаны далее.


Клавиатура


Клавиатура — клавишное устройство управления персональным компьютером. Служит для ввода алфавитно-цифровых (знаковых) данных, а также команд управления. Комбинация монитора и клавиатуры обеспечивает простейший интерфейс пользователя. С помощью клавиатуры управляют компьютерной системой, а с помощью монитора получают от нее отклик.

Принцип действия. Клавиатура относится к стандартным средствам персонального компьютера. Ее основные функции не нуждаются в поддержке специальными системными программами (драйверами). Необходимое программное обеспечение для начала работы с компьютером уже имеется в микросхеме ПЗУ в составе базовой системы ввода-вывода (BIOS), и потому компьютер реагирует на нажатия клавиш сразу после включения.


Принцип действия клавиатуры заключается в следующем


При нажатии на клавишу (или комбинацию клавиш) специальная микросхема, встроенная в клавиатуру, выдает так называемый скан-код.

Скан-код поступает в микросхему, выполняющую функции порта клавиатуры. (Порты — специальные аппаратно-логические устройства, отвечающие за связь процессора с другими устройствами.) Данная микросхема находится на основ ной плате компьютера внутри системного блока.

Порт клавиатуры выдает процессору прерывание с фиксированным номером. Для клавиатуры номер прерывания — 9 (Interrupt 9, Int 9).

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

Определив адрес начала программы, обрабатывающей возникшее прерывание, процессор переходит к ее исполнению. Простейшая программа обработки кла виатурного прерывания «зашита» в микросхему ПЗУ, но программисты могут «подставить» вместо нее свою программу, если изменят данные в векторе пре рываний.

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

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

Процессор прекращает обработку прерывания и возвращается к отложенной задаче.

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

Построение метамодели «асинхронный процесс»


Поставим нашему асинхронному процессу в соответствие четвёрку Модель асинхронного процесса ввода символа с клавиатуры и вывода его на экран, в которой:

Модель асинхронного процесса ввода символа с клавиатуры и вывода его на экран — непустое множество ситуаций;

Модель асинхронного процесса ввода символа с клавиатуры и вывода его на экран — отношение непосредственного следования ситуаций, определённое на множестве Модель асинхронного процесса ввода символа с клавиатуры и вывода его на экран;

Модель асинхронного процесса ввода символа с клавиатуры и вывода его на экран — множество инициаторов;

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 является эффективным и управляемым, но не является простым.


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


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


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

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

Модель асинхронного процесса ввода символа с клавиатуры и вывода его на экран - reset all settings (interrupt)


Осуществлённая репозиция является частичной, так как Модель асинхронного процесса ввода символа с клавиатуры и вывода его на экран.

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


Редукция


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

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

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


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


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


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


Образуем множество Модель асинхронного процесса ввода символа с клавиатуры и вывода его на экран:


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

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

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

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


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

Композиция


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


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

mov dx, offset string ; посылает адрес строки в dx

int 21h ; программное прерывание

Компоненты:

1) ax (reg). ax = 1 / 0 : есть команда на печать / нет (mov ax, 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 и вспомогательного процесса «Печать символа в текстовом виде». Некоторые действия сопровождены семантическими пояснениями. Проведена аналитическая работа, направленная на анализ свойств данного асинхронного процесса.

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

Размещено на


Если Вам нужна помощь с академической работой (курсовая, контрольная, диплом, реферат и т.д.), обратитесь к нашим специалистам. Более 90000 специалистов готовы Вам помочь.
Бесплатные корректировки и доработки. Бесплатная оценка стоимости работы.

Поможем написать работу на аналогичную тему

Получить выполненную работу или консультацию специалиста по вашему учебному проекту
Нужна помощь в написании работы?
Мы - биржа профессиональных авторов (преподавателей и доцентов вузов). Пишем статьи РИНЦ, ВАК, Scopus. Помогаем в публикации. Правки вносим бесплатно.

Похожие рефераты: