Студопедия

КАТЕГОРИИ:


Архитектура-(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
begin
ИЗЪЯТЬ(ЗАПИСЬ,БУФЕР);

If not ПЕРЕДАЧА then ЗАПУСТИТЬ_КАНАЛ;
end;

else
begin

If not ПЕРЕДАЧА then ЗАПУСТИТЬ_КАНАЛ;

ОЖИДАНИЕ:=true;

Сохранить контекст, перейти к другой активности

end

{--обработчик прерывания--}
if not БУФЕР_ПОЛНЫЙ
then Запустить_канал;
if ОЖИДАНИЕ
then

<== предыдущая лекция | следующая лекция ==>
Спецификации механизма | Метод нисходящей декомпозиции
Поделиться с друзьями:


Дата добавления: 2014-01-20; Просмотров: 1239; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.012 сек.