Учебное пособие Санкт-Петербург Издательство спбгэту «лэти» 2006
Вид материала | Учебное пособие |
- Учебное пособие Санкт-Петербург Издательство спбгэту «лэти» 2006, 648.91kb.
- Учебное пособие Санкт-Петербург Издательство спбгэту «лэти» 2004, 1302.72kb.
- Лэти» радиотехнические цепи и сигналы лабораторный практикум санкт-Петербург Издательство, 1341.05kb.
- Учебное пособие Издательство спбгпу санкт-Петербург, 1380.47kb.
- Учебное пособие Санкт-Петербург Издательство спбгпу 2003, 5418.74kb.
- Учебное пособие Санкт-Петербург 2011 удк 621. 38. 049. 77(075) Поляков, 643.33kb.
- СПбгэту центр по работе с одаренной молодежью информационное письмо санкт-Петербургский, 63.77kb.
- 1. Обязательно ознакомиться с пакетом заранее. Все вопросы можно обсудить с редакторами, 215.48kb.
- Пособие для студентов IV-VI курсов, интернов и клинических ординаторов Санкт-Петербург, 494.12kb.
- Новые поступления за январь 2011 Физико-математические науки, 226.57kb.
5.5. Программные средства управления вводом-выводом
Состав
| ПСУВВ | | | |||||||||||||||
| | | ||||||||||||||||
Управление данными | | Управление устройствами | ||||||||||||||||
| | | | | | | | | | | | | | |||||
Блочно–ориент. I/O | Записе- ориен. I/O | FCB доступ | FH доступ | Распред. ВУ между задачами | Подсистема буфери-зации | Драйверы внешних устройств | |
Рис. 5.11
На рис. 5.11 две основных части: управление данными и устройствами.
Подсистема управления данными обеспечивает:
- блочно-ориентированный ввод-вывод для файлов последовательного доступа;
- записе-ориентированный ввод-вывод для файлов прямого доступа.
Система управления устройствами содержит три подсистемы:
Диспетчеризация устройств между задачами.
Подсистема буферизации загрузки и выгрузки данных
Набор драйверов для управления операциями ввода-вывода в конкретных ВУ.
Основные компоненты процедуры управления ввода-вывода общего вида
- Подготовительная (инициализирующая) часть:
Формирование областей для хранения данных и создание указателей на эти области.
Указания типа и логического номера внешнего устройства.
Задание режима передачи данных и направления передачи.
Этот этап обычно реализует процессор, который осуществляет подготовку.
- Планирование, проверка готовности и запуск устройства.
Выбор канала.
Выбор внешнего устройства.
Замена логических номеров на физические адреса.
Проверка готовности для выполнения операции.
Запуск устройства для работы.
- Выполнение устройством операции ввода-вывода
Для реализации используются драйверы и программы управления данными
- Завершение операции ввода-вывода; следовательно освобождаются занимаемые области памяти и устройства, участвовавшие в операции.
5.6. Состав и реализация устанавливаемого драйвера символьного типа
Возможны четыре варианта использования драйвера:
- Непосредственно написание драйвера на уровне битов портов ввода-вывода и включение его в собственную программу; используется в случае редко используемых драйверов и специализи-рованных машин (малоперспективно).
- Подключение драйвера в оверлейном режиме (сокращение занимаемой области памяти).
- Написание драйвера как резидентного обработчика прерываний. Достоинство: доступен всем программам. Недостаток: как правило, доступен только из ассемблера.
- Создание устанавливаемого в операционной системе драйвера, который включается в файл конфигурации config.sys с помощью команды типа device = path\my_driver
Хорош тем, что драйвер полностью поддерживается средствами операционной системы. Соответственно к нему применимы команды операционной системы вида:
copy a:\ my_driver c:\drv
Во-вторых, с ним можно работать из языков высокого уровня с помощью операций работы с файлами.
Устанавливаемые драйверы бывают двух типов: блочные и символьные.
Первые используют файловую организацию и передачу данных блоками (обычно применяются для работы с дисковыми накопителями). Вторые используют посимвольную передачу данных (она проще) и применимы к любым внешним устройствам.
Символьный драйвер состоит из следующих элементов:
- Заголовок драйвера.
- Процедура стратегии.
- Буфер запроса.
- Обработчик прерываний подключает таблицу функций с набором операций, которые могут выполняться данным устройством.
1. Заголовок драйвера (18 байт)
- Адрес следующего драйвера (4 байт).
- Атрибуты (2 байт).
- Смещение процедуры стратегии (2 байт).
- Смещение обработчика прерываний.
- И
Заголовок драйвера Буфер запроса
1)Адрес след.драйвера 1)Длина буф. запроса
2)Атрибуты 2)Код ВУ
3)Смещение (3) 3)Код команды Вв/выв
4)Смещ. обр-ка прер. 4)Статус
5)Имя устройства (2) 5)Резерв
Процедура стратегии (4) Данные
(5)
Обработчик прерываний (не найден)
| инициализация
ТаблФ | ввод
| вывод
(6) (7)
ПП инициализац
ПП ввода
(функция вып.команды)
ПП вывода
(8)
RET статус завершения
возврат
в прикладную
программу
мя устройства (8 байт).


























