Регистры архитектуры подсистемы ввода/вывода

Разновидности интерфейсов.

03.10.2012

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

Видами интерфейсов бывают:

· Командный интерфейс – реализован в виде пакетной технологии и технологии командной строки. Командная строка включает в себя:

o Тип операции (Команды или программы)

o Рабочий вход (Входные файлы или устройства)

o Рабочий выход (Выходные файлы или устройства)

o Управляющий вход (Управляющие команды или ключи команды)

o Управляющий выход (Протокол, содержащий диагностику ошибок, код завершения или другую информацию)

· WIMP интерфейс – характерной особенностью этого вида интерфейса является то, что диалог с пользователем ведется не с помощью команд, а с помощью графических образов. Этот вид интерфейса реализован на двух уровнях технологий: с элементами графического интерфейса и полностью графический интерфейс. Чистый WIMP интерфейс характеризуется следующими особенностями:

o Вся работа с программами, файлами и документами происходит в окнах.

o Все объекты представляются в виде иконок.

o Все действия с объектами осуществляется с помощью меню.

o Вводится использование манипулятора, как основного элемента управления в ОС.

Виджет – это заготовка части пользовательского интерфейса с параметрами, привязываемыми к окну экрана терминала.

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

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

o Биометрическая технология – для управления компьютером используется выражение лица человека, направление его взгляда и тд. Для идентификации пользователя используется например рисунок радужной оболочки глаз, отпечатки пальцев и другая уникальная информация.

o Семантическая технология – она не является самостоятельным видом интерфейса и включает в себя все виды интерфейсов.

С программной точки зрения устройство обычно представлено одним или несколькими регистрами.

Регистр устройства – это адресуемые машинные слова, используемые для обмена данными или сигналами между устройством и ЦП.

Можно выделить два основных типа регистров:

1. Регистр данных – служит для обмена данными. Запись данных в такой регистр означает вывод данных на устройство. Чтение данных из регистра означает ввод данных с устройства.

2. Регистр управления и состояния – содержит два типа двоичных разрядов. Биты состояния служат для передачи ЦП информации о текущем состоянии устройства (например: сигналов прерывания). Биты управления служат для передачи на устройство сигналов и команд.

В различных ПК используется один из двух способов адресации регистров устройств:

1. Отображения регистров устройств на память

2. Адресация регистров через порты ввода/вывода

Асинхронный и синхронный ввод/вывод

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

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

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

2. Проверка завершения операции – при этом программа не ожидает, а только проверяет состояние асинхронной операции.

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

Буферизация и кэширование.

Буферизацию можно определить как такую систему вводу вывода при которой данные не передаются непосредственно в заданную область памяти, а предварительно направляются во вспомогательную область памяти, называемую буфером.

Существуют несколько причин для использования буферизации:

1. Сглаживание неравномерностей скоростей процессов – решением в этой ситуации является использование буфера максимально большого объема.

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

3. Согласование логической и физической записи – логической записью называется объем данных указанный в операторе ввода/вывода. Размер логической записи определяется логикой работы программы и не как не связанны с блочным устройством. При фактическом выполнении чтения или записи на блочные устройства обрабатывается объем данных называемых физической записью. Размер физической записи определяется особенностями устройства. Использование буфера для накопления данных до размера физической записи позволяет сократить количество операций записи на диск и почти полностью исключить чтение с диска.

4. Редактирование при интерактивном вводе – что бы обеспечить возможность редактирования вводимой строки используется буфер строки, выделяемый либо ОС, либо библиотекой временного выполнения конкретной системы программирования. Все редактирование выполняется над символами, которые помещаются в этот буфер под программами ввода с клавиатуры. После нажатия «ввод» происходит либо копирование из буфера в массив, выделенными прикладной программой, либо передаче этой программе указатель на буфер.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: