КАТЕГОРИИ: Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748) |
Принципы работы канала ввода-вывода. Буферный ввод-вывод
Ввод-вывод, программируемый с помощью канала или ПДП Канал представляет собой процессор способный выполнить программу ввода вывода на связанном с ним периферийном устройстве. Программа канала состоит из последовательности команд, каждому из которых определяет операцию ввода-вывода. Это программа должна быть подготовлена центральным процессором за ранее. Принципы работы процессора: 1) Канал может быть запущен в действие только центральным процессором специальной инструкцией Запустить_канал. Эта инструкция инициализирует слово-состояние канала(ССК), специально определяется адрес первой выполненной команды, с этого момента канал и центральный процессор работают параллельно. 2) После запуска канал выполняет свою программу, это выполнение может завершится либо нормальным завершение программы, либо ошибкой (технический сбой), либо приказом центрального процессора Остановить_канал. Вся необходимая информация о только что законченной программы заносится в стек. 3) в каждый момент центральный процессор может проверить с помощью инструкции тестировать_канал состояние канала, выполняющего свою программу. Получаемое состояние соответствует последней точки наблюдения канала. Проверка не влияет на ход выполнения программы канала. Буферный ввод-вывод. Так как скорости работы центрального процессора и периферийных органов сильно различаются, применяют «буферизацию» ввода-вывода. Буфер – специальная область памяти которая служит передаточным звеном между программой пользователя и ПУ, используется для временного хранения передаваемых данных. Программа пользователя, обменивались данными с ПУ на самом деле считывает или записывает данные в буфер. В свою очередь буфер служит источником или приемником информации для ПУ.
Например: для обмена данных между центральным процессором и магнитным диском используется буфер в оперативной памяти, а для вывода данных на принтер может быть использована буферизация на диске. Для изучения буферного ввода-вывода рассмотрим упрощенную модель, описываемую следующими спецификациями: · при обмене с периферийными устройствами используются записи фиксированной длины; · размер буфера фиксирован и составляет N записей; · для программы пользователя обмен с буфером должен имитировать обмен с периферийным устройством, следовательно, должен сохраняться порядок передачи информации между буфером и периферийным устройством и ни одна запись не должна быть потеряна; · бесполезное ожидание должно быть сведено к минимуму как для центрального процессора, так и для периферийного устройства; · возможности носителей не ограничены: при чтении постоянно обеспечивается данными устройство ввода, при записи - устройство вывода; · будем считать для нашей модели, что передача осуществляется без ошибок. В качестве буфера используется структура, работающая по принципу FIFO(первый вошел первый вышел), для работы с очередью будем использовать следующие функции. Поместить (запись, буфер) – поместить запись в буфер Изъять (запись, буфер) – Изъять запись из буфера Состояние очереди определяется переменными: Буфер_пустой Буфер_полный Состояние передачи канала или ПДП определяется переменной Передача Запрос прерывания от канала процессору проступает по окончанию передачи очередной записи. ПРОЧИТАТЬ(ЗАПИСЬ) If not ПЕРЕДАЧА then ЗАПУСТИТЬ_КАНАЛ; else If not ПЕРЕДАЧА then ЗАПУСТИТЬ_КАНАЛ; ОЖИДАНИЕ:=true; Сохранить контекст, перейти к другой активности end {--обработчик прерывания--}
Дата добавления: 2014-01-20; Просмотров: 1239; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |