Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Лекция 7. 10 - чтение - канал узнает направление передачи данных



Типы кодов операций:

… … 10 - чтение - канал узнает направление передачи данных

… … 01 - запись - канал готовится передавать информаию из ОП в УВВ

… … 11 - управление - разновидность записи, настравиает УВВ к принятию

информации

… … 00 - недопустимый код - выдается после команды проверить

ввод/вывод, это текущее состояние канала.

При выполнении команды “запись” канал поставляет УВВ данные из ОП до тех пор, пока не будет исчерпа счетчик. УВВ непосредственно к ОП не обращается.

При выполнении команды “чтение” УВВ передает в канал байты, а канал записывает их в ОП по указанному адресу до исчерпания счетчика. Если по окончании операции ввода/вывода счетчик оказался не равным 0 (он уменьшается при передаче каждого байта), то формируется сигнал “непрерывная длина”.

Флаги.

PCI - программно управляемое прерывание

CD - chain of data - цепочка данных

CC - chain of commandes - цепочка команд

SILI - suppress invalid length indicator - подавление признака неправильной длины

IDA - indirect address - косвенная адресация

SKIP - блокировка записи в память

CD и CC.

Эти флаги говорят о том, что надо сделать каналу после выполнения команды.

Если CD=1, то СС уже можно не проверять.

Если в текущей канальной команде CD=1, то по окончании передачи данных, заданных адресом и счетчиком в текущей коамнде, анчинается передача данных в соответствии с адресом и счетчиком, заданных вследующей команде, и код операции из следующей команды игнорируется. Таким образом канал имеет возможность передавать данные, используя несвязные области памяти.

Канал запоминает, в каком режиме он работает, в CD или в CC. Это важно для операции ввода/вывода.

CD=0 и CC=1 - по окончании выполнения передачи данных текущей команды происходит выбор следующей канальной команды и дальнейшая обработка продолжается в соответствии с новым кодом операции.

CD=0 и CC=0 - по окончании обработки текущей команды выполнение канальной программы прекращается.

Пример: в ОС OS обновление консоли (экрана работы) выполнялось следующим образом.

1-ая команда: считывает 2-ую строку

2-ая команда: помещает считанны данные в 1-ую строку

3-яя команда: считывает в тот же буфер 3-ую строку

4-ая команда: записывает считанные данные во 2-ую строку

и т.д.

последняя команда: очищает нижнюю строку экрана

PCI

Если при выборе очередной канальной команды канал обнаружит флаг PCI=1, то он сформирует сигнал на прерывание ввода/вывода, тем самым программа, выполняемая на ЦП оповещается о ходе выполнения канальной программы.

SILI

Если SILI=0, то канал должен прекратить выполнение канальной программы.

Если SILI=1, то работа канальной программы продолжается.

IDA

В IBM 360 этого флага не было. Он появился вместе с DAT.

Пример:

Запишем первые 4 страницы на диск. CCW указывает нам на список, который в свою очередь и указывает на страницы - косвенная адрасация.

При IDA=1 поле адреса в канальной программе указывает на список.

При IDA=0 порядок страниц не уитывается, т.е. считывается все подряд.

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

IDA канальной команды предназначен для сообщения канальной программе о том, что адрес в данной канальной команде указывает не на передваемые данные, а на список областей, который состоит из строк следующего вида: адреса области и ее длины. При исчерпании обоасти канал выбирает следующую строку из списка и выполняет передачу данных, используя уже новый адрес.

Флаг IDA дополняет DAT, делая удобным выполнение в реальной памяти канальных программ, подготовленных в виртуальной памяти.

SKIP

SKIP=1 - УВВ и его УУ работают как обычно. Канал передавемые УВВ байты просто теряет. Этот флаг действует только в операциях «чтение».

Пример: «Как считать нужные байты в ОП»





Дата публикования: 2014-12-10; Прочитано: 223 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.006 с)...