Драйвер обычно записывается как самостоятельный модуль, но без PSP, поэтому не может запускаться самостоятельно.
1. Атрибуты:
15 бит : 1- символьный драйвер
0 – блочный драйвер
14 бит : поддержка IOCTL
13 бит : формат блоков
1 – IBM
0 – любой другой
………
3 бит : 1 – часы
0 – не часы
2 бит : 1 – null
0 – не null
1 бит : 1 – STDOUT (стандарт вывода)
0 - STDIN (стандарт ввода)
2. Процедура стратегии.
Процедура стратегии выполняются только один раз на этапе загрузки и служит для запоминания длинного указателя на буфер запроса, создаваемый для драйвера самой операционной системой.
DEV_STRAT:
mov cs:SEG_PQBF, es ;
mov cs:OFF_PQBF, es ;
ret
SEG_PQBF DW ?
OFF_PQBF DW ?
3. Буфер запроса.
Структура данных, через которые прикладная программа связывается с драйвером (прикладная программа задает вид операции ввода-вывода и место расположения данных, а драйвер возвращает ей свой статус (все идет через буфер запроса)).
Буфер состоит их стандартной части 13 байт, называемой заголовок и последующей части, называемой данные, содержащей различную информацию в зависимости от вида драйвера и исполнительной операции ввода-вывода.
Заголовок запроса.
+0 : длина буфера запроса
+1 : код внешнего устройства
+2 : код команды ввода-вывода
+3 : статус
+5 : резерв
+13d : данные
4. Обработчик прерывания.
Это только процедура, которая таблично вызывает функцию, реализующую команду ввода-вывода; она завершается командой RET и выдачей статуса.

Код обработчика прерываний
dev_intpr: push A
mov ax, SEG_PQBF ;
mov es, ax ;
mov bx, OFF_PQBF ;
mov al, es:[bx+2] ;
shl al, 1 ;
xor ah, ah ; Подготовка и загрузка
lea di, FUN_TAB ; смещения функции
add di, ax ; в таблицу функции
jmp word ptr[DI] ;
FUN_TAB LABEL WORD;
DW INITIALIZE
DW CHECK_MEDIA
. . . . . . .
DW INPUT_DATA
Тринадцать . . . . . . .
функций DW OUPUT_DATA
. . . . . . .
DW OUTPUT_STATUS
. . . . . . .
DW IOCTL_OUT
Определенная функция находится в определенной строке таблицы.
Предположим что драйвер поддерживает только две функции init и out, тогда:
CHECK_MEDIA:
. . . . . .
INPUT_DATA:
. . . . . .
IOCTL_OUT:
or es.word ptr[bx]+3, 8103h
JMP QUIT
INITIALIZE:
lea ax, E_O_P
mov es, word ptr[bx]+14, ax
mov es, word ptr[bx]+16, cs
JMP QUIT
OUTPUT_DATA
QUIT:
OR es:word ptr[bx]+3, 100h
POPA
RET
В поле статус, бит
15 – ошибка
9 – драйвер занят
8 – функция завершена
с 0 – 7 – код ошибки
Пример: 8103h означает 8 – ошибка , 1 – операция завершена, 03 – неизвестная ошибка.
После разработки драйвера нужно вставить его в config.sys
Надо учесть, что драйвер не прощает ошибок. Так как он скрыт от пользователя, поэтому нельзя пользоваться отладчиком.
Список литературы
Цилькер Б.Я., Орлов С.А. Организация ЭВМ и систем: Учебник для вузов. СПб.: Питер, 2004.
Таненбаум Э. Архитектура компьютера. СПб.: Питер, 2002.
Гук М. Аппаратные средства IBM PC. Энциклопедия 2-е изд. СПб.: Питер, 2002.
Зубков С.В. Assembler. Для DOS, Windows и Unix. М.: ДМК, 1999.
Компьютеры на СБИС: В 2 кн. Кн.1 / Пер. с япон.; Мотоока Т., Томита С., Танака Х. и др. М.: Мир, 1988.
Королев Л.Н. Микропроцессоры, микро- и мини-ЭВМ. – М.: Изд-во МГУ, 1988
Дополнительная
Касперски К. Техника оптимизации программ. Эффективное использование памяти. СПб.: БХВ-Петербург, 2003.
Рудометов Е., Рудометов В. Архитектура ПК, комплектующие, мультимедиа. СПб.: Питер, 2000.
Рудаков П.И., Финогенов К.Г. Программируем на языке ассемблера IBM PC. Обнинск: Принтер, 1999.
Фрир Дж. Построение вычислительных систем на базе перспективных микропроцессоров / Пер. с англ. М.: Мир, 1990.
Фролов А.В., Фролов Г.В. Аппаратное обеспечение персонального компьютера. М.: Диалог-МИФИ, 1997 (Библиотека системного программиста; т.33).
Джордейн Р. Справочник программиста ПК типа IBM PC XT и AT / Пер. с англ. М.: Финансы и статистика, 1991.