Задание
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) Буферклавиатуры получает код символа, буфер переполнен, печать символа невозможна. />